Animation Tests

MIDGARD PIXELS · ANIMATION TEST ARCHIVE

Animation Tests

Published tests · live updates enabled connecting…

Vespera Academy Rune Pointer · idle animation

Classes & Combat · 2026-07-24T22:57:53.275337Z · ID ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745

raw/source.png
Vespera Academy Rune Pointer · idle animation
final/sprite.png
Vespera Academy Rune Pointer · idle animation
frames/02/final/sprite.png
Vespera Academy Rune Pointer · idle animation
frames/03/final/sprite.png
Vespera Academy Rune Pointer · idle animation
frames/04/final/sprite.png
Vespera Academy Rune Pointer · idle animation
frames/05/final/sprite.png
Vespera Academy Rune Pointer · idle animation
frames/06/final/sprite.png
Vespera Academy Rune Pointer · idle animation
preview/animation.gif
Vespera Academy Rune Pointer · idle animation
CSS frame player · 6 frames
Additional output · derived/dense-body-f1-root-lock-v4/frames/01/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v4/frames/01/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v4/frames/02/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v4/frames/02/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v4/frames/03/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v4/frames/03/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v4/frames/04/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v4/frames/04/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v4/frames/05/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v4/frames/05/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v4/frames/06/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v4/frames/06/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v4/preview/animation.gif
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v4/preview/animation.gif
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f01-f02.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f01-f02.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f02-f03.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f02-f03.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f03-f04.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f03-f04.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f04-f05.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f04-f05.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f05-f06.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f05-f06.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-onion-sheet.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-onion-sheet.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f02.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f02.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f03.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f03.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f04.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f04.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f05.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f05.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f06.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f06.png
Additional output · derived/dense-body-f1-root-lock-v5/frames/01/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v5/frames/01/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v5/frames/02/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v5/frames/02/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v5/frames/03/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v5/frames/03/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v5/frames/04/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v5/frames/04/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v5/frames/05/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v5/frames/05/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v5/frames/06/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v5/frames/06/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v5/preview/animation.gif
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v5/preview/animation.gif
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f01-f02.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f01-f02.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f02-f03.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f02-f03.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f03-f04.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f03-f04.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f04-f05.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f04-f05.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f05-f06.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f05-f06.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-onion-sheet.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-onion-sheet.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f02.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f02.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f03.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f03.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f04.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f04.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f05.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f05.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f06.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f06.png
Additional output · derived/dense-body-f1-root-lock-v6/frames/01/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v6/frames/01/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v6/frames/02/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v6/frames/02/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v6/frames/03/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v6/frames/03/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v6/frames/04/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v6/frames/04/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v6/frames/05/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v6/frames/05/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v6/frames/06/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v6/frames/06/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v6/preview/animation.gif
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v6/preview/animation.gif
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f01-f02.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f01-f02.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f02-f03.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f02-f03.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f03-f04.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f03-f04.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f04-f05.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f04-f05.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f05-f06.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f05-f06.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-onion-sheet.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-onion-sheet.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f02.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f02.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f03.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f03.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f04.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f04.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f05.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f05.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f06.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f06.png
Additional output · derived/dense-body-f1-root-lock-v7/frames/01/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v7/frames/01/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v7/frames/02/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v7/frames/02/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v7/frames/03/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v7/frames/03/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v7/frames/04/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v7/frames/04/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v7/frames/05/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v7/frames/05/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v7/frames/06/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v7/frames/06/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v7/preview/animation.gif
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v7/preview/animation.gif
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f01-f02.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f01-f02.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f02-f03.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f02-f03.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f03-f04.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f03-f04.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f04-f05.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f04-f05.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f05-f06.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f05-f06.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-onion-sheet.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-onion-sheet.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f02.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f02.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f03.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f03.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f04.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f04.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f05.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f05.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f06.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f06.png
Additional output · derived/dense-body-f1-root-lock-v8/frames/01/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v8/frames/01/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v8/frames/02/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v8/frames/02/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v8/frames/03/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v8/frames/03/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v8/frames/04/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v8/frames/04/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v8/frames/05/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v8/frames/05/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v8/frames/06/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v8/frames/06/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v8/preview/animation.gif
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v8/preview/animation.gif
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f01-f02.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f01-f02.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f02-f03.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f02-f03.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f03-f04.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f03-f04.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f04-f05.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f04-f05.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f05-f06.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f05-f06.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-onion-sheet.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-onion-sheet.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f02.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f02.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f03.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f03.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f04.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f04.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f05.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f05.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f06.png
Vespera Academy Rune Pointer · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f06.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/frames/01/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/sequence-envelope-foot-root-lock-v3/frames/01/final/sprite.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/frames/02/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/sequence-envelope-foot-root-lock-v3/frames/02/final/sprite.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/frames/03/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/sequence-envelope-foot-root-lock-v3/frames/03/final/sprite.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/frames/04/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/sequence-envelope-foot-root-lock-v3/frames/04/final/sprite.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/frames/05/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/sequence-envelope-foot-root-lock-v3/frames/05/final/sprite.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/frames/06/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/sequence-envelope-foot-root-lock-v3/frames/06/final/sprite.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/preview/animation.gif
Vespera Academy Rune Pointer · idle animation · derived/sequence-envelope-foot-root-lock-v3/preview/animation.gif
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f01-f02.png
Vespera Academy Rune Pointer · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f01-f02.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f02-f03.png
Vespera Academy Rune Pointer · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f02-f03.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f03-f04.png
Vespera Academy Rune Pointer · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f03-f04.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f04-f05.png
Vespera Academy Rune Pointer · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f04-f05.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f05-f06.png
Vespera Academy Rune Pointer · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f05-f06.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-onion-sheet.png
Vespera Academy Rune Pointer · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-onion-sheet.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f02.png
Vespera Academy Rune Pointer · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f02.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f03.png
Vespera Academy Rune Pointer · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f03.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f04.png
Vespera Academy Rune Pointer · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f04.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f05.png
Vespera Academy Rune Pointer · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f05.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f06.png
Vespera Academy Rune Pointer · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f06.png
Additional output · derived/uniform-scale-foot-root-lock-v2/frames/01/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-foot-root-lock-v2/frames/01/final/sprite.png
Additional output · derived/uniform-scale-foot-root-lock-v2/frames/02/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-foot-root-lock-v2/frames/02/final/sprite.png
Additional output · derived/uniform-scale-foot-root-lock-v2/frames/03/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-foot-root-lock-v2/frames/03/final/sprite.png
Additional output · derived/uniform-scale-foot-root-lock-v2/frames/04/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-foot-root-lock-v2/frames/04/final/sprite.png
Additional output · derived/uniform-scale-foot-root-lock-v2/frames/05/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-foot-root-lock-v2/frames/05/final/sprite.png
Additional output · derived/uniform-scale-foot-root-lock-v2/frames/06/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-foot-root-lock-v2/frames/06/final/sprite.png
Additional output · derived/uniform-scale-foot-root-lock-v2/preview/animation.gif
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-foot-root-lock-v2/preview/animation.gif
Additional output · derived/uniform-scale-foot-root-lock-v2/review/onion-audit/adjacent-f01-f02.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-foot-root-lock-v2/review/onion-audit/adjacent-f01-f02.png
Additional output · derived/uniform-scale-foot-root-lock-v2/review/onion-audit/adjacent-f02-f03.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-foot-root-lock-v2/review/onion-audit/adjacent-f02-f03.png
Additional output · derived/uniform-scale-foot-root-lock-v2/review/onion-audit/adjacent-f03-f04.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-foot-root-lock-v2/review/onion-audit/adjacent-f03-f04.png
Additional output · derived/uniform-scale-foot-root-lock-v2/review/onion-audit/adjacent-f04-f05.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-foot-root-lock-v2/review/onion-audit/adjacent-f04-f05.png
Additional output · derived/uniform-scale-foot-root-lock-v2/review/onion-audit/adjacent-f05-f06.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-foot-root-lock-v2/review/onion-audit/adjacent-f05-f06.png
Additional output · derived/uniform-scale-foot-root-lock-v2/review/onion-audit/f1-onion-sheet.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-foot-root-lock-v2/review/onion-audit/f1-onion-sheet.png
Additional output · derived/uniform-scale-foot-root-lock-v2/review/onion-audit/f1-to-f02.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-foot-root-lock-v2/review/onion-audit/f1-to-f02.png
Additional output · derived/uniform-scale-foot-root-lock-v2/review/onion-audit/f1-to-f03.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-foot-root-lock-v2/review/onion-audit/f1-to-f03.png
Additional output · derived/uniform-scale-foot-root-lock-v2/review/onion-audit/f1-to-f04.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-foot-root-lock-v2/review/onion-audit/f1-to-f04.png
Additional output · derived/uniform-scale-foot-root-lock-v2/review/onion-audit/f1-to-f05.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-foot-root-lock-v2/review/onion-audit/f1-to-f05.png
Additional output · derived/uniform-scale-foot-root-lock-v2/review/onion-audit/f1-to-f06.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-foot-root-lock-v2/review/onion-audit/f1-to-f06.png
Additional output · derived/uniform-scale-root-lock-v1/frames/01/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-root-lock-v1/frames/01/final/sprite.png
Additional output · derived/uniform-scale-root-lock-v1/frames/02/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-root-lock-v1/frames/02/final/sprite.png
Additional output · derived/uniform-scale-root-lock-v1/frames/03/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-root-lock-v1/frames/03/final/sprite.png
Additional output · derived/uniform-scale-root-lock-v1/frames/04/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-root-lock-v1/frames/04/final/sprite.png
Additional output · derived/uniform-scale-root-lock-v1/frames/05/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-root-lock-v1/frames/05/final/sprite.png
Additional output · derived/uniform-scale-root-lock-v1/frames/06/final/sprite.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-root-lock-v1/frames/06/final/sprite.png
Additional output · derived/uniform-scale-root-lock-v1/preview/animation.gif
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-root-lock-v1/preview/animation.gif
Additional output · derived/uniform-scale-root-lock-v1/review/onion-audit/adjacent-f01-f02.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-root-lock-v1/review/onion-audit/adjacent-f01-f02.png
Additional output · derived/uniform-scale-root-lock-v1/review/onion-audit/adjacent-f02-f03.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-root-lock-v1/review/onion-audit/adjacent-f02-f03.png
Additional output · derived/uniform-scale-root-lock-v1/review/onion-audit/adjacent-f03-f04.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-root-lock-v1/review/onion-audit/adjacent-f03-f04.png
Additional output · derived/uniform-scale-root-lock-v1/review/onion-audit/adjacent-f04-f05.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-root-lock-v1/review/onion-audit/adjacent-f04-f05.png
Additional output · derived/uniform-scale-root-lock-v1/review/onion-audit/adjacent-f05-f06.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-root-lock-v1/review/onion-audit/adjacent-f05-f06.png
Additional output · derived/uniform-scale-root-lock-v1/review/onion-audit/f1-onion-sheet.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-root-lock-v1/review/onion-audit/f1-onion-sheet.png
Additional output · derived/uniform-scale-root-lock-v1/review/onion-audit/f1-to-f02.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-root-lock-v1/review/onion-audit/f1-to-f02.png
Additional output · derived/uniform-scale-root-lock-v1/review/onion-audit/f1-to-f03.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-root-lock-v1/review/onion-audit/f1-to-f03.png
Additional output · derived/uniform-scale-root-lock-v1/review/onion-audit/f1-to-f04.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-root-lock-v1/review/onion-audit/f1-to-f04.png
Additional output · derived/uniform-scale-root-lock-v1/review/onion-audit/f1-to-f05.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-root-lock-v1/review/onion-audit/f1-to-f05.png
Additional output · derived/uniform-scale-root-lock-v1/review/onion-audit/f1-to-f06.png
Vespera Academy Rune Pointer · idle animation · derived/uniform-scale-root-lock-v1/review/onion-audit/f1-to-f06.png
Additional output · frames/01/final/sprite.png
Vespera Academy Rune Pointer · idle animation · frames/01/final/sprite.png
Additional output · frames/01/raw/source.png
Vespera Academy Rune Pointer · idle animation · frames/01/raw/source.png
Additional output · frames/02/raw/source.png
Vespera Academy Rune Pointer · idle animation · frames/02/raw/source.png
Additional output · frames/03/raw/source.png
Vespera Academy Rune Pointer · idle animation · frames/03/raw/source.png
Additional output · frames/04/raw/source.png
Vespera Academy Rune Pointer · idle animation · frames/04/raw/source.png
Additional output · frames/05/raw/source.png
Vespera Academy Rune Pointer · idle animation · frames/05/raw/source.png
Additional output · frames/06/raw/source.png
Vespera Academy Rune Pointer · idle animation · frames/06/raw/source.png
Additional output · review/onion-audit/adjacent-f01-f02.png
Vespera Academy Rune Pointer · idle animation · review/onion-audit/adjacent-f01-f02.png
Additional output · review/onion-audit/adjacent-f02-f03.png
Vespera Academy Rune Pointer · idle animation · review/onion-audit/adjacent-f02-f03.png
Additional output · review/onion-audit/adjacent-f03-f04.png
Vespera Academy Rune Pointer · idle animation · review/onion-audit/adjacent-f03-f04.png
Additional output · review/onion-audit/adjacent-f04-f05.png
Vespera Academy Rune Pointer · idle animation · review/onion-audit/adjacent-f04-f05.png
Additional output · review/onion-audit/adjacent-f05-f06.png
Vespera Academy Rune Pointer · idle animation · review/onion-audit/adjacent-f05-f06.png
Additional output · review/onion-audit/f1-onion-sheet.png
Vespera Academy Rune Pointer · idle animation · review/onion-audit/f1-onion-sheet.png
Additional output · review/onion-audit/f1-to-f02.png
Vespera Academy Rune Pointer · idle animation · review/onion-audit/f1-to-f02.png
Additional output · review/onion-audit/f1-to-f03.png
Vespera Academy Rune Pointer · idle animation · review/onion-audit/f1-to-f03.png
Additional output · review/onion-audit/f1-to-f04.png
Vespera Academy Rune Pointer · idle animation · review/onion-audit/f1-to-f04.png
Additional output · review/onion-audit/f1-to-f05.png
Vespera Academy Rune Pointer · idle animation · review/onion-audit/f1-to-f05.png
Additional output · review/onion-audit/f1-to-f06.png
Vespera Academy Rune Pointer · idle animation · review/onion-audit/f1-to-f06.png
Full metadata
{
    "schemaVersion": "midgard-pixels.wordpress-generation.v1",
    "generationId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
    "runId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
    "title": "Vespera Academy Rune Pointer · idle animation",
    "createdAt": "2026-07-24T22:57:53.275337Z",
    "request": "Create a white adult human woman academy rune pointer wearing a fitted charcoal-and-crimson scholar coat, short practical skirt, tied hair, and holding a long slender rune rod vertically upright in her rod hand.",
    "category": "Classes & Combat",
    "categorySlug": "classes-combat",
    "class": "Vespera Academy Rune Pointer",
    "gender": "woman",
    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
    "promptSha256": "688e361b528cd2f5d3c02eb8d0783fc39a5280875ae637179bf1a48c65243dc1",
    "providerModel": "gpt-image-2-2026-04-21",
    "status": "animated-command-review-required",
    "sourcePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
    "manifest": {
        "animation": {
            "action": "idle",
            "anchorGuide": null,
            "anchorGuidePolicy": "none",
            "durationMs": 120,
            "f1ProviderModel": "gpt-image-2-2026-04-21",
            "frameCount": 6,
            "frames": [
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-prompt-txt",
                        "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-raw-source-png",
                        "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/final/sprite.png",
                    "finalSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                    "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01",
                    "identityBaselineY": 923,
                    "identityBodyLock": {
                        "bodyBandX": [
                            341,
                            669
                        ],
                        "bodyBounds": [
                            341,
                            115,
                            669,
                            924
                        ],
                        "bodyCentroid": [
                            524.7897,
                            527.3738
                        ],
                        "bodyHeight": 809,
                        "bodyWidth": 328
                    },
                    "index": 1,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "settled identity pose; motion has not started",
                    "phaseProgressPercent": 0,
                    "playbackSourceFrameIndex": 1,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/prompt.txt",
                    "promptSha256": "688e361b528cd2f5d3c02eb8d0783fc39a5280875ae637179bf1a48c65243dc1",
                    "providerCall": true,
                    "providerFrameIndex": 1,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                    "rawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                        }
                    ],
                    "sourceFrameIndex": 1,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-prompt-txt",
                        "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                        "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/final/sprite.png",
                    "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                    "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                    "identityBaselineY": 923,
                    "identityBodyLock": {
                        "bodyBandX": [
                            341,
                            669
                        ],
                        "bodyBounds": [
                            341,
                            115,
                            669,
                            924
                        ],
                        "bodyCentroid": [
                            524.7897,
                            527.3738
                        ],
                        "bodyHeight": 809,
                        "bodyWidth": 328
                    },
                    "index": 2,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 1,
                    "parentRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                    "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 22,
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/prompt.txt",
                    "promptSha256": "3513b766e0bfe91f94ac5612f4fa09be65173c132fea4e2a49795a5ce72c2354",
                    "providerCall": true,
                    "providerFrameIndex": 2,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                    "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                    "referenceSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                            "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                        }
                    ],
                    "sourceFrameIndex": 2,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-prompt-txt",
                        "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                        "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/final/sprite.png",
                    "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                    "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                    "identityBaselineY": 923,
                    "identityBodyLock": {
                        "bodyBandX": [
                            341,
                            669
                        ],
                        "bodyBounds": [
                            341,
                            115,
                            669,
                            924
                        ],
                        "bodyCentroid": [
                            524.7897,
                            527.3738
                        ],
                        "bodyHeight": 809,
                        "bodyWidth": 328
                    },
                    "index": 3,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 2,
                    "parentRawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 44,
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/prompt.txt",
                    "promptSha256": "4def04bde1fb8bed3cf98602e732af95362df0f2322a410fcf4cadbb2efecc50",
                    "providerCall": true,
                    "providerFrameIndex": 3,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                    "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                    "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                            "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                            "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                        }
                    ],
                    "sourceFrameIndex": 3,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-prompt-txt",
                        "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-raw-source-png",
                        "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/final/sprite.png",
                    "finalSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                    "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04",
                    "identityBaselineY": 923,
                    "identityBodyLock": {
                        "bodyBandX": [
                            341,
                            669
                        ],
                        "bodyBounds": [
                            341,
                            115,
                            669,
                            924
                        ],
                        "bodyCentroid": [
                            524.7897,
                            527.3738
                        ],
                        "bodyHeight": 809,
                        "bodyWidth": 328
                    },
                    "index": 4,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 3,
                    "parentRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                    "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 100,
                    "playbackSourceFrameIndex": 4,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/prompt.txt",
                    "promptSha256": "fcb5d5e7c14f98b1b3f13b8bd373ba40786df18acd716357d3b798ddfffd1d63",
                    "providerCall": true,
                    "providerFrameIndex": 4,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/raw/source.png",
                    "rawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                    "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                            "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                            "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                        }
                    ],
                    "sourceFrameIndex": 4,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-prompt-txt",
                        "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-raw-source-png",
                        "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-receipt-json"
                    },
                    "byteIdentityVerified": true,
                    "durationMs": 120,
                    "exactByteReuse": true,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/final/sprite.png",
                    "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                    "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05",
                    "identityBaselineY": 923,
                    "index": 5,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 44,
                    "playbackPreviousFrameIndex": 4,
                    "playbackPreviousRawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/prompt.txt",
                    "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                    "providerCall": false,
                    "providerFrameIndex": 3,
                    "providerGenerated": false,
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/raw/source.png",
                    "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                    "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                    "references": [
                        {
                            "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                            "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                        }
                    ],
                    "sourceFinalArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                    "sourceFrameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                    "sourceFrameIndex": 3,
                    "sourceProvided": false,
                    "sourceRawArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png"
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-prompt-txt",
                        "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-raw-source-png",
                        "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-receipt-json"
                    },
                    "byteIdentityVerified": true,
                    "durationMs": 120,
                    "exactByteReuse": true,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/final/sprite.png",
                    "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                    "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06",
                    "identityBaselineY": 923,
                    "index": 6,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 22,
                    "playbackPreviousFrameIndex": 5,
                    "playbackPreviousRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/prompt.txt",
                    "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                    "providerCall": false,
                    "providerFrameIndex": 2,
                    "providerGenerated": false,
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/raw/source.png",
                    "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                    "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                    "references": [
                        {
                            "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                            "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                        }
                    ],
                    "sourceFinalArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                    "sourceFrameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                    "sourceFrameIndex": 2,
                    "sourceProvided": false,
                    "sourceRawArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png"
                }
            ],
            "generationId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
            "ideaIdleBehaviorDeferred": null,
            "identityBaselineY": 923,
            "identityBodyLock": {
                "bodyBandX": [
                    341,
                    669
                ],
                "bodyBounds": [
                    341,
                    115,
                    669,
                    924
                ],
                "bodyCentroid": [
                    524.7897,
                    527.3738
                ],
                "bodyHeight": 809,
                "bodyWidth": 328
            },
            "identityPolicy": "immutable-f1-raw-master",
            "idleBehavior": "Only the rune rod, rod hand, forearm, and upper arm move. Start with the long rune rod held vertically upright. Through smooth adjacent phases, lower and extend it toward screen-left into a precise pointing pose at the peak. Freeze the face, head, hair, shoulders, torso, free arm and hand, coat, skirt, legs, boots, feet, camera, scale, and background.",
            "idleBehaviorSource": "explicit-command",
            "lockedParts": [
                "recognizable face and identity",
                "costume and equipment design",
                "fine motifs, trim, fasteners, gems, and prop markings",
                "palette family and pixel rendering language",
                "body proportions and overall scale band",
                "screen-left three-quarter facing",
                "1024x1024 canvas and flat #ff00ff background"
            ],
            "loop": true,
            "loopMode": "ping-pong",
            "movingParts": [
                "whole pose silhouette",
                "center of mass",
                "torso and hips",
                "both arms and hands",
                "knees, legs, boots, and stance",
                "hair and sleeves",
                "coat tails, dress, cape, and hem",
                "held equipment following the hands"
            ],
            "parentPolicy": "f1-plus-previous",
            "phaseProgressPercent": [
                0,
                22,
                44,
                100,
                44,
                22
            ],
            "phases": [
                "settled identity pose; motion has not started",
                "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
            ],
            "playbackSourceFrameIndices": [
                1,
                2,
                3,
                4,
                3,
                2
            ],
            "posePolicy": "natural-relational",
            "preview": {
                "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--preview-animation-gif",
                "format": "derived-gif-preview",
                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/preview/animation.gif",
                "sha256": "bc941374c3833bb88d28892766e1dc68cc93c52a7267ca67271f3488285184cd",
                "sourcePolicy": "final-frame-pngs-unchanged"
            },
            "providerCallCount": 4,
            "providerFrameCount": 4,
            "providerFrames": [
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-prompt-txt",
                        "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-raw-source-png",
                        "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/final/sprite.png",
                    "finalSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                    "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01",
                    "identityBaselineY": 923,
                    "identityBodyLock": {
                        "bodyBandX": [
                            341,
                            669
                        ],
                        "bodyBounds": [
                            341,
                            115,
                            669,
                            924
                        ],
                        "bodyCentroid": [
                            524.7897,
                            527.3738
                        ],
                        "bodyHeight": 809,
                        "bodyWidth": 328
                    },
                    "index": 1,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "settled identity pose; motion has not started",
                    "phaseProgressPercent": 0,
                    "playbackSourceFrameIndex": 1,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/prompt.txt",
                    "promptSha256": "688e361b528cd2f5d3c02eb8d0783fc39a5280875ae637179bf1a48c65243dc1",
                    "providerCall": true,
                    "providerFrameIndex": 1,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                    "rawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                        }
                    ],
                    "sourceFrameIndex": 1,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-prompt-txt",
                        "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                        "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/final/sprite.png",
                    "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                    "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                    "identityBaselineY": 923,
                    "identityBodyLock": {
                        "bodyBandX": [
                            341,
                            669
                        ],
                        "bodyBounds": [
                            341,
                            115,
                            669,
                            924
                        ],
                        "bodyCentroid": [
                            524.7897,
                            527.3738
                        ],
                        "bodyHeight": 809,
                        "bodyWidth": 328
                    },
                    "index": 2,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 1,
                    "parentRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                    "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 22,
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/prompt.txt",
                    "promptSha256": "3513b766e0bfe91f94ac5612f4fa09be65173c132fea4e2a49795a5ce72c2354",
                    "providerCall": true,
                    "providerFrameIndex": 2,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                    "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                    "referenceSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                            "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                        }
                    ],
                    "sourceFrameIndex": 2,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-prompt-txt",
                        "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                        "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/final/sprite.png",
                    "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                    "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                    "identityBaselineY": 923,
                    "identityBodyLock": {
                        "bodyBandX": [
                            341,
                            669
                        ],
                        "bodyBounds": [
                            341,
                            115,
                            669,
                            924
                        ],
                        "bodyCentroid": [
                            524.7897,
                            527.3738
                        ],
                        "bodyHeight": 809,
                        "bodyWidth": 328
                    },
                    "index": 3,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 2,
                    "parentRawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 44,
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/prompt.txt",
                    "promptSha256": "4def04bde1fb8bed3cf98602e732af95362df0f2322a410fcf4cadbb2efecc50",
                    "providerCall": true,
                    "providerFrameIndex": 3,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                    "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                    "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                            "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                            "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                        }
                    ],
                    "sourceFrameIndex": 3,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-prompt-txt",
                        "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-raw-source-png",
                        "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/final/sprite.png",
                    "finalSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                    "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04",
                    "identityBaselineY": 923,
                    "identityBodyLock": {
                        "bodyBandX": [
                            341,
                            669
                        ],
                        "bodyBounds": [
                            341,
                            115,
                            669,
                            924
                        ],
                        "bodyCentroid": [
                            524.7897,
                            527.3738
                        ],
                        "bodyHeight": 809,
                        "bodyWidth": 328
                    },
                    "index": 4,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 3,
                    "parentRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                    "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 100,
                    "playbackSourceFrameIndex": 4,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/prompt.txt",
                    "promptSha256": "fcb5d5e7c14f98b1b3f13b8bd373ba40786df18acd716357d3b798ddfffd1d63",
                    "providerCall": true,
                    "providerFrameIndex": 4,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/raw/source.png",
                    "rawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                    "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                            "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                            "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                        }
                    ],
                    "sourceFrameIndex": 4,
                    "sourceProvided": false
                }
            ],
            "providerModel": "gpt-image-2-2026-04-21",
            "rootPolicy": {
                "allowedCorrection": "lossless whole-canvas integer translation only",
                "exactProviderRootRequired": false,
                "measuredAfterGeneration": true,
                "poseDependentHorizontalFootMotionPreserved": true,
                "providerConstraint": "at least one boot sole within 16px of F1 baseline"
            },
            "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
            "sourceFrameCount": 4,
            "sourceFrames": [
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-prompt-txt",
                        "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-raw-source-png",
                        "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/final/sprite.png",
                    "finalSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                    "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01",
                    "identityBaselineY": 923,
                    "identityBodyLock": {
                        "bodyBandX": [
                            341,
                            669
                        ],
                        "bodyBounds": [
                            341,
                            115,
                            669,
                            924
                        ],
                        "bodyCentroid": [
                            524.7897,
                            527.3738
                        ],
                        "bodyHeight": 809,
                        "bodyWidth": 328
                    },
                    "index": 1,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "settled identity pose; motion has not started",
                    "phaseProgressPercent": 0,
                    "playbackSourceFrameIndex": 1,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/prompt.txt",
                    "promptSha256": "688e361b528cd2f5d3c02eb8d0783fc39a5280875ae637179bf1a48c65243dc1",
                    "providerCall": true,
                    "providerFrameIndex": 1,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                    "rawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                        }
                    ],
                    "sourceFrameIndex": 1,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-prompt-txt",
                        "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                        "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/final/sprite.png",
                    "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                    "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                    "identityBaselineY": 923,
                    "identityBodyLock": {
                        "bodyBandX": [
                            341,
                            669
                        ],
                        "bodyBounds": [
                            341,
                            115,
                            669,
                            924
                        ],
                        "bodyCentroid": [
                            524.7897,
                            527.3738
                        ],
                        "bodyHeight": 809,
                        "bodyWidth": 328
                    },
                    "index": 2,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 1,
                    "parentRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                    "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 22,
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/prompt.txt",
                    "promptSha256": "3513b766e0bfe91f94ac5612f4fa09be65173c132fea4e2a49795a5ce72c2354",
                    "providerCall": true,
                    "providerFrameIndex": 2,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                    "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                    "referenceSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                            "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                        }
                    ],
                    "sourceFrameIndex": 2,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-prompt-txt",
                        "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                        "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/final/sprite.png",
                    "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                    "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                    "identityBaselineY": 923,
                    "identityBodyLock": {
                        "bodyBandX": [
                            341,
                            669
                        ],
                        "bodyBounds": [
                            341,
                            115,
                            669,
                            924
                        ],
                        "bodyCentroid": [
                            524.7897,
                            527.3738
                        ],
                        "bodyHeight": 809,
                        "bodyWidth": 328
                    },
                    "index": 3,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 2,
                    "parentRawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 44,
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/prompt.txt",
                    "promptSha256": "4def04bde1fb8bed3cf98602e732af95362df0f2322a410fcf4cadbb2efecc50",
                    "providerCall": true,
                    "providerFrameIndex": 3,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                    "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                    "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                            "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                            "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                        }
                    ],
                    "sourceFrameIndex": 3,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-prompt-txt",
                        "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-raw-source-png",
                        "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/final/sprite.png",
                    "finalSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                    "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04",
                    "identityBaselineY": 923,
                    "identityBodyLock": {
                        "bodyBandX": [
                            341,
                            669
                        ],
                        "bodyBounds": [
                            341,
                            115,
                            669,
                            924
                        ],
                        "bodyCentroid": [
                            524.7897,
                            527.3738
                        ],
                        "bodyHeight": 809,
                        "bodyWidth": 328
                    },
                    "index": 4,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 3,
                    "parentRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                    "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 100,
                    "playbackSourceFrameIndex": 4,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/prompt.txt",
                    "promptSha256": "fcb5d5e7c14f98b1b3f13b8bd373ba40786df18acd716357d3b798ddfffd1d63",
                    "providerCall": true,
                    "providerFrameIndex": 4,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/raw/source.png",
                    "rawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                    "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                            "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                            "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                        }
                    ],
                    "sourceFrameIndex": 4,
                    "sourceProvided": false
                }
            ],
            "stylePolicy": "elder-a-master"
        },
        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--manifest-json",
        "artifactIndex": {
            "artifactCount": 31,
            "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--artifact-index-json",
            "exclusions": [
                "manifest.json",
                "artifact-index.json"
            ],
            "path": "artifact-index.json",
            "sha256": "132547011871705aacd792a36ae77e014ac640cfec3699da0294fcff9264f5da"
        },
        "artifacts": {
            "animation": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--animation-json",
            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--final-sprite-png",
            "generationId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
            "manifest": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--manifest-json",
            "preview": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--preview-animation-gif",
            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--prompt-txt",
            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--raw-source-png",
            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--receipt-json",
            "request": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--request-json"
        },
        "category": "Classes & Combat",
        "categorySlug": "classes-combat",
        "class": "Vespera Academy Rune Pointer",
        "classSource": "request-title",
        "createdAt": "2026-07-24T22:57:53.275337Z",
        "final": "final/sprite.png",
        "finalArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--final-sprite-png",
        "finalSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
        "frames": [
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-prompt-txt",
                    "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-raw-source-png",
                    "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/final/sprite.png",
                "finalSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01",
                "identityBaselineY": 923,
                "identityBodyLock": {
                    "bodyBandX": [
                        341,
                        669
                    ],
                    "bodyBounds": [
                        341,
                        115,
                        669,
                        924
                    ],
                    "bodyCentroid": [
                        524.7897,
                        527.3738
                    ],
                    "bodyHeight": 809,
                    "bodyWidth": 328
                },
                "index": 1,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/prompt.txt",
                "promptSha256": "688e361b528cd2f5d3c02eb8d0783fc39a5280875ae637179bf1a48c65243dc1",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                "rawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "sourceFrameIndex": 1,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-prompt-txt",
                    "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                    "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/final/sprite.png",
                "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                "identityBaselineY": 923,
                "identityBodyLock": {
                    "bodyBandX": [
                        341,
                        669
                    ],
                    "bodyBounds": [
                        341,
                        115,
                        669,
                        924
                    ],
                    "bodyCentroid": [
                        524.7897,
                        527.3738
                    ],
                    "bodyHeight": 809,
                    "bodyWidth": 328
                },
                "index": 2,
                "loopMode": "ping-pong",
                "parentFrameIndex": 1,
                "parentRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/prompt.txt",
                "promptSha256": "3513b766e0bfe91f94ac5612f4fa09be65173c132fea4e2a49795a5ce72c2354",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                "referenceSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                    }
                ],
                "sourceFrameIndex": 2,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-prompt-txt",
                    "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                    "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/final/sprite.png",
                "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                "identityBaselineY": 923,
                "identityBodyLock": {
                    "bodyBandX": [
                        341,
                        669
                    ],
                    "bodyBounds": [
                        341,
                        115,
                        669,
                        924
                    ],
                    "bodyCentroid": [
                        524.7897,
                        527.3738
                    ],
                    "bodyHeight": 809,
                    "bodyWidth": 328
                },
                "index": 3,
                "loopMode": "ping-pong",
                "parentFrameIndex": 2,
                "parentRawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/prompt.txt",
                "promptSha256": "4def04bde1fb8bed3cf98602e732af95362df0f2322a410fcf4cadbb2efecc50",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                    }
                ],
                "sourceFrameIndex": 3,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-prompt-txt",
                    "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-raw-source-png",
                    "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/final/sprite.png",
                "finalSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04",
                "identityBaselineY": 923,
                "identityBodyLock": {
                    "bodyBandX": [
                        341,
                        669
                    ],
                    "bodyBounds": [
                        341,
                        115,
                        669,
                        924
                    ],
                    "bodyCentroid": [
                        524.7897,
                        527.3738
                    ],
                    "bodyHeight": 809,
                    "bodyWidth": 328
                },
                "index": 4,
                "loopMode": "ping-pong",
                "parentFrameIndex": 3,
                "parentRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/prompt.txt",
                "promptSha256": "fcb5d5e7c14f98b1b3f13b8bd373ba40786df18acd716357d3b798ddfffd1d63",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/raw/source.png",
                "rawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                    }
                ],
                "sourceFrameIndex": 4,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-prompt-txt",
                    "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-raw-source-png",
                    "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-receipt-json"
                },
                "byteIdentityVerified": true,
                "durationMs": 120,
                "exactByteReuse": true,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/final/sprite.png",
                "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05",
                "identityBaselineY": 923,
                "index": 5,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackPreviousFrameIndex": 4,
                "playbackPreviousRawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/prompt.txt",
                "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                "providerCall": false,
                "providerFrameIndex": 3,
                "providerGenerated": false,
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/raw/source.png",
                "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                    }
                ],
                "sourceFinalArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                "sourceFrameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                "sourceFrameIndex": 3,
                "sourceProvided": false,
                "sourceRawArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png"
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-prompt-txt",
                    "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-raw-source-png",
                    "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-receipt-json"
                },
                "byteIdentityVerified": true,
                "durationMs": 120,
                "exactByteReuse": true,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/final/sprite.png",
                "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06",
                "identityBaselineY": 923,
                "index": 6,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackPreviousFrameIndex": 5,
                "playbackPreviousRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/prompt.txt",
                "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                "providerCall": false,
                "providerFrameIndex": 2,
                "providerGenerated": false,
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/raw/source.png",
                "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                    }
                ],
                "sourceFinalArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                "sourceFrameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                "sourceFrameIndex": 2,
                "sourceProvided": false,
                "sourceRawArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png"
            }
        ],
        "gender": "woman",
        "genderSource": "request-text",
        "generation": {
            "anchorGuidePolicy": "none",
            "animationImageCount": 3,
            "animationModel": "gpt-image-2-2026-04-21",
            "attemptedCalls": 4,
            "completedCalls": 4,
            "f1ImageCount": 1,
            "f1Model": "gpt-image-2-2026-04-21",
            "imageCount": 4,
            "inputFidelity": "unsupported-omitted",
            "inputFidelityRequested": false,
            "loopMode": "ping-pong",
            "maximumReferenceCount": 2,
            "model": "gpt-image-2-2026-04-21",
            "operation": "chained-image-edit-plus-exact-ping-pong-reuse",
            "playbackFrameCount": 6,
            "playbackSourceFrameIndices": [
                1,
                2,
                3,
                4,
                3,
                2
            ],
            "posePolicy": "natural-relational",
            "providerFrameCount": 4,
            "quality": "medium",
            "referenceCountsBySourceFrame": {
                "1": 1,
                "2": 1,
                "3": 2,
                "4": 2
            },
            "referenceOrderPolicy": [
                "f1RawIdentity",
                "previousRawOpaque"
            ],
            "size": "1024x1024",
            "sourceFrameCount": 4,
            "tool": "openai-image"
        },
        "generationId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
        "ideaId": null,
        "ideaSource": null,
        "ideaTitle": null,
        "postProcessing": {
            "alphaOnly": true,
            "despilled": false,
            "feathered": false,
            "filtered": false,
            "paletteReduced": false,
            "resampled": false,
            "resized": false,
            "translated": false
        },
        "prompt": "prompt.txt",
        "promptSha256": "688e361b528cd2f5d3c02eb8d0783fc39a5280875ae637179bf1a48c65243dc1",
        "providerCallCount": 4,
        "providerFrames": [
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-prompt-txt",
                    "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-raw-source-png",
                    "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/final/sprite.png",
                "finalSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01",
                "identityBaselineY": 923,
                "identityBodyLock": {
                    "bodyBandX": [
                        341,
                        669
                    ],
                    "bodyBounds": [
                        341,
                        115,
                        669,
                        924
                    ],
                    "bodyCentroid": [
                        524.7897,
                        527.3738
                    ],
                    "bodyHeight": 809,
                    "bodyWidth": 328
                },
                "index": 1,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/prompt.txt",
                "promptSha256": "688e361b528cd2f5d3c02eb8d0783fc39a5280875ae637179bf1a48c65243dc1",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                "rawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "sourceFrameIndex": 1,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-prompt-txt",
                    "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                    "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/final/sprite.png",
                "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                "identityBaselineY": 923,
                "identityBodyLock": {
                    "bodyBandX": [
                        341,
                        669
                    ],
                    "bodyBounds": [
                        341,
                        115,
                        669,
                        924
                    ],
                    "bodyCentroid": [
                        524.7897,
                        527.3738
                    ],
                    "bodyHeight": 809,
                    "bodyWidth": 328
                },
                "index": 2,
                "loopMode": "ping-pong",
                "parentFrameIndex": 1,
                "parentRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/prompt.txt",
                "promptSha256": "3513b766e0bfe91f94ac5612f4fa09be65173c132fea4e2a49795a5ce72c2354",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                "referenceSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                    }
                ],
                "sourceFrameIndex": 2,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-prompt-txt",
                    "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                    "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/final/sprite.png",
                "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                "identityBaselineY": 923,
                "identityBodyLock": {
                    "bodyBandX": [
                        341,
                        669
                    ],
                    "bodyBounds": [
                        341,
                        115,
                        669,
                        924
                    ],
                    "bodyCentroid": [
                        524.7897,
                        527.3738
                    ],
                    "bodyHeight": 809,
                    "bodyWidth": 328
                },
                "index": 3,
                "loopMode": "ping-pong",
                "parentFrameIndex": 2,
                "parentRawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/prompt.txt",
                "promptSha256": "4def04bde1fb8bed3cf98602e732af95362df0f2322a410fcf4cadbb2efecc50",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                    }
                ],
                "sourceFrameIndex": 3,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-prompt-txt",
                    "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-raw-source-png",
                    "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/final/sprite.png",
                "finalSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04",
                "identityBaselineY": 923,
                "identityBodyLock": {
                    "bodyBandX": [
                        341,
                        669
                    ],
                    "bodyBounds": [
                        341,
                        115,
                        669,
                        924
                    ],
                    "bodyCentroid": [
                        524.7897,
                        527.3738
                    ],
                    "bodyHeight": 809,
                    "bodyWidth": 328
                },
                "index": 4,
                "loopMode": "ping-pong",
                "parentFrameIndex": 3,
                "parentRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/prompt.txt",
                "promptSha256": "fcb5d5e7c14f98b1b3f13b8bd373ba40786df18acd716357d3b798ddfffd1d63",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/raw/source.png",
                "rawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                    }
                ],
                "sourceFrameIndex": 4,
                "sourceProvided": false
            }
        ],
        "raw": "raw/source.png",
        "rawArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--raw-source-png",
        "rawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
        "representative": "final/sprite.png",
        "runId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
        "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
        "sourceFrames": [
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-prompt-txt",
                    "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-raw-source-png",
                    "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/final/sprite.png",
                "finalSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01",
                "identityBaselineY": 923,
                "identityBodyLock": {
                    "bodyBandX": [
                        341,
                        669
                    ],
                    "bodyBounds": [
                        341,
                        115,
                        669,
                        924
                    ],
                    "bodyCentroid": [
                        524.7897,
                        527.3738
                    ],
                    "bodyHeight": 809,
                    "bodyWidth": 328
                },
                "index": 1,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/prompt.txt",
                "promptSha256": "688e361b528cd2f5d3c02eb8d0783fc39a5280875ae637179bf1a48c65243dc1",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                "rawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "sourceFrameIndex": 1,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-prompt-txt",
                    "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                    "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/final/sprite.png",
                "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                "identityBaselineY": 923,
                "identityBodyLock": {
                    "bodyBandX": [
                        341,
                        669
                    ],
                    "bodyBounds": [
                        341,
                        115,
                        669,
                        924
                    ],
                    "bodyCentroid": [
                        524.7897,
                        527.3738
                    ],
                    "bodyHeight": 809,
                    "bodyWidth": 328
                },
                "index": 2,
                "loopMode": "ping-pong",
                "parentFrameIndex": 1,
                "parentRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/prompt.txt",
                "promptSha256": "3513b766e0bfe91f94ac5612f4fa09be65173c132fea4e2a49795a5ce72c2354",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                "referenceSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                    }
                ],
                "sourceFrameIndex": 2,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-prompt-txt",
                    "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                    "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/final/sprite.png",
                "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                "identityBaselineY": 923,
                "identityBodyLock": {
                    "bodyBandX": [
                        341,
                        669
                    ],
                    "bodyBounds": [
                        341,
                        115,
                        669,
                        924
                    ],
                    "bodyCentroid": [
                        524.7897,
                        527.3738
                    ],
                    "bodyHeight": 809,
                    "bodyWidth": 328
                },
                "index": 3,
                "loopMode": "ping-pong",
                "parentFrameIndex": 2,
                "parentRawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/prompt.txt",
                "promptSha256": "4def04bde1fb8bed3cf98602e732af95362df0f2322a410fcf4cadbb2efecc50",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                    }
                ],
                "sourceFrameIndex": 3,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-prompt-txt",
                    "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-raw-source-png",
                    "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/final/sprite.png",
                "finalSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04",
                "identityBaselineY": 923,
                "identityBodyLock": {
                    "bodyBandX": [
                        341,
                        669
                    ],
                    "bodyBounds": [
                        341,
                        115,
                        669,
                        924
                    ],
                    "bodyCentroid": [
                        524.7897,
                        527.3738
                    ],
                    "bodyHeight": 809,
                    "bodyWidth": 328
                },
                "index": 4,
                "loopMode": "ping-pong",
                "parentFrameIndex": 3,
                "parentRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/prompt.txt",
                "promptSha256": "fcb5d5e7c14f98b1b3f13b8bd373ba40786df18acd716357d3b798ddfffd1d63",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/raw/source.png",
                "rawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                    }
                ],
                "sourceFrameIndex": 4,
                "sourceProvided": false
            }
        ],
        "sourceGenerationId": null,
        "status": "animated-command-review-required",
        "summary": "f1-plus-previous 6-frame idle ping-pong animation from 4 provider-generated frame(s); every playback frame preserves raw and alpha-only final evidence.",
        "title": "ragnarok-create · Vespera Academy Rune Pointer · idle animation",
        "userRequest": "Create a white adult human woman academy rune pointer wearing a fitted charcoal-and-crimson scholar coat, short practical skirt, tied hair, and holding a long slender rune rod vertically upright in her rod hand."
    },
    "jsonArtifacts": {
        "animation.json": {
            "sha256": "708b6a8c856f931a759eb4fcc4fc55ee58ea52876eef83bfbf6d08545b8f0e5c",
            "bytes": 68825,
            "value": {
                "action": "idle",
                "anchorGuide": null,
                "anchorGuidePolicy": "none",
                "durationMs": 120,
                "f1ProviderModel": "gpt-image-2-2026-04-21",
                "frameCount": 6,
                "frames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/final/sprite.png",
                        "finalSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/prompt.txt",
                        "promptSha256": "688e361b528cd2f5d3c02eb8d0783fc39a5280875ae637179bf1a48c65243dc1",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "rawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/final/sprite.png",
                        "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/prompt.txt",
                        "promptSha256": "3513b766e0bfe91f94ac5612f4fa09be65173c132fea4e2a49795a5ce72c2354",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "referenceSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/final/sprite.png",
                        "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/prompt.txt",
                        "promptSha256": "4def04bde1fb8bed3cf98602e732af95362df0f2322a410fcf4cadbb2efecc50",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                                "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/final/sprite.png",
                        "finalSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/prompt.txt",
                        "promptSha256": "fcb5d5e7c14f98b1b3f13b8bd373ba40786df18acd716357d3b798ddfffd1d63",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/raw/source.png",
                        "rawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                                "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/final/sprite.png",
                        "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05",
                        "identityBaselineY": 923,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackPreviousFrameIndex": 4,
                        "playbackPreviousRawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/prompt.txt",
                        "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                        "providerCall": false,
                        "providerFrameIndex": 3,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/raw/source.png",
                        "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                                "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                        "sourceFrameIndex": 3,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/final/sprite.png",
                        "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06",
                        "identityBaselineY": 923,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackPreviousFrameIndex": 5,
                        "playbackPreviousRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/prompt.txt",
                        "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                        "providerCall": false,
                        "providerFrameIndex": 2,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/raw/source.png",
                        "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                                "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                        "sourceFrameIndex": 2,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png"
                    }
                ],
                "generationId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "ideaIdleBehaviorDeferred": null,
                "identityBaselineY": 923,
                "identityBodyLock": {
                    "bodyBandX": [
                        341,
                        669
                    ],
                    "bodyBounds": [
                        341,
                        115,
                        669,
                        924
                    ],
                    "bodyCentroid": [
                        524.7897,
                        527.3738
                    ],
                    "bodyHeight": 809,
                    "bodyWidth": 328
                },
                "identityPolicy": "immutable-f1-raw-master",
                "idleBehavior": "Only the rune rod, rod hand, forearm, and upper arm move. Start with the long rune rod held vertically upright. Through smooth adjacent phases, lower and extend it toward screen-left into a precise pointing pose at the peak. Freeze the face, head, hair, shoulders, torso, free arm and hand, coat, skirt, legs, boots, feet, camera, scale, and background.",
                "idleBehaviorSource": "explicit-command",
                "lockedParts": [
                    "recognizable face and identity",
                    "costume and equipment design",
                    "fine motifs, trim, fasteners, gems, and prop markings",
                    "palette family and pixel rendering language",
                    "body proportions and overall scale band",
                    "screen-left three-quarter facing",
                    "1024x1024 canvas and flat #ff00ff background"
                ],
                "loop": true,
                "loopMode": "ping-pong",
                "movingParts": [
                    "whole pose silhouette",
                    "center of mass",
                    "torso and hips",
                    "both arms and hands",
                    "knees, legs, boots, and stance",
                    "hair and sleeves",
                    "coat tails, dress, cape, and hem",
                    "held equipment following the hands"
                ],
                "parentPolicy": "f1-plus-previous",
                "phaseProgressPercent": [
                    0,
                    22,
                    44,
                    100,
                    44,
                    22
                ],
                "phases": [
                    "settled identity pose; motion has not started",
                    "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
                ],
                "playbackSourceFrameIndices": [
                    1,
                    2,
                    3,
                    4,
                    3,
                    2
                ],
                "posePolicy": "natural-relational",
                "preview": {
                    "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--preview-animation-gif",
                    "format": "derived-gif-preview",
                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/preview/animation.gif",
                    "sha256": "bc941374c3833bb88d28892766e1dc68cc93c52a7267ca67271f3488285184cd",
                    "sourcePolicy": "final-frame-pngs-unchanged"
                },
                "providerCallCount": 4,
                "providerFrameCount": 4,
                "providerFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/final/sprite.png",
                        "finalSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/prompt.txt",
                        "promptSha256": "688e361b528cd2f5d3c02eb8d0783fc39a5280875ae637179bf1a48c65243dc1",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "rawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/final/sprite.png",
                        "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/prompt.txt",
                        "promptSha256": "3513b766e0bfe91f94ac5612f4fa09be65173c132fea4e2a49795a5ce72c2354",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "referenceSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/final/sprite.png",
                        "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/prompt.txt",
                        "promptSha256": "4def04bde1fb8bed3cf98602e732af95362df0f2322a410fcf4cadbb2efecc50",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                                "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/final/sprite.png",
                        "finalSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/prompt.txt",
                        "promptSha256": "fcb5d5e7c14f98b1b3f13b8bd373ba40786df18acd716357d3b798ddfffd1d63",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/raw/source.png",
                        "rawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                                "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "providerModel": "gpt-image-2-2026-04-21",
                "rootPolicy": {
                    "allowedCorrection": "lossless whole-canvas integer translation only",
                    "exactProviderRootRequired": false,
                    "measuredAfterGeneration": true,
                    "poseDependentHorizontalFootMotionPreserved": true,
                    "providerConstraint": "at least one boot sole within 16px of F1 baseline"
                },
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameCount": 4,
                "sourceFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/final/sprite.png",
                        "finalSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/prompt.txt",
                        "promptSha256": "688e361b528cd2f5d3c02eb8d0783fc39a5280875ae637179bf1a48c65243dc1",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "rawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/final/sprite.png",
                        "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/prompt.txt",
                        "promptSha256": "3513b766e0bfe91f94ac5612f4fa09be65173c132fea4e2a49795a5ce72c2354",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "referenceSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/final/sprite.png",
                        "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/prompt.txt",
                        "promptSha256": "4def04bde1fb8bed3cf98602e732af95362df0f2322a410fcf4cadbb2efecc50",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                                "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/final/sprite.png",
                        "finalSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/prompt.txt",
                        "promptSha256": "fcb5d5e7c14f98b1b3f13b8bd373ba40786df18acd716357d3b798ddfffd1d63",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/raw/source.png",
                        "rawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                                "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "stylePolicy": "elder-a-master"
            }
        },
        "artifact-index.json": {
            "sha256": "132547011871705aacd792a36ae77e014ac640cfec3699da0294fcff9264f5da",
            "bytes": 8927,
            "value": {
                "artifactCount": 31,
                "artifacts": [
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--animation-json",
                        "bytes": 68825,
                        "path": "animation.json",
                        "sha256": "708b6a8c856f931a759eb4fcc4fc55ee58ea52876eef83bfbf6d08545b8f0e5c"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--final-sprite-png",
                        "bytes": 1007500,
                        "path": "final/sprite.png",
                        "sha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-final-sprite-png",
                        "bytes": 1007500,
                        "path": "frames/01/final/sprite.png",
                        "sha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-prompt-txt",
                        "bytes": 1447,
                        "path": "frames/01/prompt.txt",
                        "sha256": "688e361b528cd2f5d3c02eb8d0783fc39a5280875ae637179bf1a48c65243dc1"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-raw-source-png",
                        "bytes": 1002717,
                        "path": "frames/01/raw/source.png",
                        "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-receipt-json",
                        "bytes": 5114,
                        "path": "frames/01/receipt.json",
                        "sha256": "3cba879ce0a66b05f474baf030c49ff6944c290d1baedb86d299a226871c1102"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                        "bytes": 1071680,
                        "path": "frames/02/final/sprite.png",
                        "sha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-prompt-txt",
                        "bytes": 4354,
                        "path": "frames/02/prompt.txt",
                        "sha256": "3513b766e0bfe91f94ac5612f4fa09be65173c132fea4e2a49795a5ce72c2354"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                        "bytes": 1067607,
                        "path": "frames/02/raw/source.png",
                        "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-receipt-json",
                        "bytes": 6033,
                        "path": "frames/02/receipt.json",
                        "sha256": "759645b1955a5c5c46937802f89e01fa81aaaf85d6a1e33f935b4e452f6f49e9"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                        "bytes": 1028807,
                        "path": "frames/03/final/sprite.png",
                        "sha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-prompt-txt",
                        "bytes": 4490,
                        "path": "frames/03/prompt.txt",
                        "sha256": "4def04bde1fb8bed3cf98602e732af95362df0f2322a410fcf4cadbb2efecc50"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                        "bytes": 1027547,
                        "path": "frames/03/raw/source.png",
                        "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-receipt-json",
                        "bytes": 6231,
                        "path": "frames/03/receipt.json",
                        "sha256": "c1d3993471be31606d7439c8c361010053c1eee746efee16215b62beaa8c0a69"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-final-sprite-png",
                        "bytes": 1049723,
                        "path": "frames/04/final/sprite.png",
                        "sha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-prompt-txt",
                        "bytes": 4491,
                        "path": "frames/04/prompt.txt",
                        "sha256": "fcb5d5e7c14f98b1b3f13b8bd373ba40786df18acd716357d3b798ddfffd1d63"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-raw-source-png",
                        "bytes": 1039513,
                        "path": "frames/04/raw/source.png",
                        "sha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-receipt-json",
                        "bytes": 6159,
                        "path": "frames/04/receipt.json",
                        "sha256": "7f62a5c5f6d872ae193b5bc5e8c4178e4edcd503c4ab69d4919586d5a2db897e"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-final-sprite-png",
                        "bytes": 1028807,
                        "path": "frames/05/final/sprite.png",
                        "sha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-prompt-txt",
                        "bytes": 125,
                        "path": "frames/05/prompt.txt",
                        "sha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-raw-source-png",
                        "bytes": 1027547,
                        "path": "frames/05/raw/source.png",
                        "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-receipt-json",
                        "bytes": 4999,
                        "path": "frames/05/receipt.json",
                        "sha256": "fb017e5854b3b354356e80e44590b2fb0418b845aa06b7b053600cd6dd980cd4"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-final-sprite-png",
                        "bytes": 1071680,
                        "path": "frames/06/final/sprite.png",
                        "sha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-prompt-txt",
                        "bytes": 125,
                        "path": "frames/06/prompt.txt",
                        "sha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-raw-source-png",
                        "bytes": 1067607,
                        "path": "frames/06/raw/source.png",
                        "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-receipt-json",
                        "bytes": 5588,
                        "path": "frames/06/receipt.json",
                        "sha256": "13a598a1400bb88644aca0da040e660e54a61b70cc72069b02460ffc76ee8de2"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--preview-animation-gif",
                        "bytes": 633782,
                        "path": "preview/animation.gif",
                        "sha256": "bc941374c3833bb88d28892766e1dc68cc93c52a7267ca67271f3488285184cd"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--prompt-txt",
                        "bytes": 1447,
                        "path": "prompt.txt",
                        "sha256": "688e361b528cd2f5d3c02eb8d0783fc39a5280875ae637179bf1a48c65243dc1"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--raw-source-png",
                        "bytes": 1002717,
                        "path": "raw/source.png",
                        "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--receipt-json",
                        "bytes": 62237,
                        "path": "receipt.json",
                        "sha256": "7938282b5713a105e2b2bb5075bfaa9140a4ad1126ece036be40b5741134b0fd"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--request-json",
                        "bytes": 72047,
                        "path": "request.json",
                        "sha256": "a7c543f5d1e4eba55efa96136448bb3e975ffb22ebfa3c1ba667b77918785d7c"
                    }
                ],
                "excludedSelfReferentialFiles": [
                    "manifest.json",
                    "artifact-index.json"
                ],
                "generationId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "schemaVersion": "midgard-pixels.ragnarok-artifact-index.v1"
            }
        },
        "derived/dense-body-f1-root-lock-v4/report.json": {
            "sha256": "9ce521cb3eabe68384d86ade926c71043a9d02c3df6573dc2be1b1cb1de913ad",
            "bytes": 15288,
            "value": {
                "frames": [
                    {
                        "after": {
                            "bodyBandX": [
                                472,
                                920
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                511,
                                114,
                                920,
                                924
                            ],
                            "bodyCentroid": [
                                728.6973533079953,
                                520.0658296238237
                            ],
                            "bodyHeight": 810,
                            "bodyPixels": 202857,
                            "footBandTopY": 826,
                            "footCentroidX": 785,
                            "fullBounds": [
                                511,
                                99,
                                920,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                248,
                                696
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                287,
                                114,
                                696,
                                924
                            ],
                            "bodyCentroid": [
                                504.6973533079953,
                                520.0658296238237
                            ],
                            "bodyHeight": 810,
                            "bodyPixels": 202857,
                            "footBandTopY": 826,
                            "footCentroidX": 561,
                            "fullBounds": [
                                287,
                                99,
                                696,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 1,
                        "output": "derived/dense-body-f1-root-lock-v4/frames/01/final/sprite.png",
                        "outputSha256": "72d1795ff1df8551dbe7e56a27b5994a8b9ff53ab56a77a9a371ef2eea17950e",
                        "source": "frames/01/final/sprite.png",
                        "sourceSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                409,
                                825
                            ],
                            "finalUniformScaleFactor": 1,
                            "integerTranslation": [
                                511,
                                99
                            ],
                            "normalizedPosition": [
                                287,
                                99
                            ],
                            "scaledSize": [
                                409,
                                825
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                287,
                                99,
                                696,
                                924
                            ],
                            "uniformScaleFactor": 1
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                470,
                                918
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                470,
                                114,
                                918,
                                924
                            ],
                            "bodyCentroid": [
                                742.5699642469684,
                                532.5941736988087
                            ],
                            "bodyHeight": 810,
                            "bodyPixels": 187117,
                            "footBandTopY": 826,
                            "footCentroidX": 785,
                            "fullBounds": [
                                126,
                                114,
                                918,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                409,
                                857
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                409,
                                115,
                                857,
                                925
                            ],
                            "bodyCentroid": [
                                681.5699642469684,
                                533.5941736988087
                            ],
                            "bodyHeight": 810,
                            "bodyPixels": 187117,
                            "footBandTopY": 827,
                            "footCentroidX": 724,
                            "fullBounds": [
                                65,
                                115,
                                857,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 2,
                        "output": "derived/dense-body-f1-root-lock-v4/frames/02/final/sprite.png",
                        "outputSha256": "49ce0bb543a30f82e5213207d2c920288a42d416992d61846479e92dc496e929",
                        "source": "frames/02/final/sprite.png",
                        "sourceSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                792,
                                810
                            ],
                            "finalUniformScaleFactor": 1,
                            "integerTranslation": [
                                126,
                                114
                            ],
                            "normalizedPosition": [
                                -98,
                                114
                            ],
                            "scaledSize": [
                                792,
                                810
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                65,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                470,
                                918
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                470,
                                114,
                                918,
                                924
                            ],
                            "bodyCentroid": [
                                741.8811484626835,
                                530.7107210555062
                            ],
                            "bodyHeight": 810,
                            "bodyPixels": 186754,
                            "footBandTopY": 826,
                            "footCentroidX": 785,
                            "fullBounds": [
                                114,
                                114,
                                918,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                409,
                                857
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                409,
                                115,
                                857,
                                925
                            ],
                            "bodyCentroid": [
                                680.8811484626835,
                                531.7107210555062
                            ],
                            "bodyHeight": 810,
                            "bodyPixels": 186754,
                            "footBandTopY": 827,
                            "footCentroidX": 724,
                            "fullBounds": [
                                53,
                                115,
                                857,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 3,
                        "output": "derived/dense-body-f1-root-lock-v4/frames/03/final/sprite.png",
                        "outputSha256": "2d8e93f6e6a45e806cade5e880c640fd42523ee4916382d34fe4610453e246a0",
                        "source": "frames/03/final/sprite.png",
                        "sourceSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                804,
                                810
                            ],
                            "finalUniformScaleFactor": 1,
                            "integerTranslation": [
                                114,
                                114
                            ],
                            "normalizedPosition": [
                                -110,
                                114
                            ],
                            "scaledSize": [
                                804,
                                810
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                53,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                470,
                                918
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                470,
                                114,
                                918,
                                924
                            ],
                            "bodyCentroid": [
                                741.4002032248576,
                                530.7232719202075
                            ],
                            "bodyHeight": 810,
                            "bodyPixels": 186985,
                            "footBandTopY": 826,
                            "footCentroidX": 785,
                            "fullBounds": [
                                104,
                                114,
                                918,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                409,
                                857
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                409,
                                115,
                                857,
                                925
                            ],
                            "bodyCentroid": [
                                680.4002032248576,
                                531.7232719202075
                            ],
                            "bodyHeight": 810,
                            "bodyPixels": 186985,
                            "footBandTopY": 827,
                            "footCentroidX": 724,
                            "fullBounds": [
                                43,
                                115,
                                857,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 4,
                        "output": "derived/dense-body-f1-root-lock-v4/frames/04/final/sprite.png",
                        "outputSha256": "0b763f057e6f95bb352b039b0d796ee87b8814675c14bf1b64f627e95b29abac",
                        "source": "frames/04/final/sprite.png",
                        "sourceSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                814,
                                810
                            ],
                            "finalUniformScaleFactor": 1,
                            "integerTranslation": [
                                104,
                                114
                            ],
                            "normalizedPosition": [
                                -120,
                                114
                            ],
                            "scaledSize": [
                                814,
                                810
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                43,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                470,
                                918
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                470,
                                114,
                                918,
                                924
                            ],
                            "bodyCentroid": [
                                741.8811484626835,
                                530.7107210555062
                            ],
                            "bodyHeight": 810,
                            "bodyPixels": 186754,
                            "footBandTopY": 826,
                            "footCentroidX": 785,
                            "fullBounds": [
                                114,
                                114,
                                918,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                409,
                                857
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                409,
                                115,
                                857,
                                925
                            ],
                            "bodyCentroid": [
                                680.8811484626835,
                                531.7107210555062
                            ],
                            "bodyHeight": 810,
                            "bodyPixels": 186754,
                            "footBandTopY": 827,
                            "footCentroidX": 724,
                            "fullBounds": [
                                53,
                                115,
                                857,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 5,
                        "output": "derived/dense-body-f1-root-lock-v4/frames/05/final/sprite.png",
                        "outputSha256": "2d8e93f6e6a45e806cade5e880c640fd42523ee4916382d34fe4610453e246a0",
                        "source": "frames/05/final/sprite.png",
                        "sourceSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                804,
                                810
                            ],
                            "finalUniformScaleFactor": 1,
                            "integerTranslation": [
                                114,
                                114
                            ],
                            "normalizedPosition": [
                                -110,
                                114
                            ],
                            "scaledSize": [
                                804,
                                810
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                53,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                470,
                                918
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                470,
                                114,
                                918,
                                924
                            ],
                            "bodyCentroid": [
                                742.5699642469684,
                                532.5941736988087
                            ],
                            "bodyHeight": 810,
                            "bodyPixels": 187117,
                            "footBandTopY": 826,
                            "footCentroidX": 785,
                            "fullBounds": [
                                126,
                                114,
                                918,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                409,
                                857
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                409,
                                115,
                                857,
                                925
                            ],
                            "bodyCentroid": [
                                681.5699642469684,
                                533.5941736988087
                            ],
                            "bodyHeight": 810,
                            "bodyPixels": 187117,
                            "footBandTopY": 827,
                            "footCentroidX": 724,
                            "fullBounds": [
                                65,
                                115,
                                857,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 6,
                        "output": "derived/dense-body-f1-root-lock-v4/frames/06/final/sprite.png",
                        "outputSha256": "49ce0bb543a30f82e5213207d2c920288a42d416992d61846479e92dc496e929",
                        "source": "frames/06/final/sprite.png",
                        "sourceSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                792,
                                810
                            ],
                            "finalUniformScaleFactor": 1,
                            "integerTranslation": [
                                126,
                                114
                            ],
                            "normalizedPosition": [
                                -98,
                                114
                            ],
                            "scaledSize": [
                                792,
                                810
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                65,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1
                        }
                    }
                ],
                "policy": {
                    "bodyPartCutting": false,
                    "filter": false,
                    "horizontalRootAuthority": "lower-foot-band median x",
                    "originalFramesPreserved": true,
                    "paletteReduction": false,
                    "perFrameScaleAuthority": "F1 central-body height",
                    "repaint": false,
                    "resampling": "nearest-neighbor",
                    "sequenceEnvelope": "union of normalized full-sprite bounds",
                    "sequenceScale": "one shared fit scale applied equally to every normalized frame",
                    "stretch": false,
                    "translation": "whole-sprite integer x/y only",
                    "uniformScaleOnly": true,
                    "verticalRootAuthority": "opaque baseline"
                },
                "preview": {
                    "path": "derived/dense-body-f1-root-lock-v4/preview/animation.gif",
                    "sha256": "11cab31a80c474f8eb14ca602db8e6b192e8570835bab8465190001aaa8a0bda"
                },
                "schemaVersion": "midgard-pixels.sequence-envelope-root-lock.v1",
                "sequence": {
                    "canvasSize": [
                        1024,
                        1024
                    ],
                    "normalizedUnionBounds": [
                        -120,
                        99,
                        696,
                        924
                    ],
                    "normalizedUnionSize": [
                        816,
                        825
                    ],
                    "padding": 8,
                    "sharedUniformScaleFactor": 1
                },
                "sourceRunId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "status": "derived-experiment-owner-review-required",
                "target": {
                    "bodyBandX": [
                        248,
                        696
                    ],
                    "bodyBaselineY": 923,
                    "bodyBounds": [
                        287,
                        114,
                        696,
                        924
                    ],
                    "bodyCentroid": [
                        504.6973533079953,
                        520.0658296238237
                    ],
                    "bodyHeight": 810,
                    "bodyPixels": 202857,
                    "footBandTopY": 826,
                    "footCentroidX": 561,
                    "fullBounds": [
                        287,
                        99,
                        696,
                        924
                    ],
                    "measurementPolicy": {
                        "bodyRowDensityFraction": 0.05,
                        "bodyWindowFraction": 0.4375,
                        "footBandHeightFraction": 0.12
                    }
                }
            }
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/report.json": {
            "sha256": "a7a3c81d690f2893b55f9282389dfab97df88ad369d5d3ce41fd35624982f7d1",
            "bytes": 7728,
            "value": {
                "artifacts": [
                    {
                        "path": "review/onion-audit/f1-to-f02.png",
                        "sha256": "d40ae90a30d1ca6ebb345838f944a71fb06425369942b2483e762b2789b35098"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f01-f02.png",
                        "sha256": "d40ae90a30d1ca6ebb345838f944a71fb06425369942b2483e762b2789b35098"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f03.png",
                        "sha256": "8b3abeeed27ca8c1e044e21bbbec0c0bdfeb3cab47b9b3f3e24239b317a6c15f"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f02-f03.png",
                        "sha256": "e2fb6c574977599dc230fc82d30c614d553d6fb01b394a815cd66716f6629d92"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f04.png",
                        "sha256": "714445ea4a3db583443e8a6febb3b75db5fd27ac41f207201841e1b38b9760a6"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f03-f04.png",
                        "sha256": "d23a3a6d2fdfa4177618052975075eabd6427c77ba5a1ce228f707b43bef8db6"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f05.png",
                        "sha256": "8b3abeeed27ca8c1e044e21bbbec0c0bdfeb3cab47b9b3f3e24239b317a6c15f"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f04-f05.png",
                        "sha256": "447d5ea2d8e635285924766456539ca29eb08ed467709c1a23399a9c7d0f05be"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f06.png",
                        "sha256": "d40ae90a30d1ca6ebb345838f944a71fb06425369942b2483e762b2789b35098"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f05-f06.png",
                        "sha256": "d99ef580ecb0ea97776f4e51e47b51afba6625df897169cebc2aee4a845197a7"
                    },
                    {
                        "path": "review/onion-audit/f1-onion-sheet.png",
                        "sha256": "daa9e44f55e351650779ba370420c3395873b9ce286759b15a2e631dbfb6bf63"
                    }
                ],
                "frames": [
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 1,
                        "bodyBandBounds": [
                            511,
                            114,
                            920,
                            924
                        ],
                        "bodyBandCentroid": [
                            728.6973533079953,
                            520.0658296238237
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0,
                            0
                        ],
                        "bodyBandHeight": 810,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 202857,
                        "bodyBandX": [
                            472,
                            920
                        ],
                        "footCentroidX": 785,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 1,
                        "fullBounds": [
                            511,
                            99,
                            920,
                            924
                        ],
                        "fullCentroid": [
                            728.5515,
                            519.7347
                        ],
                        "path": "frames/01/final/sprite.png",
                        "sha256": "72d1795ff1df8551dbe7e56a27b5994a8b9ff53ab56a77a9a371ef2eea17950e"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 0.922408,
                        "bodyBandBounds": [
                            470,
                            114,
                            918,
                            924
                        ],
                        "bodyBandCentroid": [
                            742.5699642469684,
                            532.5941736988087
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            13.8726,
                            12.5283
                        ],
                        "bodyBandHeight": 810,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 187117,
                        "bodyBandX": [
                            470,
                            918
                        ],
                        "footCentroidX": 785,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 2,
                        "fullBounds": [
                            126,
                            114,
                            918,
                            924
                        ],
                        "fullCentroid": [
                            714.5411,
                            529.0536
                        ],
                        "path": "frames/02/final/sprite.png",
                        "sha256": "49ce0bb543a30f82e5213207d2c920288a42d416992d61846479e92dc496e929"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 0.920619,
                        "bodyBandBounds": [
                            470,
                            114,
                            918,
                            924
                        ],
                        "bodyBandCentroid": [
                            741.8811484626835,
                            530.7107210555062
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            13.1838,
                            10.6449
                        ],
                        "bodyBandHeight": 810,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 186754,
                        "bodyBandX": [
                            470,
                            918
                        ],
                        "footCentroidX": 785,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 3,
                        "fullBounds": [
                            114,
                            114,
                            918,
                            924
                        ],
                        "fullCentroid": [
                            713.1214,
                            528.5479
                        ],
                        "path": "frames/03/final/sprite.png",
                        "sha256": "2d8e93f6e6a45e806cade5e880c640fd42523ee4916382d34fe4610453e246a0"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 0.921758,
                        "bodyBandBounds": [
                            470,
                            114,
                            918,
                            924
                        ],
                        "bodyBandCentroid": [
                            741.4002032248576,
                            530.7232719202075
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            12.7028,
                            10.6574
                        ],
                        "bodyBandHeight": 810,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 186985,
                        "bodyBandX": [
                            470,
                            918
                        ],
                        "footCentroidX": 785,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 4,
                        "fullBounds": [
                            104,
                            114,
                            918,
                            924
                        ],
                        "fullCentroid": [
                            711.5878,
                            528.2483
                        ],
                        "path": "frames/04/final/sprite.png",
                        "sha256": "0b763f057e6f95bb352b039b0d796ee87b8814675c14bf1b64f627e95b29abac"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 0.920619,
                        "bodyBandBounds": [
                            470,
                            114,
                            918,
                            924
                        ],
                        "bodyBandCentroid": [
                            741.8811484626835,
                            530.7107210555062
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            13.1838,
                            10.6449
                        ],
                        "bodyBandHeight": 810,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 186754,
                        "bodyBandX": [
                            470,
                            918
                        ],
                        "footCentroidX": 785,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 5,
                        "fullBounds": [
                            114,
                            114,
                            918,
                            924
                        ],
                        "fullCentroid": [
                            713.1214,
                            528.5479
                        ],
                        "path": "frames/05/final/sprite.png",
                        "sha256": "2d8e93f6e6a45e806cade5e880c640fd42523ee4916382d34fe4610453e246a0"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 0.922408,
                        "bodyBandBounds": [
                            470,
                            114,
                            918,
                            924
                        ],
                        "bodyBandCentroid": [
                            742.5699642469684,
                            532.5941736988087
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            13.8726,
                            12.5283
                        ],
                        "bodyBandHeight": 810,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 187117,
                        "bodyBandX": [
                            470,
                            918
                        ],
                        "footCentroidX": 785,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 6,
                        "fullBounds": [
                            126,
                            114,
                            918,
                            924
                        ],
                        "fullCentroid": [
                            714.5411,
                            529.0536
                        ],
                        "path": "frames/06/final/sprite.png",
                        "sha256": "49ce0bb543a30f82e5213207d2c920288a42d416992d61846479e92dc496e929"
                    }
                ],
                "measurement": {
                    "bodyBandDerivedFrom": "per-frame maximum-alpha fixed-width body window with dense-row gating; see measurementPolicy",
                    "canvas": [
                        1024,
                        1024
                    ],
                    "measurementPolicy": {
                        "bodyRowDensityFraction": 0.05,
                        "bodyWindowFraction": 0.4375,
                        "footBandHeightFraction": 0.12
                    },
                    "onionColors": {
                        "background": "#10131d",
                        "comparisonOnly": "#24e0ee",
                        "f1Only": "#ff3399",
                        "shared": "#f6f1e7"
                    }
                },
                "runId": "dense-body-f1-root-lock-v4",
                "schemaVersion": "midgard-pixels.generation-onion-audit.v1",
                "summary": {
                    "baselineRangePx": 0,
                    "maximumAbsoluteBodyCentroidXDriftPx": 13.8726,
                    "maximumAbsoluteFootRootXDriftPx": 0,
                    "minimumBodyAreaRatioToF1": 0.920619,
                    "minimumBodyHeightRatioToF1": 1,
                    "providerLateralDriftDetected": false,
                    "providerScaleDriftDetected": false
                }
            }
        },
        "derived/dense-body-f1-root-lock-v5/report.json": {
            "sha256": "4eea03eb57de22b7623cd2dd714f3150c7a85be5289fe9e6574f50631bd2b325",
            "bytes": 15348,
            "value": {
                "frames": [
                    {
                        "after": {
                            "bodyBandX": [
                                473,
                                921
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                512,
                                115,
                                921,
                                924
                            ],
                            "bodyCentroid": [
                                729.7134328211044,
                                520.1018640399528
                            ],
                            "bodyHeight": 809,
                            "bodyPixels": 202839,
                            "footBandTopY": 826,
                            "footCentroidX": 786,
                            "fullBounds": [
                                512,
                                99,
                                921,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                248,
                                696
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                287,
                                115,
                                696,
                                924
                            ],
                            "bodyCentroid": [
                                504.71343282110445,
                                520.1018640399528
                            ],
                            "bodyHeight": 809,
                            "bodyPixels": 202839,
                            "footBandTopY": 826,
                            "footCentroidX": 561,
                            "fullBounds": [
                                287,
                                99,
                                696,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 1,
                        "output": "derived/dense-body-f1-root-lock-v5/frames/01/final/sprite.png",
                        "outputSha256": "4615b6e4b57a0217c9bad7dcd2ef0b3f7c48e949312a661c932fd9b90833c6f1",
                        "source": "frames/01/final/sprite.png",
                        "sourceSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                409,
                                825
                            ],
                            "finalUniformScaleFactor": 1,
                            "integerTranslation": [
                                512,
                                99
                            ],
                            "normalizedPosition": [
                                287,
                                99
                            ],
                            "scaledSize": [
                                409,
                                825
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                287,
                                99,
                                696,
                                924
                            ],
                            "uniformScaleFactor": 1
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                473,
                                921
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                473,
                                115,
                                921,
                                925
                            ],
                            "bodyCentroid": [
                                744.8671206205094,
                                532.0399934393618
                            ],
                            "bodyHeight": 810,
                            "bodyPixels": 189006,
                            "footBandTopY": 827,
                            "footCentroidX": 787,
                            "fullBounds": [
                                125,
                                111,
                                921,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                409,
                                857
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                409,
                                119,
                                857,
                                924
                            ],
                            "bodyCentroid": [
                                681.5150584685832,
                                533.8207641036065
                            ],
                            "bodyHeight": 805,
                            "bodyPixels": 186938,
                            "footBandTopY": 826,
                            "footCentroidX": 723,
                            "fullBounds": [
                                65,
                                115,
                                857,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 2,
                        "output": "derived/dense-body-f1-root-lock-v5/frames/02/final/sprite.png",
                        "outputSha256": "f0fab8c82ce1da576d723d4d552d52e45ce825d6e9c3a5e6d8e78ce01b6281e3",
                        "source": "frames/02/final/sprite.png",
                        "sourceSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                796,
                                814
                            ],
                            "finalUniformScaleFactor": 1.00496894,
                            "integerTranslation": [
                                125,
                                111
                            ],
                            "normalizedPosition": [
                                -100,
                                111
                            ],
                            "scaledSize": [
                                796,
                                814
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                65,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.00496894
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                472,
                                920
                            ],
                            "bodyBaselineY": 918,
                            "bodyBounds": [
                                472,
                                115,
                                920,
                                919
                            ],
                            "bodyCentroid": [
                                743.1925622120797,
                                528.9835998425415
                            ],
                            "bodyHeight": 804,
                            "bodyPixels": 187986,
                            "footBandTopY": 822,
                            "footCentroidX": 784,
                            "fullBounds": [
                                113,
                                111,
                                920,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                409,
                                857
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                409,
                                119,
                                857,
                                925
                            ],
                            "bodyCentroid": [
                                680.8395055112878,
                                532.0154862633093
                            ],
                            "bodyHeight": 806,
                            "bodyPixels": 186617,
                            "footBandTopY": 827,
                            "footCentroidX": 724,
                            "fullBounds": [
                                53,
                                115,
                                857,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 3,
                        "output": "derived/dense-body-f1-root-lock-v5/frames/03/final/sprite.png",
                        "outputSha256": "97b85c77f0f1a864bf603220b9da279142cef9b472b024f276e05e4acb21cb0f",
                        "source": "frames/03/final/sprite.png",
                        "sourceSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                807,
                                813
                            ],
                            "finalUniformScaleFactor": 1.00372208,
                            "integerTranslation": [
                                113,
                                111
                            ],
                            "normalizedPosition": [
                                -112,
                                111
                            ],
                            "scaledSize": [
                                807,
                                813
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                53,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.00372208
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                471,
                                919
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                471,
                                115,
                                919,
                                924
                            ],
                            "bodyCentroid": [
                                741.7889245074729,
                                529.4208347486413
                            ],
                            "bodyHeight": 809,
                            "bodyPixels": 188416,
                            "footBandTopY": 826,
                            "footCentroidX": 785,
                            "fullBounds": [
                                102,
                                111,
                                919,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                409,
                                857
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                409,
                                119,
                                857,
                                925
                            ],
                            "bodyCentroid": [
                                680.3584036221956,
                                532.027680253468
                            ],
                            "bodyHeight": 806,
                            "bodyPixels": 186848,
                            "footBandTopY": 827,
                            "footCentroidX": 724,
                            "fullBounds": [
                                43,
                                115,
                                857,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 4,
                        "output": "derived/dense-body-f1-root-lock-v5/frames/04/final/sprite.png",
                        "outputSha256": "eb637790899ab819be40716aefedfaab50ba80aa4cba3c0b695170b2cb19c07c",
                        "source": "frames/04/final/sprite.png",
                        "sourceSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                817,
                                813
                            ],
                            "finalUniformScaleFactor": 1.00372208,
                            "integerTranslation": [
                                102,
                                111
                            ],
                            "normalizedPosition": [
                                -123,
                                111
                            ],
                            "scaledSize": [
                                817,
                                813
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                43,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.00372208
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                472,
                                920
                            ],
                            "bodyBaselineY": 918,
                            "bodyBounds": [
                                472,
                                115,
                                920,
                                919
                            ],
                            "bodyCentroid": [
                                743.1925622120797,
                                528.9835998425415
                            ],
                            "bodyHeight": 804,
                            "bodyPixels": 187986,
                            "footBandTopY": 822,
                            "footCentroidX": 784,
                            "fullBounds": [
                                113,
                                111,
                                920,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                409,
                                857
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                409,
                                119,
                                857,
                                925
                            ],
                            "bodyCentroid": [
                                680.8395055112878,
                                532.0154862633093
                            ],
                            "bodyHeight": 806,
                            "bodyPixels": 186617,
                            "footBandTopY": 827,
                            "footCentroidX": 724,
                            "fullBounds": [
                                53,
                                115,
                                857,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 5,
                        "output": "derived/dense-body-f1-root-lock-v5/frames/05/final/sprite.png",
                        "outputSha256": "97b85c77f0f1a864bf603220b9da279142cef9b472b024f276e05e4acb21cb0f",
                        "source": "frames/05/final/sprite.png",
                        "sourceSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                807,
                                813
                            ],
                            "finalUniformScaleFactor": 1.00372208,
                            "integerTranslation": [
                                113,
                                111
                            ],
                            "normalizedPosition": [
                                -112,
                                111
                            ],
                            "scaledSize": [
                                807,
                                813
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                53,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.00372208
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                473,
                                921
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                473,
                                115,
                                921,
                                925
                            ],
                            "bodyCentroid": [
                                744.8671206205094,
                                532.0399934393618
                            ],
                            "bodyHeight": 810,
                            "bodyPixels": 189006,
                            "footBandTopY": 827,
                            "footCentroidX": 787,
                            "fullBounds": [
                                125,
                                111,
                                921,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                409,
                                857
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                409,
                                119,
                                857,
                                924
                            ],
                            "bodyCentroid": [
                                681.5150584685832,
                                533.8207641036065
                            ],
                            "bodyHeight": 805,
                            "bodyPixels": 186938,
                            "footBandTopY": 826,
                            "footCentroidX": 723,
                            "fullBounds": [
                                65,
                                115,
                                857,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 6,
                        "output": "derived/dense-body-f1-root-lock-v5/frames/06/final/sprite.png",
                        "outputSha256": "f0fab8c82ce1da576d723d4d552d52e45ce825d6e9c3a5e6d8e78ce01b6281e3",
                        "source": "frames/06/final/sprite.png",
                        "sourceSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                796,
                                814
                            ],
                            "finalUniformScaleFactor": 1.00496894,
                            "integerTranslation": [
                                125,
                                111
                            ],
                            "normalizedPosition": [
                                -100,
                                111
                            ],
                            "scaledSize": [
                                796,
                                814
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                65,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.00496894
                        }
                    }
                ],
                "policy": {
                    "bodyPartCutting": false,
                    "filter": false,
                    "horizontalRootAuthority": "lower-foot-band median x",
                    "originalFramesPreserved": true,
                    "paletteReduction": false,
                    "perFrameScaleAuthority": "F1 central-body height",
                    "repaint": false,
                    "resampling": "nearest-neighbor",
                    "sequenceEnvelope": "union of normalized full-sprite bounds",
                    "sequenceScale": "one shared fit scale applied equally to every normalized frame",
                    "stretch": false,
                    "translation": "whole-sprite integer x/y only",
                    "uniformScaleOnly": true,
                    "verticalRootAuthority": "opaque baseline"
                },
                "preview": {
                    "path": "derived/dense-body-f1-root-lock-v5/preview/animation.gif",
                    "sha256": "8e043961251df9481677126d50ada59c3668d47e8ee4fd944d30e0e9da944d1d"
                },
                "schemaVersion": "midgard-pixels.sequence-envelope-root-lock.v1",
                "sequence": {
                    "canvasSize": [
                        1024,
                        1024
                    ],
                    "normalizedUnionBounds": [
                        -123,
                        99,
                        696,
                        925
                    ],
                    "normalizedUnionSize": [
                        819,
                        826
                    ],
                    "padding": 8,
                    "sharedUniformScaleFactor": 1
                },
                "sourceRunId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "status": "derived-experiment-owner-review-required",
                "target": {
                    "bodyBandX": [
                        248,
                        696
                    ],
                    "bodyBaselineY": 923,
                    "bodyBounds": [
                        287,
                        115,
                        696,
                        924
                    ],
                    "bodyCentroid": [
                        504.71343282110445,
                        520.1018640399528
                    ],
                    "bodyHeight": 809,
                    "bodyPixels": 202839,
                    "footBandTopY": 826,
                    "footCentroidX": 561,
                    "fullBounds": [
                        287,
                        99,
                        696,
                        924
                    ],
                    "measurementPolicy": {
                        "bodyRowDensityFraction": 0.1,
                        "bodyWindowFraction": 0.4375,
                        "footBandHeightFraction": 0.12
                    }
                }
            }
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/report.json": {
            "sha256": "8122addb9fef7e3e167da3133e628162330df1f0ba6cdf906c59821ce922e339",
            "bytes": 7742,
            "value": {
                "artifacts": [
                    {
                        "path": "review/onion-audit/f1-to-f02.png",
                        "sha256": "2f5e578ba9dcf5ac47faf01af7241c8bda341b73abe43b3f385a2e3f8c79d3d3"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f01-f02.png",
                        "sha256": "2f5e578ba9dcf5ac47faf01af7241c8bda341b73abe43b3f385a2e3f8c79d3d3"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f03.png",
                        "sha256": "f2b7e73f92a69c3874d699ebe39cc4cbc3e3dfc6ca2d27c19e6dec36059f0025"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f02-f03.png",
                        "sha256": "276fc9508fe059585cfb5e5134b98285d773efa641b7051d4b54df79fe489b26"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f04.png",
                        "sha256": "d429d54779c07331a7c9cb2f49431135e71fc2683a72e06c171b78012dcd2b46"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f03-f04.png",
                        "sha256": "195e39838aec9f718662a06a48dcda9202d58fba11748291012eb30a62ee39a0"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f05.png",
                        "sha256": "f2b7e73f92a69c3874d699ebe39cc4cbc3e3dfc6ca2d27c19e6dec36059f0025"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f04-f05.png",
                        "sha256": "d51470d11d13a7867e2948906b1c5ce8e0aca153ec5e3efed05f5be97a167827"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f06.png",
                        "sha256": "2f5e578ba9dcf5ac47faf01af7241c8bda341b73abe43b3f385a2e3f8c79d3d3"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f05-f06.png",
                        "sha256": "4391a1379e8482d77acbff0d18032c0d4667823e8bce10540598ea8b03eecf2c"
                    },
                    {
                        "path": "review/onion-audit/f1-onion-sheet.png",
                        "sha256": "7d2cd9dbaf450433173f4b0cfa2534d29a9966be684947ce45381cbae82809f3"
                    }
                ],
                "frames": [
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 1,
                        "bodyBandBounds": [
                            512,
                            115,
                            921,
                            924
                        ],
                        "bodyBandCentroid": [
                            729.7134328211044,
                            520.1018640399528
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0,
                            0
                        ],
                        "bodyBandHeight": 809,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 202839,
                        "bodyBandX": [
                            473,
                            921
                        ],
                        "footCentroidX": 786,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 1,
                        "fullBounds": [
                            512,
                            99,
                            921,
                            924
                        ],
                        "fullCentroid": [
                            729.5515,
                            519.7347
                        ],
                        "path": "frames/01/final/sprite.png",
                        "sha256": "4615b6e4b57a0217c9bad7dcd2ef0b3f7c48e949312a661c932fd9b90833c6f1"
                    },
                    {
                        "baselineY": 924,
                        "bodyBandAreaRatioToF1": 0.931803,
                        "bodyBandBounds": [
                            473,
                            115,
                            921,
                            925
                        ],
                        "bodyBandCentroid": [
                            744.8671206205094,
                            532.0399934393618
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            15.1537,
                            11.9381
                        ],
                        "bodyBandHeight": 810,
                        "bodyBandHeightRatioToF1": 1.001236,
                        "bodyBandVisiblePixels": 189006,
                        "bodyBandX": [
                            473,
                            921
                        ],
                        "footCentroidX": 787,
                        "footCentroidXDeltaFromF1": 1,
                        "frame": 2,
                        "fullBounds": [
                            125,
                            111,
                            921,
                            925
                        ],
                        "fullCentroid": [
                            716.75,
                            528.1913
                        ],
                        "path": "frames/02/final/sprite.png",
                        "sha256": "f0fab8c82ce1da576d723d4d552d52e45ce825d6e9c3a5e6d8e78ce01b6281e3"
                    },
                    {
                        "baselineY": 918,
                        "bodyBandAreaRatioToF1": 0.926774,
                        "bodyBandBounds": [
                            472,
                            115,
                            920,
                            919
                        ],
                        "bodyBandCentroid": [
                            743.1925622120797,
                            528.9835998425415
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            13.4791,
                            8.8817
                        ],
                        "bodyBandHeight": 804,
                        "bodyBandHeightRatioToF1": 0.99382,
                        "bodyBandVisiblePixels": 187986,
                        "bodyBandX": [
                            472,
                            920
                        ],
                        "footCentroidX": 784,
                        "footCentroidXDeltaFromF1": -2,
                        "frame": 3,
                        "fullBounds": [
                            113,
                            111,
                            920,
                            924
                        ],
                        "fullCentroid": [
                            714.195,
                            526.9137
                        ],
                        "path": "frames/03/final/sprite.png",
                        "sha256": "97b85c77f0f1a864bf603220b9da279142cef9b472b024f276e05e4acb21cb0f"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 0.928894,
                        "bodyBandBounds": [
                            471,
                            115,
                            919,
                            924
                        ],
                        "bodyBandCentroid": [
                            741.7889245074729,
                            529.4208347486413
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            12.0755,
                            9.319
                        ],
                        "bodyBandHeight": 809,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 188416,
                        "bodyBandX": [
                            471,
                            919
                        ],
                        "footCentroidX": 785,
                        "footCentroidXDeltaFromF1": -1,
                        "frame": 4,
                        "fullBounds": [
                            102,
                            111,
                            919,
                            924
                        ],
                        "fullCentroid": [
                            711.7662,
                            526.6161
                        ],
                        "path": "frames/04/final/sprite.png",
                        "sha256": "eb637790899ab819be40716aefedfaab50ba80aa4cba3c0b695170b2cb19c07c"
                    },
                    {
                        "baselineY": 918,
                        "bodyBandAreaRatioToF1": 0.926774,
                        "bodyBandBounds": [
                            472,
                            115,
                            920,
                            919
                        ],
                        "bodyBandCentroid": [
                            743.1925622120797,
                            528.9835998425415
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            13.4791,
                            8.8817
                        ],
                        "bodyBandHeight": 804,
                        "bodyBandHeightRatioToF1": 0.99382,
                        "bodyBandVisiblePixels": 187986,
                        "bodyBandX": [
                            472,
                            920
                        ],
                        "footCentroidX": 784,
                        "footCentroidXDeltaFromF1": -2,
                        "frame": 5,
                        "fullBounds": [
                            113,
                            111,
                            920,
                            924
                        ],
                        "fullCentroid": [
                            714.195,
                            526.9137
                        ],
                        "path": "frames/05/final/sprite.png",
                        "sha256": "97b85c77f0f1a864bf603220b9da279142cef9b472b024f276e05e4acb21cb0f"
                    },
                    {
                        "baselineY": 924,
                        "bodyBandAreaRatioToF1": 0.931803,
                        "bodyBandBounds": [
                            473,
                            115,
                            921,
                            925
                        ],
                        "bodyBandCentroid": [
                            744.8671206205094,
                            532.0399934393618
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            15.1537,
                            11.9381
                        ],
                        "bodyBandHeight": 810,
                        "bodyBandHeightRatioToF1": 1.001236,
                        "bodyBandVisiblePixels": 189006,
                        "bodyBandX": [
                            473,
                            921
                        ],
                        "footCentroidX": 787,
                        "footCentroidXDeltaFromF1": 1,
                        "frame": 6,
                        "fullBounds": [
                            125,
                            111,
                            921,
                            925
                        ],
                        "fullCentroid": [
                            716.75,
                            528.1913
                        ],
                        "path": "frames/06/final/sprite.png",
                        "sha256": "f0fab8c82ce1da576d723d4d552d52e45ce825d6e9c3a5e6d8e78ce01b6281e3"
                    }
                ],
                "measurement": {
                    "bodyBandDerivedFrom": "per-frame maximum-alpha fixed-width body window with dense-row gating; see measurementPolicy",
                    "canvas": [
                        1024,
                        1024
                    ],
                    "measurementPolicy": {
                        "bodyRowDensityFraction": 0.1,
                        "bodyWindowFraction": 0.4375,
                        "footBandHeightFraction": 0.12
                    },
                    "onionColors": {
                        "background": "#10131d",
                        "comparisonOnly": "#24e0ee",
                        "f1Only": "#ff3399",
                        "shared": "#f6f1e7"
                    }
                },
                "runId": "dense-body-f1-root-lock-v5",
                "schemaVersion": "midgard-pixels.generation-onion-audit.v1",
                "summary": {
                    "baselineRangePx": 6,
                    "maximumAbsoluteBodyCentroidXDriftPx": 15.1537,
                    "maximumAbsoluteFootRootXDriftPx": 2,
                    "minimumBodyAreaRatioToF1": 0.926774,
                    "minimumBodyHeightRatioToF1": 0.99382,
                    "providerLateralDriftDetected": false,
                    "providerScaleDriftDetected": false
                }
            }
        },
        "derived/dense-body-f1-root-lock-v6/report.json": {
            "sha256": "f91dc559bc565119249c267ce946ff7281e9294b2fcb6748774d1599e31912a0",
            "bytes": 15844,
            "value": {
                "frames": [
                    {
                        "after": {
                            "bodyBandX": [
                                473,
                                921
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                512,
                                115,
                                921,
                                924
                            ],
                            "bodyCentroid": [
                                729.7134328211044,
                                520.1018640399528
                            ],
                            "bodyHeight": 809,
                            "bodyPixels": 202839,
                            "footBandTopY": 826,
                            "footCentroidX": 786,
                            "fullBounds": [
                                512,
                                99,
                                921,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                248,
                                696
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                287,
                                115,
                                696,
                                924
                            ],
                            "bodyCentroid": [
                                504.71343282110445,
                                520.1018640399528
                            ],
                            "bodyHeight": 809,
                            "bodyPixels": 202839,
                            "footBandTopY": 826,
                            "footCentroidX": 561,
                            "fullBounds": [
                                287,
                                99,
                                696,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 1,
                        "output": "derived/dense-body-f1-root-lock-v6/frames/01/final/sprite.png",
                        "outputSha256": "4615b6e4b57a0217c9bad7dcd2ef0b3f7c48e949312a661c932fd9b90833c6f1",
                        "source": "frames/01/final/sprite.png",
                        "sourceSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                409,
                                825
                            ],
                            "finalUniformScaleFactor": 1,
                            "integerTranslation": [
                                512,
                                99
                            ],
                            "normalizedPosition": [
                                287,
                                99
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                409,
                                825
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                287,
                                99,
                                696,
                                924
                            ],
                            "uniformScaleFactor": 1
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                472,
                                920
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                472,
                                114,
                                920,
                                924
                            ],
                            "bodyCentroid": [
                                743.8671206205094,
                                531.0399934393618
                            ],
                            "bodyHeight": 810,
                            "bodyPixels": 189006,
                            "footBandTopY": 826,
                            "footCentroidX": 786,
                            "fullBounds": [
                                124,
                                110,
                                920,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                409,
                                857
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                409,
                                119,
                                857,
                                924
                            ],
                            "bodyCentroid": [
                                681.5150584685832,
                                533.8207641036065
                            ],
                            "bodyHeight": 805,
                            "bodyPixels": 186938,
                            "footBandTopY": 826,
                            "footCentroidX": 723,
                            "fullBounds": [
                                65,
                                115,
                                857,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 2,
                        "output": "derived/dense-body-f1-root-lock-v6/frames/02/final/sprite.png",
                        "outputSha256": "55b5b6695032924fc3584146d67a3fad178b84b6c7c6d08969658587fdc67abd",
                        "source": "frames/02/final/sprite.png",
                        "sourceSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                796,
                                814
                            ],
                            "finalUniformScaleFactor": 1.00496894,
                            "integerTranslation": [
                                125,
                                111
                            ],
                            "normalizedPosition": [
                                -100,
                                111
                            ],
                            "rootCorrectionIntegerTranslation": [
                                -1,
                                -1
                            ],
                            "scaledSize": [
                                796,
                                814
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                65,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.00496894
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                474,
                                922
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                474,
                                120,
                                922,
                                924
                            ],
                            "bodyCentroid": [
                                745.1925622120797,
                                533.9835998425415
                            ],
                            "bodyHeight": 804,
                            "bodyPixels": 187986,
                            "footBandTopY": 827,
                            "footCentroidX": 786,
                            "fullBounds": [
                                115,
                                116,
                                922,
                                929
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                409,
                                857
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                409,
                                119,
                                857,
                                925
                            ],
                            "bodyCentroid": [
                                680.8395055112878,
                                532.0154862633093
                            ],
                            "bodyHeight": 806,
                            "bodyPixels": 186617,
                            "footBandTopY": 827,
                            "footCentroidX": 724,
                            "fullBounds": [
                                53,
                                115,
                                857,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 3,
                        "output": "derived/dense-body-f1-root-lock-v6/frames/03/final/sprite.png",
                        "outputSha256": "da88e6f411563433d15df2606f6fd88c987a30bdeb1dafc3dbd6c76730e15405",
                        "source": "frames/03/final/sprite.png",
                        "sourceSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                807,
                                813
                            ],
                            "finalUniformScaleFactor": 1.00372208,
                            "integerTranslation": [
                                113,
                                111
                            ],
                            "normalizedPosition": [
                                -112,
                                111
                            ],
                            "rootCorrectionIntegerTranslation": [
                                2,
                                5
                            ],
                            "scaledSize": [
                                807,
                                813
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                53,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.00372208
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                472,
                                920
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                472,
                                115,
                                920,
                                924
                            ],
                            "bodyCentroid": [
                                742.7889245074729,
                                529.4208347486413
                            ],
                            "bodyHeight": 809,
                            "bodyPixels": 188416,
                            "footBandTopY": 826,
                            "footCentroidX": 786,
                            "fullBounds": [
                                103,
                                111,
                                920,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                409,
                                857
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                409,
                                119,
                                857,
                                925
                            ],
                            "bodyCentroid": [
                                680.3584036221956,
                                532.027680253468
                            ],
                            "bodyHeight": 806,
                            "bodyPixels": 186848,
                            "footBandTopY": 827,
                            "footCentroidX": 724,
                            "fullBounds": [
                                43,
                                115,
                                857,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 4,
                        "output": "derived/dense-body-f1-root-lock-v6/frames/04/final/sprite.png",
                        "outputSha256": "b3a433f51759397f227feb19773924d0aaa48ed67c4b4a1fb38d5f11dea34f7f",
                        "source": "frames/04/final/sprite.png",
                        "sourceSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                817,
                                813
                            ],
                            "finalUniformScaleFactor": 1.00372208,
                            "integerTranslation": [
                                102,
                                111
                            ],
                            "normalizedPosition": [
                                -123,
                                111
                            ],
                            "rootCorrectionIntegerTranslation": [
                                1,
                                0
                            ],
                            "scaledSize": [
                                817,
                                813
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                43,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.00372208
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                474,
                                922
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                474,
                                120,
                                922,
                                924
                            ],
                            "bodyCentroid": [
                                745.1925622120797,
                                533.9835998425415
                            ],
                            "bodyHeight": 804,
                            "bodyPixels": 187986,
                            "footBandTopY": 827,
                            "footCentroidX": 786,
                            "fullBounds": [
                                115,
                                116,
                                922,
                                929
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                409,
                                857
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                409,
                                119,
                                857,
                                925
                            ],
                            "bodyCentroid": [
                                680.8395055112878,
                                532.0154862633093
                            ],
                            "bodyHeight": 806,
                            "bodyPixels": 186617,
                            "footBandTopY": 827,
                            "footCentroidX": 724,
                            "fullBounds": [
                                53,
                                115,
                                857,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 5,
                        "output": "derived/dense-body-f1-root-lock-v6/frames/05/final/sprite.png",
                        "outputSha256": "da88e6f411563433d15df2606f6fd88c987a30bdeb1dafc3dbd6c76730e15405",
                        "source": "frames/05/final/sprite.png",
                        "sourceSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                807,
                                813
                            ],
                            "finalUniformScaleFactor": 1.00372208,
                            "integerTranslation": [
                                113,
                                111
                            ],
                            "normalizedPosition": [
                                -112,
                                111
                            ],
                            "rootCorrectionIntegerTranslation": [
                                2,
                                5
                            ],
                            "scaledSize": [
                                807,
                                813
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                53,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.00372208
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                472,
                                920
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                472,
                                114,
                                920,
                                924
                            ],
                            "bodyCentroid": [
                                743.8671206205094,
                                531.0399934393618
                            ],
                            "bodyHeight": 810,
                            "bodyPixels": 189006,
                            "footBandTopY": 826,
                            "footCentroidX": 786,
                            "fullBounds": [
                                124,
                                110,
                                920,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                409,
                                857
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                409,
                                119,
                                857,
                                924
                            ],
                            "bodyCentroid": [
                                681.5150584685832,
                                533.8207641036065
                            ],
                            "bodyHeight": 805,
                            "bodyPixels": 186938,
                            "footBandTopY": 826,
                            "footCentroidX": 723,
                            "fullBounds": [
                                65,
                                115,
                                857,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 6,
                        "output": "derived/dense-body-f1-root-lock-v6/frames/06/final/sprite.png",
                        "outputSha256": "55b5b6695032924fc3584146d67a3fad178b84b6c7c6d08969658587fdc67abd",
                        "source": "frames/06/final/sprite.png",
                        "sourceSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                796,
                                814
                            ],
                            "finalUniformScaleFactor": 1.00496894,
                            "integerTranslation": [
                                125,
                                111
                            ],
                            "normalizedPosition": [
                                -100,
                                111
                            ],
                            "rootCorrectionIntegerTranslation": [
                                -1,
                                -1
                            ],
                            "scaledSize": [
                                796,
                                814
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                65,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.00496894
                        }
                    }
                ],
                "policy": {
                    "bodyPartCutting": false,
                    "filter": false,
                    "horizontalRootAuthority": "lower-foot-band median x",
                    "originalFramesPreserved": true,
                    "paletteReduction": false,
                    "perFrameScaleAuthority": "F1 central-body height",
                    "repaint": false,
                    "resampling": "nearest-neighbor",
                    "sequenceEnvelope": "union of normalized full-sprite bounds",
                    "sequenceScale": "one shared fit scale applied equally to every normalized frame",
                    "stretch": false,
                    "translation": "whole-sprite integer x/y only",
                    "uniformScaleOnly": true,
                    "verticalRootAuthority": "opaque baseline"
                },
                "preview": {
                    "path": "derived/dense-body-f1-root-lock-v6/preview/animation.gif",
                    "sha256": "32338d19f48394a56c5a0fb89df21d3e61593e695cf049d73b10b450253fed20"
                },
                "schemaVersion": "midgard-pixels.sequence-envelope-root-lock.v1",
                "sequence": {
                    "canvasSize": [
                        1024,
                        1024
                    ],
                    "normalizedUnionBounds": [
                        -123,
                        99,
                        696,
                        925
                    ],
                    "normalizedUnionSize": [
                        819,
                        826
                    ],
                    "padding": 8,
                    "sharedUniformScaleFactor": 1
                },
                "sourceRunId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "status": "derived-experiment-owner-review-required",
                "target": {
                    "bodyBandX": [
                        248,
                        696
                    ],
                    "bodyBaselineY": 923,
                    "bodyBounds": [
                        287,
                        115,
                        696,
                        924
                    ],
                    "bodyCentroid": [
                        504.71343282110445,
                        520.1018640399528
                    ],
                    "bodyHeight": 809,
                    "bodyPixels": 202839,
                    "footBandTopY": 826,
                    "footCentroidX": 561,
                    "fullBounds": [
                        287,
                        99,
                        696,
                        924
                    ],
                    "measurementPolicy": {
                        "bodyRowDensityFraction": 0.1,
                        "bodyWindowFraction": 0.4375,
                        "footBandHeightFraction": 0.12
                    }
                }
            }
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/report.json": {
            "sha256": "92919df9ec232c9a0d823988ce8d6d798a2dc6ac85b7b5928d73a0e03b1703ba",
            "bytes": 7741,
            "value": {
                "artifacts": [
                    {
                        "path": "review/onion-audit/f1-to-f02.png",
                        "sha256": "591aee0364000d6bd2c5dcee48de76781268256361763714726a235b776ba650"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f01-f02.png",
                        "sha256": "591aee0364000d6bd2c5dcee48de76781268256361763714726a235b776ba650"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f03.png",
                        "sha256": "e18e243370a24d3927cfb6522b4be4fbaabc99284fd5e7c5117dd89229e5db1f"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f02-f03.png",
                        "sha256": "ae30a42fac8beec10a6d5d323b81aa68674f99dfa286ccfb1185bcce18cbc842"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f04.png",
                        "sha256": "1cbd15f6735b7a29db0499ad64ce5294e1e81e10692c553dbd1272f62365866e"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f03-f04.png",
                        "sha256": "f2effebc45957e47bb97610b9131e70935323fefaa5ee80fda4fb86e79348c03"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f05.png",
                        "sha256": "e18e243370a24d3927cfb6522b4be4fbaabc99284fd5e7c5117dd89229e5db1f"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f04-f05.png",
                        "sha256": "6e3de47e378aeb6879a7e47d11ad951f6b91bfba78352ed9e8bb65e49634072f"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f06.png",
                        "sha256": "591aee0364000d6bd2c5dcee48de76781268256361763714726a235b776ba650"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f05-f06.png",
                        "sha256": "c46d63c7ce6fa0c4d51d2bb7f532705b45e439aa88ad7e03dc20ecb638e81752"
                    },
                    {
                        "path": "review/onion-audit/f1-onion-sheet.png",
                        "sha256": "8f2dc4433aadfe892e70d5cf03db1403072f5494a1f6ae52b7b6b37831c6454d"
                    }
                ],
                "frames": [
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 1,
                        "bodyBandBounds": [
                            512,
                            115,
                            921,
                            924
                        ],
                        "bodyBandCentroid": [
                            729.7134328211044,
                            520.1018640399528
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0,
                            0
                        ],
                        "bodyBandHeight": 809,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 202839,
                        "bodyBandX": [
                            473,
                            921
                        ],
                        "footCentroidX": 786,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 1,
                        "fullBounds": [
                            512,
                            99,
                            921,
                            924
                        ],
                        "fullCentroid": [
                            729.5515,
                            519.7347
                        ],
                        "path": "frames/01/final/sprite.png",
                        "sha256": "4615b6e4b57a0217c9bad7dcd2ef0b3f7c48e949312a661c932fd9b90833c6f1"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 0.931803,
                        "bodyBandBounds": [
                            472,
                            114,
                            920,
                            924
                        ],
                        "bodyBandCentroid": [
                            743.8671206205094,
                            531.0399934393618
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            14.1537,
                            10.9381
                        ],
                        "bodyBandHeight": 810,
                        "bodyBandHeightRatioToF1": 1.001236,
                        "bodyBandVisiblePixels": 189006,
                        "bodyBandX": [
                            472,
                            920
                        ],
                        "footCentroidX": 786,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 2,
                        "fullBounds": [
                            124,
                            110,
                            920,
                            924
                        ],
                        "fullCentroid": [
                            715.75,
                            527.1913
                        ],
                        "path": "frames/02/final/sprite.png",
                        "sha256": "55b5b6695032924fc3584146d67a3fad178b84b6c7c6d08969658587fdc67abd"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 0.926774,
                        "bodyBandBounds": [
                            474,
                            120,
                            922,
                            924
                        ],
                        "bodyBandCentroid": [
                            745.1925622120797,
                            533.9835998425415
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            15.4791,
                            13.8817
                        ],
                        "bodyBandHeight": 804,
                        "bodyBandHeightRatioToF1": 0.99382,
                        "bodyBandVisiblePixels": 187986,
                        "bodyBandX": [
                            474,
                            922
                        ],
                        "footCentroidX": 786,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 3,
                        "fullBounds": [
                            115,
                            116,
                            922,
                            929
                        ],
                        "fullCentroid": [
                            716.195,
                            531.9137
                        ],
                        "path": "frames/03/final/sprite.png",
                        "sha256": "da88e6f411563433d15df2606f6fd88c987a30bdeb1dafc3dbd6c76730e15405"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 0.928894,
                        "bodyBandBounds": [
                            472,
                            115,
                            920,
                            924
                        ],
                        "bodyBandCentroid": [
                            742.7889245074729,
                            529.4208347486413
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            13.0755,
                            9.319
                        ],
                        "bodyBandHeight": 809,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 188416,
                        "bodyBandX": [
                            472,
                            920
                        ],
                        "footCentroidX": 786,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 4,
                        "fullBounds": [
                            103,
                            111,
                            920,
                            924
                        ],
                        "fullCentroid": [
                            712.7662,
                            526.6161
                        ],
                        "path": "frames/04/final/sprite.png",
                        "sha256": "b3a433f51759397f227feb19773924d0aaa48ed67c4b4a1fb38d5f11dea34f7f"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 0.926774,
                        "bodyBandBounds": [
                            474,
                            120,
                            922,
                            924
                        ],
                        "bodyBandCentroid": [
                            745.1925622120797,
                            533.9835998425415
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            15.4791,
                            13.8817
                        ],
                        "bodyBandHeight": 804,
                        "bodyBandHeightRatioToF1": 0.99382,
                        "bodyBandVisiblePixels": 187986,
                        "bodyBandX": [
                            474,
                            922
                        ],
                        "footCentroidX": 786,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 5,
                        "fullBounds": [
                            115,
                            116,
                            922,
                            929
                        ],
                        "fullCentroid": [
                            716.195,
                            531.9137
                        ],
                        "path": "frames/05/final/sprite.png",
                        "sha256": "da88e6f411563433d15df2606f6fd88c987a30bdeb1dafc3dbd6c76730e15405"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 0.931803,
                        "bodyBandBounds": [
                            472,
                            114,
                            920,
                            924
                        ],
                        "bodyBandCentroid": [
                            743.8671206205094,
                            531.0399934393618
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            14.1537,
                            10.9381
                        ],
                        "bodyBandHeight": 810,
                        "bodyBandHeightRatioToF1": 1.001236,
                        "bodyBandVisiblePixels": 189006,
                        "bodyBandX": [
                            472,
                            920
                        ],
                        "footCentroidX": 786,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 6,
                        "fullBounds": [
                            124,
                            110,
                            920,
                            924
                        ],
                        "fullCentroid": [
                            715.75,
                            527.1913
                        ],
                        "path": "frames/06/final/sprite.png",
                        "sha256": "55b5b6695032924fc3584146d67a3fad178b84b6c7c6d08969658587fdc67abd"
                    }
                ],
                "measurement": {
                    "bodyBandDerivedFrom": "per-frame maximum-alpha fixed-width body window with dense-row gating; see measurementPolicy",
                    "canvas": [
                        1024,
                        1024
                    ],
                    "measurementPolicy": {
                        "bodyRowDensityFraction": 0.1,
                        "bodyWindowFraction": 0.4375,
                        "footBandHeightFraction": 0.12
                    },
                    "onionColors": {
                        "background": "#10131d",
                        "comparisonOnly": "#24e0ee",
                        "f1Only": "#ff3399",
                        "shared": "#f6f1e7"
                    }
                },
                "runId": "dense-body-f1-root-lock-v6",
                "schemaVersion": "midgard-pixels.generation-onion-audit.v1",
                "summary": {
                    "baselineRangePx": 0,
                    "maximumAbsoluteBodyCentroidXDriftPx": 15.4791,
                    "maximumAbsoluteFootRootXDriftPx": 0,
                    "minimumBodyAreaRatioToF1": 0.926774,
                    "minimumBodyHeightRatioToF1": 0.99382,
                    "providerLateralDriftDetected": false,
                    "providerScaleDriftDetected": false
                }
            }
        },
        "derived/dense-body-f1-root-lock-v7/report.json": {
            "sha256": "860663d33245da2883b2a510228cbfdcdef304a5d27b83a8f5f87036941ce581",
            "bytes": 16634,
            "value": {
                "frames": [
                    {
                        "after": {
                            "bodyBandX": [
                                472,
                                920
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                511,
                                115,
                                920,
                                924
                            ],
                            "bodyCentroid": [
                                728.7134328211044,
                                520.1018640399528
                            ],
                            "bodyHeight": 809,
                            "bodyPixels": 202839,
                            "footBandTopY": 826,
                            "footCentroidX": 785,
                            "fullBounds": [
                                511,
                                99,
                                920,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                248,
                                696
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                287,
                                115,
                                696,
                                924
                            ],
                            "bodyCentroid": [
                                504.71343282110445,
                                520.1018640399528
                            ],
                            "bodyHeight": 809,
                            "bodyPixels": 202839,
                            "footBandTopY": 826,
                            "footCentroidX": 561,
                            "fullBounds": [
                                287,
                                99,
                                696,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 1,
                        "output": "derived/dense-body-f1-root-lock-v7/frames/01/final/sprite.png",
                        "outputSha256": "72d1795ff1df8551dbe7e56a27b5994a8b9ff53ab56a77a9a371ef2eea17950e",
                        "source": "frames/01/final/sprite.png",
                        "sourceSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                409,
                                825
                            ],
                            "finalUniformScaleFactor": 1,
                            "integerTranslation": [
                                511,
                                99
                            ],
                            "nominalUniformScaleFactor": 1,
                            "normalizedPosition": [
                                287,
                                99
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                409,
                                825
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                287,
                                99,
                                696,
                                924
                            ],
                            "uniformScaleFactor": 1
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                471,
                                919
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                471,
                                119,
                                919,
                                924
                            ],
                            "bodyCentroid": [
                                743.5150584685832,
                                533.8207641036065
                            ],
                            "bodyHeight": 805,
                            "bodyPixels": 186938,
                            "footBandTopY": 826,
                            "footCentroidX": 785,
                            "fullBounds": [
                                127,
                                115,
                                919,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                409,
                                857
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                409,
                                119,
                                857,
                                924
                            ],
                            "bodyCentroid": [
                                681.5150584685832,
                                533.8207641036065
                            ],
                            "bodyHeight": 805,
                            "bodyPixels": 186938,
                            "footBandTopY": 826,
                            "footCentroidX": 723,
                            "fullBounds": [
                                65,
                                115,
                                857,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 2,
                        "output": "derived/dense-body-f1-root-lock-v7/frames/02/final/sprite.png",
                        "outputSha256": "b31dae94948f3e133aa63577a298a6bb2c6752485ef9245eb31b12b6449e6e31",
                        "source": "frames/02/final/sprite.png",
                        "sourceSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                792,
                                810
                            ],
                            "finalUniformScaleFactor": 1.00046894,
                            "integerTranslation": [
                                127,
                                115
                            ],
                            "nominalUniformScaleFactor": 1.00496894,
                            "normalizedPosition": [
                                -97,
                                115
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                792,
                                810
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                65,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.00046894
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                470,
                                918
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                470,
                                118,
                                918,
                                924
                            ],
                            "bodyCentroid": [
                                741.8395055112878,
                                531.0154862633093
                            ],
                            "bodyHeight": 806,
                            "bodyPixels": 186617,
                            "footBandTopY": 826,
                            "footCentroidX": 785,
                            "fullBounds": [
                                114,
                                114,
                                918,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                409,
                                857
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                409,
                                119,
                                857,
                                925
                            ],
                            "bodyCentroid": [
                                680.8395055112878,
                                532.0154862633093
                            ],
                            "bodyHeight": 806,
                            "bodyPixels": 186617,
                            "footBandTopY": 827,
                            "footCentroidX": 724,
                            "fullBounds": [
                                53,
                                115,
                                857,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 3,
                        "output": "derived/dense-body-f1-root-lock-v7/frames/03/final/sprite.png",
                        "outputSha256": "2d8e93f6e6a45e806cade5e880c640fd42523ee4916382d34fe4610453e246a0",
                        "source": "frames/03/final/sprite.png",
                        "sourceSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                804,
                                810
                            ],
                            "finalUniformScaleFactor": 1.00047208,
                            "integerTranslation": [
                                114,
                                114
                            ],
                            "nominalUniformScaleFactor": 1.00372208,
                            "normalizedPosition": [
                                -110,
                                114
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                804,
                                810
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                53,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.00047208
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                470,
                                918
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                470,
                                118,
                                918,
                                924
                            ],
                            "bodyCentroid": [
                                741.3584036221956,
                                531.027680253468
                            ],
                            "bodyHeight": 806,
                            "bodyPixels": 186848,
                            "footBandTopY": 826,
                            "footCentroidX": 785,
                            "fullBounds": [
                                104,
                                114,
                                918,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                409,
                                857
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                409,
                                119,
                                857,
                                925
                            ],
                            "bodyCentroid": [
                                680.3584036221956,
                                532.027680253468
                            ],
                            "bodyHeight": 806,
                            "bodyPixels": 186848,
                            "footBandTopY": 827,
                            "footCentroidX": 724,
                            "fullBounds": [
                                43,
                                115,
                                857,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 4,
                        "output": "derived/dense-body-f1-root-lock-v7/frames/04/final/sprite.png",
                        "outputSha256": "0b763f057e6f95bb352b039b0d796ee87b8814675c14bf1b64f627e95b29abac",
                        "source": "frames/04/final/sprite.png",
                        "sourceSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                814,
                                810
                            ],
                            "finalUniformScaleFactor": 1.00047208,
                            "integerTranslation": [
                                104,
                                114
                            ],
                            "nominalUniformScaleFactor": 1.00372208,
                            "normalizedPosition": [
                                -120,
                                114
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                814,
                                810
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                43,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.00047208
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                470,
                                918
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                470,
                                118,
                                918,
                                924
                            ],
                            "bodyCentroid": [
                                741.8395055112878,
                                531.0154862633093
                            ],
                            "bodyHeight": 806,
                            "bodyPixels": 186617,
                            "footBandTopY": 826,
                            "footCentroidX": 785,
                            "fullBounds": [
                                114,
                                114,
                                918,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                409,
                                857
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                409,
                                119,
                                857,
                                925
                            ],
                            "bodyCentroid": [
                                680.8395055112878,
                                532.0154862633093
                            ],
                            "bodyHeight": 806,
                            "bodyPixels": 186617,
                            "footBandTopY": 827,
                            "footCentroidX": 724,
                            "fullBounds": [
                                53,
                                115,
                                857,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 5,
                        "output": "derived/dense-body-f1-root-lock-v7/frames/05/final/sprite.png",
                        "outputSha256": "2d8e93f6e6a45e806cade5e880c640fd42523ee4916382d34fe4610453e246a0",
                        "source": "frames/05/final/sprite.png",
                        "sourceSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                804,
                                810
                            ],
                            "finalUniformScaleFactor": 1.00047208,
                            "integerTranslation": [
                                114,
                                114
                            ],
                            "nominalUniformScaleFactor": 1.00372208,
                            "normalizedPosition": [
                                -110,
                                114
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                804,
                                810
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                53,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.00047208
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                471,
                                919
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                471,
                                119,
                                919,
                                924
                            ],
                            "bodyCentroid": [
                                743.5150584685832,
                                533.8207641036065
                            ],
                            "bodyHeight": 805,
                            "bodyPixels": 186938,
                            "footBandTopY": 826,
                            "footCentroidX": 785,
                            "fullBounds": [
                                127,
                                115,
                                919,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                409,
                                857
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                409,
                                119,
                                857,
                                924
                            ],
                            "bodyCentroid": [
                                681.5150584685832,
                                533.8207641036065
                            ],
                            "bodyHeight": 805,
                            "bodyPixels": 186938,
                            "footBandTopY": 826,
                            "footCentroidX": 723,
                            "fullBounds": [
                                65,
                                115,
                                857,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 6,
                        "output": "derived/dense-body-f1-root-lock-v7/frames/06/final/sprite.png",
                        "outputSha256": "b31dae94948f3e133aa63577a298a6bb2c6752485ef9245eb31b12b6449e6e31",
                        "source": "frames/06/final/sprite.png",
                        "sourceSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                792,
                                810
                            ],
                            "finalUniformScaleFactor": 1.00046894,
                            "integerTranslation": [
                                127,
                                115
                            ],
                            "nominalUniformScaleFactor": 1.00496894,
                            "normalizedPosition": [
                                -97,
                                115
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                792,
                                810
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                65,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.00046894
                        }
                    }
                ],
                "policy": {
                    "bodyPartCutting": false,
                    "filter": false,
                    "horizontalRootAuthority": "lower-foot-band median x",
                    "originalFramesPreserved": true,
                    "paletteReduction": false,
                    "perFrameScaleAuthority": "F1 central-body height",
                    "repaint": false,
                    "resampling": "nearest-neighbor",
                    "sequenceEnvelope": "union of normalized full-sprite bounds",
                    "sequenceScale": "one shared fit scale applied equally to every normalized frame",
                    "stretch": false,
                    "translation": "whole-sprite integer x/y only",
                    "uniformScaleOnly": true,
                    "verticalRootAuthority": "opaque baseline"
                },
                "preview": {
                    "path": "derived/dense-body-f1-root-lock-v7/preview/animation.gif",
                    "sha256": "6915f3b236a43f6a2d23217a6ca1fcecdaaf588cc9f886702b3bc25e5f04fd6d"
                },
                "schemaVersion": "midgard-pixels.sequence-envelope-root-lock.v1",
                "sequence": {
                    "canvasSize": [
                        1024,
                        1024
                    ],
                    "normalizedUnionBounds": [
                        -120,
                        99,
                        696,
                        925
                    ],
                    "normalizedUnionSize": [
                        816,
                        826
                    ],
                    "padding": 8,
                    "sharedUniformScaleFactor": 1
                },
                "sourceRunId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "status": "derived-experiment-owner-review-required",
                "target": {
                    "bodyBandX": [
                        248,
                        696
                    ],
                    "bodyBaselineY": 923,
                    "bodyBounds": [
                        287,
                        115,
                        696,
                        924
                    ],
                    "bodyCentroid": [
                        504.71343282110445,
                        520.1018640399528
                    ],
                    "bodyHeight": 809,
                    "bodyPixels": 202839,
                    "footBandTopY": 826,
                    "footCentroidX": 561,
                    "fullBounds": [
                        287,
                        99,
                        696,
                        924
                    ],
                    "measurementPolicy": {
                        "bodyRowDensityFraction": 0.1,
                        "bodyWindowFraction": 0.4375,
                        "footBandHeightFraction": 0.12
                    }
                }
            }
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/report.json": {
            "sha256": "748f0a50ee9b5b9a1eb205f6aef8661cb02c6c85377b0eebd3100b88c30dadfd",
            "bytes": 7755,
            "value": {
                "artifacts": [
                    {
                        "path": "review/onion-audit/f1-to-f02.png",
                        "sha256": "a022548e8c461085a4782153d792c28699de11671852bfb3e6e1496b6a0a4119"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f01-f02.png",
                        "sha256": "a022548e8c461085a4782153d792c28699de11671852bfb3e6e1496b6a0a4119"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f03.png",
                        "sha256": "8b3abeeed27ca8c1e044e21bbbec0c0bdfeb3cab47b9b3f3e24239b317a6c15f"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f02-f03.png",
                        "sha256": "bcfd45a155ed66e0466b6f6796882e8de4e7b4c92b2e79f6663161a45e8b9959"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f04.png",
                        "sha256": "714445ea4a3db583443e8a6febb3b75db5fd27ac41f207201841e1b38b9760a6"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f03-f04.png",
                        "sha256": "d23a3a6d2fdfa4177618052975075eabd6427c77ba5a1ce228f707b43bef8db6"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f05.png",
                        "sha256": "8b3abeeed27ca8c1e044e21bbbec0c0bdfeb3cab47b9b3f3e24239b317a6c15f"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f04-f05.png",
                        "sha256": "447d5ea2d8e635285924766456539ca29eb08ed467709c1a23399a9c7d0f05be"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f06.png",
                        "sha256": "a022548e8c461085a4782153d792c28699de11671852bfb3e6e1496b6a0a4119"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f05-f06.png",
                        "sha256": "bff60e3c30e864a22c85f49f31bec9802a67f9ae292648eaae011d67843f3735"
                    },
                    {
                        "path": "review/onion-audit/f1-onion-sheet.png",
                        "sha256": "6b5f2beae8dac4fef17a018014dcc2cfa7dd21c75350bed66b229e7226f6e848"
                    }
                ],
                "frames": [
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 1,
                        "bodyBandBounds": [
                            511,
                            115,
                            920,
                            924
                        ],
                        "bodyBandCentroid": [
                            728.7134328211044,
                            520.1018640399528
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0,
                            0
                        ],
                        "bodyBandHeight": 809,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 202839,
                        "bodyBandX": [
                            472,
                            920
                        ],
                        "footCentroidX": 785,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 1,
                        "fullBounds": [
                            511,
                            99,
                            920,
                            924
                        ],
                        "fullCentroid": [
                            728.5515,
                            519.7347
                        ],
                        "path": "frames/01/final/sprite.png",
                        "sha256": "72d1795ff1df8551dbe7e56a27b5994a8b9ff53ab56a77a9a371ef2eea17950e"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 0.921608,
                        "bodyBandBounds": [
                            471,
                            119,
                            919,
                            924
                        ],
                        "bodyBandCentroid": [
                            743.5150584685832,
                            533.8207641036065
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            14.8016,
                            13.7189
                        ],
                        "bodyBandHeight": 805,
                        "bodyBandHeightRatioToF1": 0.995056,
                        "bodyBandVisiblePixels": 186938,
                        "bodyBandX": [
                            471,
                            919
                        ],
                        "footCentroidX": 785,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 2,
                        "fullBounds": [
                            127,
                            115,
                            919,
                            925
                        ],
                        "fullCentroid": [
                            715.5411,
                            530.0536
                        ],
                        "path": "frames/02/final/sprite.png",
                        "sha256": "b31dae94948f3e133aa63577a298a6bb2c6752485ef9245eb31b12b6449e6e31"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 0.920025,
                        "bodyBandBounds": [
                            470,
                            118,
                            918,
                            924
                        ],
                        "bodyBandCentroid": [
                            741.8395055112878,
                            531.0154862633093
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            13.1261,
                            10.9136
                        ],
                        "bodyBandHeight": 806,
                        "bodyBandHeightRatioToF1": 0.996292,
                        "bodyBandVisiblePixels": 186617,
                        "bodyBandX": [
                            470,
                            918
                        ],
                        "footCentroidX": 785,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 3,
                        "fullBounds": [
                            114,
                            114,
                            918,
                            924
                        ],
                        "fullCentroid": [
                            713.1214,
                            528.5479
                        ],
                        "path": "frames/03/final/sprite.png",
                        "sha256": "2d8e93f6e6a45e806cade5e880c640fd42523ee4916382d34fe4610453e246a0"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 0.921164,
                        "bodyBandBounds": [
                            470,
                            118,
                            918,
                            924
                        ],
                        "bodyBandCentroid": [
                            741.3584036221956,
                            531.027680253468
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            12.645,
                            10.9258
                        ],
                        "bodyBandHeight": 806,
                        "bodyBandHeightRatioToF1": 0.996292,
                        "bodyBandVisiblePixels": 186848,
                        "bodyBandX": [
                            470,
                            918
                        ],
                        "footCentroidX": 785,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 4,
                        "fullBounds": [
                            104,
                            114,
                            918,
                            924
                        ],
                        "fullCentroid": [
                            711.5878,
                            528.2483
                        ],
                        "path": "frames/04/final/sprite.png",
                        "sha256": "0b763f057e6f95bb352b039b0d796ee87b8814675c14bf1b64f627e95b29abac"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 0.920025,
                        "bodyBandBounds": [
                            470,
                            118,
                            918,
                            924
                        ],
                        "bodyBandCentroid": [
                            741.8395055112878,
                            531.0154862633093
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            13.1261,
                            10.9136
                        ],
                        "bodyBandHeight": 806,
                        "bodyBandHeightRatioToF1": 0.996292,
                        "bodyBandVisiblePixels": 186617,
                        "bodyBandX": [
                            470,
                            918
                        ],
                        "footCentroidX": 785,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 5,
                        "fullBounds": [
                            114,
                            114,
                            918,
                            924
                        ],
                        "fullCentroid": [
                            713.1214,
                            528.5479
                        ],
                        "path": "frames/05/final/sprite.png",
                        "sha256": "2d8e93f6e6a45e806cade5e880c640fd42523ee4916382d34fe4610453e246a0"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 0.921608,
                        "bodyBandBounds": [
                            471,
                            119,
                            919,
                            924
                        ],
                        "bodyBandCentroid": [
                            743.5150584685832,
                            533.8207641036065
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            14.8016,
                            13.7189
                        ],
                        "bodyBandHeight": 805,
                        "bodyBandHeightRatioToF1": 0.995056,
                        "bodyBandVisiblePixels": 186938,
                        "bodyBandX": [
                            471,
                            919
                        ],
                        "footCentroidX": 785,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 6,
                        "fullBounds": [
                            127,
                            115,
                            919,
                            925
                        ],
                        "fullCentroid": [
                            715.5411,
                            530.0536
                        ],
                        "path": "frames/06/final/sprite.png",
                        "sha256": "b31dae94948f3e133aa63577a298a6bb2c6752485ef9245eb31b12b6449e6e31"
                    }
                ],
                "measurement": {
                    "bodyBandDerivedFrom": "per-frame maximum-alpha fixed-width body window with dense-row gating; see measurementPolicy",
                    "canvas": [
                        1024,
                        1024
                    ],
                    "measurementPolicy": {
                        "bodyRowDensityFraction": 0.1,
                        "bodyWindowFraction": 0.4375,
                        "footBandHeightFraction": 0.12
                    },
                    "onionColors": {
                        "background": "#10131d",
                        "comparisonOnly": "#24e0ee",
                        "f1Only": "#ff3399",
                        "shared": "#f6f1e7"
                    }
                },
                "runId": "dense-body-f1-root-lock-v7",
                "schemaVersion": "midgard-pixels.generation-onion-audit.v1",
                "summary": {
                    "baselineRangePx": 0,
                    "maximumAbsoluteBodyCentroidXDriftPx": 14.8016,
                    "maximumAbsoluteFootRootXDriftPx": 0,
                    "minimumBodyAreaRatioToF1": 0.920025,
                    "minimumBodyHeightRatioToF1": 0.995056,
                    "providerLateralDriftDetected": false,
                    "providerScaleDriftDetected": false
                }
            }
        },
        "derived/dense-body-f1-root-lock-v8/report.json": {
            "sha256": "4ca58703e6748035a580f88b2f96fab5b03f3aa055ea84a304fb5e475f33ba2a",
            "bytes": 16639,
            "value": {
                "frames": [
                    {
                        "after": {
                            "bodyBandX": [
                                473,
                                921
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                512,
                                115,
                                921,
                                924
                            ],
                            "bodyCentroid": [
                                729.7134328211044,
                                520.1018640399528
                            ],
                            "bodyHeight": 809,
                            "bodyPixels": 202839,
                            "footBandTopY": 826,
                            "footCentroidX": 786,
                            "fullBounds": [
                                512,
                                99,
                                921,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                248,
                                696
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                287,
                                115,
                                696,
                                924
                            ],
                            "bodyCentroid": [
                                504.71343282110445,
                                520.1018640399528
                            ],
                            "bodyHeight": 809,
                            "bodyPixels": 202839,
                            "footBandTopY": 826,
                            "footCentroidX": 561,
                            "fullBounds": [
                                287,
                                99,
                                696,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 1,
                        "output": "derived/dense-body-f1-root-lock-v8/frames/01/final/sprite.png",
                        "outputSha256": "4615b6e4b57a0217c9bad7dcd2ef0b3f7c48e949312a661c932fd9b90833c6f1",
                        "source": "frames/01/final/sprite.png",
                        "sourceSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                409,
                                825
                            ],
                            "finalUniformScaleFactor": 1,
                            "integerTranslation": [
                                512,
                                99
                            ],
                            "nominalUniformScaleFactor": 1,
                            "normalizedPosition": [
                                287,
                                99
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                409,
                                825
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                287,
                                99,
                                696,
                                924
                            ],
                            "uniformScaleFactor": 1
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                472,
                                920
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                472,
                                115,
                                920,
                                924
                            ],
                            "bodyCentroid": [
                                744.0036865528344,
                                531.3204277462166
                            ],
                            "bodyHeight": 809,
                            "bodyPixels": 188523,
                            "footBandTopY": 826,
                            "footCentroidX": 786,
                            "fullBounds": [
                                125,
                                111,
                                920,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                409,
                                857
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                409,
                                119,
                                857,
                                924
                            ],
                            "bodyCentroid": [
                                681.5150584685832,
                                533.8207641036065
                            ],
                            "bodyHeight": 805,
                            "bodyPixels": 186938,
                            "footBandTopY": 826,
                            "footCentroidX": 723,
                            "fullBounds": [
                                65,
                                115,
                                857,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 2,
                        "output": "derived/dense-body-f1-root-lock-v8/frames/02/final/sprite.png",
                        "outputSha256": "6d337b3e51126767eebcf91c66bf267e79574fe2e41a93a989e51336f993de58",
                        "source": "frames/02/final/sprite.png",
                        "sourceSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                795,
                                813
                            ],
                            "finalUniformScaleFactor": 1.00421894,
                            "integerTranslation": [
                                125,
                                112
                            ],
                            "nominalUniformScaleFactor": 1.00496894,
                            "normalizedPosition": [
                                -100,
                                112
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                -1
                            ],
                            "scaledSize": [
                                795,
                                813
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                65,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.00421894
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                472,
                                920
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                472,
                                114,
                                920,
                                924
                            ],
                            "bodyCentroid": [
                                743.1921627052504,
                                529.1203111165308
                            ],
                            "bodyHeight": 810,
                            "bodyPixels": 188611,
                            "footBandTopY": 826,
                            "footCentroidX": 786,
                            "fullBounds": [
                                112,
                                110,
                                920,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                409,
                                857
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                409,
                                119,
                                857,
                                925
                            ],
                            "bodyCentroid": [
                                680.8395055112878,
                                532.0154862633093
                            ],
                            "bodyHeight": 806,
                            "bodyPixels": 186617,
                            "footBandTopY": 827,
                            "footCentroidX": 724,
                            "fullBounds": [
                                53,
                                115,
                                857,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 3,
                        "output": "derived/dense-body-f1-root-lock-v8/frames/03/final/sprite.png",
                        "outputSha256": "796ab7d8c12c836fd8920f1e837eedc88889c98298fafd157e311fea71bf405b",
                        "source": "frames/03/final/sprite.png",
                        "sourceSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                808,
                                814
                            ],
                            "finalUniformScaleFactor": 1.00447208,
                            "integerTranslation": [
                                112,
                                110
                            ],
                            "nominalUniformScaleFactor": 1.00372208,
                            "normalizedPosition": [
                                -113,
                                110
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                808,
                                814
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                53,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.00447208
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                472,
                                920
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                472,
                                115,
                                920,
                                924
                            ],
                            "bodyCentroid": [
                                742.7889245074729,
                                529.4208347486413
                            ],
                            "bodyHeight": 809,
                            "bodyPixels": 188416,
                            "footBandTopY": 826,
                            "footCentroidX": 786,
                            "fullBounds": [
                                103,
                                111,
                                920,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                409,
                                857
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                409,
                                119,
                                857,
                                925
                            ],
                            "bodyCentroid": [
                                680.3584036221956,
                                532.027680253468
                            ],
                            "bodyHeight": 806,
                            "bodyPixels": 186848,
                            "footBandTopY": 827,
                            "footCentroidX": 724,
                            "fullBounds": [
                                43,
                                115,
                                857,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 4,
                        "output": "derived/dense-body-f1-root-lock-v8/frames/04/final/sprite.png",
                        "outputSha256": "b3a433f51759397f227feb19773924d0aaa48ed67c4b4a1fb38d5f11dea34f7f",
                        "source": "frames/04/final/sprite.png",
                        "sourceSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                817,
                                813
                            ],
                            "finalUniformScaleFactor": 1.00372208,
                            "integerTranslation": [
                                102,
                                111
                            ],
                            "nominalUniformScaleFactor": 1.00372208,
                            "normalizedPosition": [
                                -123,
                                111
                            ],
                            "rootCorrectionIntegerTranslation": [
                                1,
                                0
                            ],
                            "scaledSize": [
                                817,
                                813
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                43,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.00372208
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                472,
                                920
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                472,
                                114,
                                920,
                                924
                            ],
                            "bodyCentroid": [
                                743.1921627052504,
                                529.1203111165308
                            ],
                            "bodyHeight": 810,
                            "bodyPixels": 188611,
                            "footBandTopY": 826,
                            "footCentroidX": 786,
                            "fullBounds": [
                                112,
                                110,
                                920,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                409,
                                857
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                409,
                                119,
                                857,
                                925
                            ],
                            "bodyCentroid": [
                                680.8395055112878,
                                532.0154862633093
                            ],
                            "bodyHeight": 806,
                            "bodyPixels": 186617,
                            "footBandTopY": 827,
                            "footCentroidX": 724,
                            "fullBounds": [
                                53,
                                115,
                                857,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 5,
                        "output": "derived/dense-body-f1-root-lock-v8/frames/05/final/sprite.png",
                        "outputSha256": "796ab7d8c12c836fd8920f1e837eedc88889c98298fafd157e311fea71bf405b",
                        "source": "frames/05/final/sprite.png",
                        "sourceSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                808,
                                814
                            ],
                            "finalUniformScaleFactor": 1.00447208,
                            "integerTranslation": [
                                112,
                                110
                            ],
                            "nominalUniformScaleFactor": 1.00372208,
                            "normalizedPosition": [
                                -113,
                                110
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                808,
                                814
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                53,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.00447208
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                472,
                                920
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                472,
                                115,
                                920,
                                924
                            ],
                            "bodyCentroid": [
                                744.0036865528344,
                                531.3204277462166
                            ],
                            "bodyHeight": 809,
                            "bodyPixels": 188523,
                            "footBandTopY": 826,
                            "footCentroidX": 786,
                            "fullBounds": [
                                125,
                                111,
                                920,
                                924
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                409,
                                857
                            ],
                            "bodyBaselineY": 923,
                            "bodyBounds": [
                                409,
                                119,
                                857,
                                924
                            ],
                            "bodyCentroid": [
                                681.5150584685832,
                                533.8207641036065
                            ],
                            "bodyHeight": 805,
                            "bodyPixels": 186938,
                            "footBandTopY": 826,
                            "footCentroidX": 723,
                            "fullBounds": [
                                65,
                                115,
                                857,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 6,
                        "output": "derived/dense-body-f1-root-lock-v8/frames/06/final/sprite.png",
                        "outputSha256": "6d337b3e51126767eebcf91c66bf267e79574fe2e41a93a989e51336f993de58",
                        "source": "frames/06/final/sprite.png",
                        "sourceSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                795,
                                813
                            ],
                            "finalUniformScaleFactor": 1.00421894,
                            "integerTranslation": [
                                125,
                                112
                            ],
                            "nominalUniformScaleFactor": 1.00496894,
                            "normalizedPosition": [
                                -100,
                                112
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                -1
                            ],
                            "scaledSize": [
                                795,
                                813
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                65,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.00421894
                        }
                    }
                ],
                "policy": {
                    "bodyPartCutting": false,
                    "filter": false,
                    "horizontalRootAuthority": "lower-foot-band median x",
                    "originalFramesPreserved": true,
                    "paletteReduction": false,
                    "perFrameScaleAuthority": "F1 central-body height",
                    "repaint": false,
                    "resampling": "nearest-neighbor",
                    "sequenceEnvelope": "union of normalized full-sprite bounds",
                    "sequenceScale": "one shared fit scale applied equally to every normalized frame",
                    "stretch": false,
                    "translation": "whole-sprite integer x/y only",
                    "uniformScaleOnly": true,
                    "verticalRootAuthority": "opaque baseline"
                },
                "preview": {
                    "path": "derived/dense-body-f1-root-lock-v8/preview/animation.gif",
                    "sha256": "a454f6b50cf1acf5fe61f15e388022fe22ec7c8b2fe203d3d882b34c7d23939d"
                },
                "schemaVersion": "midgard-pixels.sequence-envelope-root-lock.v1",
                "sequence": {
                    "canvasSize": [
                        1024,
                        1024
                    ],
                    "normalizedUnionBounds": [
                        -123,
                        99,
                        696,
                        925
                    ],
                    "normalizedUnionSize": [
                        819,
                        826
                    ],
                    "padding": 8,
                    "sharedUniformScaleFactor": 1
                },
                "sourceRunId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "status": "derived-experiment-owner-review-required",
                "target": {
                    "bodyBandX": [
                        248,
                        696
                    ],
                    "bodyBaselineY": 923,
                    "bodyBounds": [
                        287,
                        115,
                        696,
                        924
                    ],
                    "bodyCentroid": [
                        504.71343282110445,
                        520.1018640399528
                    ],
                    "bodyHeight": 809,
                    "bodyPixels": 202839,
                    "footBandTopY": 826,
                    "footCentroidX": 561,
                    "fullBounds": [
                        287,
                        99,
                        696,
                        924
                    ],
                    "measurementPolicy": {
                        "bodyRowDensityFraction": 0.1,
                        "bodyWindowFraction": 0.4375,
                        "footBandHeightFraction": 0.12
                    }
                }
            }
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/report.json": {
            "sha256": "38ad5c71b5bb4979dd3e356af4a3f1bf3ced11c29e2c04ab337bcabafebc6693",
            "bytes": 7733,
            "value": {
                "artifacts": [
                    {
                        "path": "review/onion-audit/f1-to-f02.png",
                        "sha256": "f27767f0f99ee34df3e5797cda001c29f4de973baa9fdcee2728fea68fcc9715"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f01-f02.png",
                        "sha256": "f27767f0f99ee34df3e5797cda001c29f4de973baa9fdcee2728fea68fcc9715"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f03.png",
                        "sha256": "bbaae4c7a4dfd0a04ae78263d2b037e186260fbea2899ea44003ab7cfae869d0"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f02-f03.png",
                        "sha256": "32e78a0615cc69aed557d0412968510e9bc2981112a5d090b85aad4307484304"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f04.png",
                        "sha256": "1cbd15f6735b7a29db0499ad64ce5294e1e81e10692c553dbd1272f62365866e"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f03-f04.png",
                        "sha256": "a505692c4ca263be82c0a1ce05ede37ed9082ff501665f79d04a4b1c22f3beb1"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f05.png",
                        "sha256": "bbaae4c7a4dfd0a04ae78263d2b037e186260fbea2899ea44003ab7cfae869d0"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f04-f05.png",
                        "sha256": "93f191cf67a6d83dce2cc38681f5c09a8cac52f9ea219fef7a298c80d9893fbb"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f06.png",
                        "sha256": "f27767f0f99ee34df3e5797cda001c29f4de973baa9fdcee2728fea68fcc9715"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f05-f06.png",
                        "sha256": "7c2782788adf018b3234eff56181fbfc3346d53a15ddeee405a96de87cf2ed30"
                    },
                    {
                        "path": "review/onion-audit/f1-onion-sheet.png",
                        "sha256": "0efb8e8da787af278c73560980246de88b00b056e223f1cb135ab9bab57a3cae"
                    }
                ],
                "frames": [
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 1,
                        "bodyBandBounds": [
                            512,
                            115,
                            921,
                            924
                        ],
                        "bodyBandCentroid": [
                            729.7134328211044,
                            520.1018640399528
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0,
                            0
                        ],
                        "bodyBandHeight": 809,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 202839,
                        "bodyBandX": [
                            473,
                            921
                        ],
                        "footCentroidX": 786,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 1,
                        "fullBounds": [
                            512,
                            99,
                            921,
                            924
                        ],
                        "fullCentroid": [
                            729.5515,
                            519.7347
                        ],
                        "path": "frames/01/final/sprite.png",
                        "sha256": "4615b6e4b57a0217c9bad7dcd2ef0b3f7c48e949312a661c932fd9b90833c6f1"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 0.929422,
                        "bodyBandBounds": [
                            472,
                            115,
                            920,
                            924
                        ],
                        "bodyBandCentroid": [
                            744.0036865528344,
                            531.3204277462166
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            14.2903,
                            11.2186
                        ],
                        "bodyBandHeight": 809,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 188523,
                        "bodyBandX": [
                            472,
                            920
                        ],
                        "footCentroidX": 786,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 2,
                        "fullBounds": [
                            125,
                            111,
                            920,
                            924
                        ],
                        "fullCentroid": [
                            715.8371,
                            527.4502
                        ],
                        "path": "frames/02/final/sprite.png",
                        "sha256": "6d337b3e51126767eebcf91c66bf267e79574fe2e41a93a989e51336f993de58"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 0.929856,
                        "bodyBandBounds": [
                            472,
                            114,
                            920,
                            924
                        ],
                        "bodyBandCentroid": [
                            743.1921627052504,
                            529.1203111165308
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            13.4787,
                            9.0184
                        ],
                        "bodyBandHeight": 810,
                        "bodyBandHeightRatioToF1": 1.001236,
                        "bodyBandVisiblePixels": 188611,
                        "bodyBandX": [
                            472,
                            920
                        ],
                        "footCentroidX": 786,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 3,
                        "fullBounds": [
                            112,
                            110,
                            920,
                            924
                        ],
                        "fullCentroid": [
                            714.3276,
                            526.6503
                        ],
                        "path": "frames/03/final/sprite.png",
                        "sha256": "796ab7d8c12c836fd8920f1e837eedc88889c98298fafd157e311fea71bf405b"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 0.928894,
                        "bodyBandBounds": [
                            472,
                            115,
                            920,
                            924
                        ],
                        "bodyBandCentroid": [
                            742.7889245074729,
                            529.4208347486413
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            13.0755,
                            9.319
                        ],
                        "bodyBandHeight": 809,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 188416,
                        "bodyBandX": [
                            472,
                            920
                        ],
                        "footCentroidX": 786,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 4,
                        "fullBounds": [
                            103,
                            111,
                            920,
                            924
                        ],
                        "fullCentroid": [
                            712.7662,
                            526.6161
                        ],
                        "path": "frames/04/final/sprite.png",
                        "sha256": "b3a433f51759397f227feb19773924d0aaa48ed67c4b4a1fb38d5f11dea34f7f"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 0.929856,
                        "bodyBandBounds": [
                            472,
                            114,
                            920,
                            924
                        ],
                        "bodyBandCentroid": [
                            743.1921627052504,
                            529.1203111165308
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            13.4787,
                            9.0184
                        ],
                        "bodyBandHeight": 810,
                        "bodyBandHeightRatioToF1": 1.001236,
                        "bodyBandVisiblePixels": 188611,
                        "bodyBandX": [
                            472,
                            920
                        ],
                        "footCentroidX": 786,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 5,
                        "fullBounds": [
                            112,
                            110,
                            920,
                            924
                        ],
                        "fullCentroid": [
                            714.3276,
                            526.6503
                        ],
                        "path": "frames/05/final/sprite.png",
                        "sha256": "796ab7d8c12c836fd8920f1e837eedc88889c98298fafd157e311fea71bf405b"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 0.929422,
                        "bodyBandBounds": [
                            472,
                            115,
                            920,
                            924
                        ],
                        "bodyBandCentroid": [
                            744.0036865528344,
                            531.3204277462166
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            14.2903,
                            11.2186
                        ],
                        "bodyBandHeight": 809,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 188523,
                        "bodyBandX": [
                            472,
                            920
                        ],
                        "footCentroidX": 786,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 6,
                        "fullBounds": [
                            125,
                            111,
                            920,
                            924
                        ],
                        "fullCentroid": [
                            715.8371,
                            527.4502
                        ],
                        "path": "frames/06/final/sprite.png",
                        "sha256": "6d337b3e51126767eebcf91c66bf267e79574fe2e41a93a989e51336f993de58"
                    }
                ],
                "measurement": {
                    "bodyBandDerivedFrom": "per-frame maximum-alpha fixed-width body window with dense-row gating; see measurementPolicy",
                    "canvas": [
                        1024,
                        1024
                    ],
                    "measurementPolicy": {
                        "bodyRowDensityFraction": 0.1,
                        "bodyWindowFraction": 0.4375,
                        "footBandHeightFraction": 0.12
                    },
                    "onionColors": {
                        "background": "#10131d",
                        "comparisonOnly": "#24e0ee",
                        "f1Only": "#ff3399",
                        "shared": "#f6f1e7"
                    }
                },
                "runId": "dense-body-f1-root-lock-v8",
                "schemaVersion": "midgard-pixels.generation-onion-audit.v1",
                "summary": {
                    "baselineRangePx": 0,
                    "maximumAbsoluteBodyCentroidXDriftPx": 14.2903,
                    "maximumAbsoluteFootRootXDriftPx": 0,
                    "minimumBodyAreaRatioToF1": 0.928894,
                    "minimumBodyHeightRatioToF1": 1,
                    "providerLateralDriftDetected": false,
                    "providerScaleDriftDetected": false
                }
            }
        },
        "derived/sequence-envelope-foot-root-lock-v3/report.json": {
            "sha256": "310a555d040a6346ea0e37276fddbf893ec2cdc50b9ec493ec8793fb376e0614",
            "bytes": 13216,
            "value": {
                "frames": [
                    {
                        "after": {
                            "baselineY": 960,
                            "bodyBandX": [
                                590,
                                918
                            ],
                            "bodyBounds": [
                                590,
                                152,
                                918,
                                961
                            ],
                            "bodyCentroid": [
                                773.7897041426753,
                                564.3738499576706
                            ],
                            "bodyHeight": 809,
                            "bodyPixels": 178363,
                            "footBandTopY": 863,
                            "footCentroidX": 810,
                            "fullBounds": [
                                536,
                                136,
                                945,
                                961
                            ]
                        },
                        "before": {
                            "baselineY": 923,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897041426753,
                                527.3738499576706
                            ],
                            "bodyHeight": 809,
                            "bodyPixels": 178363,
                            "footBandTopY": 826,
                            "footCentroidX": 561,
                            "fullBounds": [
                                287,
                                99,
                                696,
                                924
                            ]
                        },
                        "frame": 1,
                        "output": "derived/sequence-envelope-foot-root-lock-v3/frames/01/final/sprite.png",
                        "outputSha256": "26b67f48253bde849793445366b562b3ff5cd6edf31275bd529104033a2ae03a",
                        "source": "frames/01/final/sprite.png",
                        "sourceSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                409,
                                825
                            ],
                            "finalUniformScaleFactor": 1,
                            "integerTranslation": [
                                536,
                                136
                            ],
                            "normalizedPosition": [
                                287,
                                99
                            ],
                            "scaledSize": [
                                409,
                                825
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                287,
                                99,
                                696,
                                924
                            ],
                            "uniformScaleFactor": 1
                        }
                    },
                    {
                        "after": {
                            "baselineY": 960,
                            "bodyBandX": [
                                385,
                                1024
                            ],
                            "bodyBounds": [
                                385,
                                62,
                                963,
                                961
                            ],
                            "bodyCentroid": [
                                765.2986561162836,
                                526.5150665491217
                            ],
                            "bodyHeight": 899,
                            "bodyPixels": 232535,
                            "footBandTopY": 852,
                            "footCentroidX": 815,
                            "fullBounds": [
                                84,
                                62,
                                963,
                                961
                            ]
                        },
                        "before": {
                            "baselineY": 924,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                152,
                                669,
                                881
                            ],
                            "bodyCentroid": [
                                594.9821942315596,
                                542.3040277542732
                            ],
                            "bodyHeight": 729,
                            "bodyPixels": 82726,
                            "footBandTopY": 793,
                            "footCentroidX": 719,
                            "fullBounds": [
                                65,
                                115,
                                857,
                                925
                            ]
                        },
                        "frame": 2,
                        "output": "derived/sequence-envelope-foot-root-lock-v3/frames/02/final/sprite.png",
                        "outputSha256": "5a2742a894bba4b3bc56e409ff7e7c114278a7250fb0fc6e3a5cebd3aad11501",
                        "source": "frames/02/final/sprite.png",
                        "sourceSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                879,
                                899
                            ],
                            "finalUniformScaleFactor": 1.10973937,
                            "integerTranslation": [
                                84,
                                62
                            ],
                            "normalizedPosition": [
                                -165,
                                25
                            ],
                            "scaledSize": [
                                879,
                                899
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                65,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.10973937
                        }
                    },
                    {
                        "after": {
                            "baselineY": 960,
                            "bodyBandX": [
                                379,
                                1024
                            ],
                            "bodyBounds": [
                                379,
                                62,
                                963,
                                961
                            ],
                            "bodyCentroid": [
                                764.2530431749777,
                                524.3657709017788
                            ],
                            "bodyHeight": 899,
                            "bodyPixels": 232241,
                            "footBandTopY": 852,
                            "footCentroidX": 815,
                            "fullBounds": [
                                71,
                                62,
                                963,
                                961
                            ]
                        },
                        "before": {
                            "baselineY": 924,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                152,
                                669,
                                881
                            ],
                            "bodyCentroid": [
                                593.5196742734071,
                                537.824165718849
                            ],
                            "bodyHeight": 729,
                            "bodyPixels": 82646,
                            "footBandTopY": 793,
                            "footCentroidX": 719,
                            "fullBounds": [
                                53,
                                115,
                                857,
                                925
                            ]
                        },
                        "frame": 3,
                        "output": "derived/sequence-envelope-foot-root-lock-v3/frames/03/final/sprite.png",
                        "outputSha256": "4e53b921f36ab496f8c169bf7acffc15cb7abac43f7e86900b640a4ddfd4ae72",
                        "source": "frames/03/final/sprite.png",
                        "sourceSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                892,
                                899
                            ],
                            "finalUniformScaleFactor": 1.10973937,
                            "integerTranslation": [
                                71,
                                62
                            ],
                            "normalizedPosition": [
                                -178,
                                25
                            ],
                            "scaledSize": [
                                892,
                                899
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                53,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.10973937
                        }
                    },
                    {
                        "after": {
                            "baselineY": 960,
                            "bodyBandX": [
                                373,
                                1024
                            ],
                            "bodyBounds": [
                                373,
                                62,
                                963,
                                961
                            ],
                            "bodyCentroid": [
                                763.5239010009068,
                                524.3954677702857
                            ],
                            "bodyHeight": 899,
                            "bodyPixels": 232689,
                            "footBandTopY": 852,
                            "footCentroidX": 815,
                            "fullBounds": [
                                60,
                                62,
                                963,
                                961
                            ]
                        },
                        "before": {
                            "baselineY": 924,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                152,
                                669,
                                881
                            ],
                            "bodyCentroid": [
                                593.0890760961265,
                                538.0180538481934
                            ],
                            "bodyHeight": 729,
                            "bodyPixels": 82974,
                            "footBandTopY": 793,
                            "footCentroidX": 719,
                            "fullBounds": [
                                43,
                                115,
                                857,
                                925
                            ]
                        },
                        "frame": 4,
                        "output": "derived/sequence-envelope-foot-root-lock-v3/frames/04/final/sprite.png",
                        "outputSha256": "5b2cceee5ac313559491e4ebcd1d4a5e087d78f12a709bd7b32019ee13aa43fa",
                        "source": "frames/04/final/sprite.png",
                        "sourceSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                903,
                                899
                            ],
                            "finalUniformScaleFactor": 1.10973937,
                            "integerTranslation": [
                                60,
                                62
                            ],
                            "normalizedPosition": [
                                -189,
                                25
                            ],
                            "scaledSize": [
                                903,
                                899
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                43,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.10973937
                        }
                    },
                    {
                        "after": {
                            "baselineY": 960,
                            "bodyBandX": [
                                379,
                                1024
                            ],
                            "bodyBounds": [
                                379,
                                62,
                                963,
                                961
                            ],
                            "bodyCentroid": [
                                764.2530431749777,
                                524.3657709017788
                            ],
                            "bodyHeight": 899,
                            "bodyPixels": 232241,
                            "footBandTopY": 852,
                            "footCentroidX": 815,
                            "fullBounds": [
                                71,
                                62,
                                963,
                                961
                            ]
                        },
                        "before": {
                            "baselineY": 924,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                152,
                                669,
                                881
                            ],
                            "bodyCentroid": [
                                593.5196742734071,
                                537.824165718849
                            ],
                            "bodyHeight": 729,
                            "bodyPixels": 82646,
                            "footBandTopY": 793,
                            "footCentroidX": 719,
                            "fullBounds": [
                                53,
                                115,
                                857,
                                925
                            ]
                        },
                        "frame": 5,
                        "output": "derived/sequence-envelope-foot-root-lock-v3/frames/05/final/sprite.png",
                        "outputSha256": "4e53b921f36ab496f8c169bf7acffc15cb7abac43f7e86900b640a4ddfd4ae72",
                        "source": "frames/05/final/sprite.png",
                        "sourceSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                892,
                                899
                            ],
                            "finalUniformScaleFactor": 1.10973937,
                            "integerTranslation": [
                                71,
                                62
                            ],
                            "normalizedPosition": [
                                -178,
                                25
                            ],
                            "scaledSize": [
                                892,
                                899
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                53,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.10973937
                        }
                    },
                    {
                        "after": {
                            "baselineY": 960,
                            "bodyBandX": [
                                385,
                                1024
                            ],
                            "bodyBounds": [
                                385,
                                62,
                                963,
                                961
                            ],
                            "bodyCentroid": [
                                765.2986561162836,
                                526.5150665491217
                            ],
                            "bodyHeight": 899,
                            "bodyPixels": 232535,
                            "footBandTopY": 852,
                            "footCentroidX": 815,
                            "fullBounds": [
                                84,
                                62,
                                963,
                                961
                            ]
                        },
                        "before": {
                            "baselineY": 924,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                152,
                                669,
                                881
                            ],
                            "bodyCentroid": [
                                594.9821942315596,
                                542.3040277542732
                            ],
                            "bodyHeight": 729,
                            "bodyPixels": 82726,
                            "footBandTopY": 793,
                            "footCentroidX": 719,
                            "fullBounds": [
                                65,
                                115,
                                857,
                                925
                            ]
                        },
                        "frame": 6,
                        "output": "derived/sequence-envelope-foot-root-lock-v3/frames/06/final/sprite.png",
                        "outputSha256": "5a2742a894bba4b3bc56e409ff7e7c114278a7250fb0fc6e3a5cebd3aad11501",
                        "source": "frames/06/final/sprite.png",
                        "sourceSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                879,
                                899
                            ],
                            "finalUniformScaleFactor": 1.10973937,
                            "integerTranslation": [
                                84,
                                62
                            ],
                            "normalizedPosition": [
                                -165,
                                25
                            ],
                            "scaledSize": [
                                879,
                                899
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                65,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.10973937
                        }
                    }
                ],
                "policy": {
                    "bodyPartCutting": false,
                    "filter": false,
                    "horizontalRootAuthority": "lower-foot-band median x",
                    "originalFramesPreserved": true,
                    "paletteReduction": false,
                    "perFrameScaleAuthority": "F1 central-body height",
                    "repaint": false,
                    "resampling": "nearest-neighbor",
                    "sequenceEnvelope": "union of normalized full-sprite bounds",
                    "sequenceScale": "one shared fit scale applied equally to every normalized frame",
                    "stretch": false,
                    "translation": "whole-sprite integer x/y only",
                    "uniformScaleOnly": true,
                    "verticalRootAuthority": "opaque baseline"
                },
                "preview": {
                    "path": "derived/sequence-envelope-foot-root-lock-v3/preview/animation.gif",
                    "sha256": "f3efa749aee998cd4ccbd4059c1b3abad3f98f658f67d07eab9a29a7ab559389"
                },
                "schemaVersion": "midgard-pixels.sequence-envelope-root-lock.v1",
                "sequence": {
                    "canvasSize": [
                        1024,
                        1024
                    ],
                    "normalizedUnionBounds": [
                        -189,
                        25,
                        714,
                        924
                    ],
                    "normalizedUnionSize": [
                        903,
                        899
                    ],
                    "padding": 8,
                    "sharedUniformScaleFactor": 1
                },
                "sourceRunId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "status": "derived-experiment-owner-review-required",
                "target": {
                    "baselineY": 923,
                    "bodyBandX": [
                        341,
                        669
                    ],
                    "bodyBounds": [
                        341,
                        115,
                        669,
                        924
                    ],
                    "bodyCentroid": [
                        524.7897041426753,
                        527.3738499576706
                    ],
                    "bodyHeight": 809,
                    "bodyPixels": 178363,
                    "footBandTopY": 826,
                    "footCentroidX": 561,
                    "fullBounds": [
                        287,
                        99,
                        696,
                        924
                    ]
                }
            }
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/report.json": {
            "sha256": "5280cf0eec6da27e71282c30979ed6b52eb4992a2cdb88b2e286f561bd553ffb",
            "bytes": 6705,
            "value": {
                "artifacts": [
                    {
                        "path": "review/onion-audit/f1-to-f02.png",
                        "sha256": "685d7df87a9a0f4c9417f5f1378ab4d0498e9880c8354c1ebd148a6250d15834"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f01-f02.png",
                        "sha256": "685d7df87a9a0f4c9417f5f1378ab4d0498e9880c8354c1ebd148a6250d15834"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f03.png",
                        "sha256": "262e8100b7ce1dbf83288f41f1344f9066e04d3504a04837f0e9ac6411bb2195"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f02-f03.png",
                        "sha256": "6569bd2a4a1024b38bde65b6ea80549f866a468882c103c0ed43f062b745f5ae"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f04.png",
                        "sha256": "452dc3354a25eef6a4950fc0b15a7ec6881778efe0e29af4153a611996b033d4"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f03-f04.png",
                        "sha256": "3df9bbfc873eb4e04652b0970b69e3c68eb0a67e2335bb37bf02562bdacde75c"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f05.png",
                        "sha256": "262e8100b7ce1dbf83288f41f1344f9066e04d3504a04837f0e9ac6411bb2195"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f04-f05.png",
                        "sha256": "2cfa88e8901114ce48b7e505a1808d93bc77154e605b0c77caac27747e3ea93d"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f06.png",
                        "sha256": "685d7df87a9a0f4c9417f5f1378ab4d0498e9880c8354c1ebd148a6250d15834"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f05-f06.png",
                        "sha256": "ff2cb9671cd924bbeb96e74f231926590d0385a08370b80eae175b85211ca79e"
                    },
                    {
                        "path": "review/onion-audit/f1-onion-sheet.png",
                        "sha256": "3de2cbe09f103d8deae52014167785193b1a0ce05346d8827ccb92dc0a1be6b6"
                    }
                ],
                "frames": [
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1,
                        "bodyBandBounds": [
                            590,
                            152,
                            918,
                            961
                        ],
                        "bodyBandCentroid": [
                            773.7897,
                            564.3738
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0,
                            0
                        ],
                        "bodyBandHeight": 809,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 178363,
                        "frame": 1,
                        "fullBounds": [
                            536,
                            136,
                            945,
                            961
                        ],
                        "fullCentroid": [
                            753.5515,
                            556.7347
                        ],
                        "path": "frames/01/final/sprite.png",
                        "sha256": "26b67f48253bde849793445366b562b3ff5cd6edf31275bd529104033a2ae03a"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.196655,
                        "bodyBandBounds": [
                            590,
                            62,
                            918,
                            961
                        ],
                        "bodyBandCentroid": [
                            772.1106,
                            521.8427
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -1.6791,
                            -42.5311
                        ],
                        "bodyBandHeight": 899,
                        "bodyBandHeightRatioToF1": 1.111248,
                        "bodyBandVisiblePixels": 213439,
                        "frame": 2,
                        "fullBounds": [
                            84,
                            62,
                            963,
                            961
                        ],
                        "fullCentroid": [
                            737.1582,
                            522.7074
                        ],
                        "path": "frames/02/final/sprite.png",
                        "sha256": "5a2742a894bba4b3bc56e409ff7e7c114278a7250fb0fc6e3a5cebd3aad11501"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.187713,
                        "bodyBandBounds": [
                            590,
                            62,
                            918,
                            961
                        ],
                        "bodyBandCentroid": [
                            772.8529,
                            521.2099
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -0.9368,
                            -43.1639
                        ],
                        "bodyBandHeight": 899,
                        "bodyBandHeightRatioToF1": 1.111248,
                        "bodyBandVisiblePixels": 211844,
                        "frame": 3,
                        "fullBounds": [
                            71,
                            62,
                            963,
                            961
                        ],
                        "fullCentroid": [
                            735.6979,
                            522.1504
                        ],
                        "path": "frames/03/final/sprite.png",
                        "sha256": "4e53b921f36ab496f8c169bf7acffc15cb7abac43f7e86900b640a4ddfd4ae72"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.187578,
                        "bodyBandBounds": [
                            590,
                            62,
                            918,
                            961
                        ],
                        "bodyBandCentroid": [
                            772.7507,
                            521.1713
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -1.039,
                            -43.2025
                        ],
                        "bodyBandHeight": 899,
                        "bodyBandHeightRatioToF1": 1.111248,
                        "bodyBandVisiblePixels": 211820,
                        "frame": 4,
                        "fullBounds": [
                            60,
                            62,
                            963,
                            961
                        ],
                        "fullCentroid": [
                            734.0231,
                            521.8165
                        ],
                        "path": "frames/04/final/sprite.png",
                        "sha256": "5b2cceee5ac313559491e4ebcd1d4a5e087d78f12a709bd7b32019ee13aa43fa"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.187713,
                        "bodyBandBounds": [
                            590,
                            62,
                            918,
                            961
                        ],
                        "bodyBandCentroid": [
                            772.8529,
                            521.2099
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -0.9368,
                            -43.1639
                        ],
                        "bodyBandHeight": 899,
                        "bodyBandHeightRatioToF1": 1.111248,
                        "bodyBandVisiblePixels": 211844,
                        "frame": 5,
                        "fullBounds": [
                            71,
                            62,
                            963,
                            961
                        ],
                        "fullCentroid": [
                            735.6979,
                            522.1504
                        ],
                        "path": "frames/05/final/sprite.png",
                        "sha256": "4e53b921f36ab496f8c169bf7acffc15cb7abac43f7e86900b640a4ddfd4ae72"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.196655,
                        "bodyBandBounds": [
                            590,
                            62,
                            918,
                            961
                        ],
                        "bodyBandCentroid": [
                            772.1106,
                            521.8427
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -1.6791,
                            -42.5311
                        ],
                        "bodyBandHeight": 899,
                        "bodyBandHeightRatioToF1": 1.111248,
                        "bodyBandVisiblePixels": 213439,
                        "frame": 6,
                        "fullBounds": [
                            84,
                            62,
                            963,
                            961
                        ],
                        "fullCentroid": [
                            737.1582,
                            522.7074
                        ],
                        "path": "frames/06/final/sprite.png",
                        "sha256": "5a2742a894bba4b3bc56e409ff7e7c114278a7250fb0fc6e3a5cebd3aad11501"
                    }
                ],
                "measurement": {
                    "bodyBandDerivedFrom": "F1 alpha centroid and 80% of F1 visible width",
                    "bodyBandX": [
                        590,
                        918
                    ],
                    "canvas": [
                        1024,
                        1024
                    ],
                    "onionColors": {
                        "background": "#10131d",
                        "comparisonOnly": "#24e0ee",
                        "f1Only": "#ff3399",
                        "shared": "#f6f1e7"
                    }
                },
                "runId": "sequence-envelope-foot-root-lock-v3",
                "schemaVersion": "midgard-pixels.generation-onion-audit.v1",
                "summary": {
                    "baselineRangePx": 0,
                    "maximumAbsoluteBodyCentroidXDriftPx": 1.6791,
                    "minimumBodyAreaRatioToF1": 1,
                    "minimumBodyHeightRatioToF1": 1,
                    "providerLateralDriftDetected": false,
                    "providerScaleDriftDetected": false
                }
            }
        },
        "derived/uniform-scale-foot-root-lock-v2/report.json": {
            "sha256": "b93951a95550f347b5b9c2819bb8a7f501f4fac449414793f155d7f2fea3f0f0",
            "bytes": 11255,
            "value": {
                "frames": [
                    {
                        "after": {
                            "baselineY": 923,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897041426753,
                                527.3738499576706
                            ],
                            "bodyHeight": 809,
                            "bodyPixels": 178363,
                            "footBandTopY": 826,
                            "footCentroidX": 561,
                            "fullBounds": [
                                287,
                                99,
                                696,
                                924
                            ]
                        },
                        "before": {
                            "baselineY": 923,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897041426753,
                                527.3738499576706
                            ],
                            "bodyHeight": 809,
                            "bodyPixels": 178363,
                            "footBandTopY": 826,
                            "footCentroidX": 561,
                            "fullBounds": [
                                287,
                                99,
                                696,
                                924
                            ]
                        },
                        "frame": 1,
                        "output": "derived/uniform-scale-foot-root-lock-v2/frames/01/final/sprite.png",
                        "outputSha256": "f7638e62c225e24571b375de5d7396c09de56ba17bc6b8ec59c7a0a70326e8ca",
                        "source": "frames/01/final/sprite.png",
                        "sourceSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                        "transform": {
                            "clipped": false,
                            "integerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                409,
                                825
                            ],
                            "sourceCrop": [
                                287,
                                99,
                                696,
                                924
                            ],
                            "uniformScaleFactor": 1
                        }
                    },
                    {
                        "after": {
                            "baselineY": 923,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                25,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                523.1105889738989,
                                484.8426669915058
                            ],
                            "bodyHeight": 899,
                            "bodyPixels": 213439,
                            "footBandTopY": 815,
                            "footCentroidX": 566,
                            "fullBounds": [
                                0,
                                25,
                                714,
                                924
                            ]
                        },
                        "before": {
                            "baselineY": 924,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                152,
                                669,
                                881
                            ],
                            "bodyCentroid": [
                                594.9821942315596,
                                542.3040277542732
                            ],
                            "bodyHeight": 729,
                            "bodyPixels": 82726,
                            "footBandTopY": 793,
                            "footCentroidX": 719,
                            "fullBounds": [
                                65,
                                115,
                                857,
                                925
                            ]
                        },
                        "frame": 2,
                        "output": "derived/uniform-scale-foot-root-lock-v2/frames/02/final/sprite.png",
                        "outputSha256": "52d995b9c5a577d01a38cf5e5a0d54039fee7fdcb2be1349b93108a58a274d1d",
                        "source": "frames/02/final/sprite.png",
                        "sourceSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "transform": {
                            "clipped": true,
                            "integerTranslation": [
                                -165,
                                25
                            ],
                            "scaledSize": [
                                879,
                                899
                            ],
                            "sourceCrop": [
                                65,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.10973937
                        }
                    },
                    {
                        "after": {
                            "baselineY": 923,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                25,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                523.8529059118974,
                                484.20990917845205
                            ],
                            "bodyHeight": 899,
                            "bodyPixels": 211844,
                            "footBandTopY": 815,
                            "footCentroidX": 566,
                            "fullBounds": [
                                0,
                                25,
                                714,
                                924
                            ]
                        },
                        "before": {
                            "baselineY": 924,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                152,
                                669,
                                881
                            ],
                            "bodyCentroid": [
                                593.5196742734071,
                                537.824165718849
                            ],
                            "bodyHeight": 729,
                            "bodyPixels": 82646,
                            "footBandTopY": 793,
                            "footCentroidX": 719,
                            "fullBounds": [
                                53,
                                115,
                                857,
                                925
                            ]
                        },
                        "frame": 3,
                        "output": "derived/uniform-scale-foot-root-lock-v2/frames/03/final/sprite.png",
                        "outputSha256": "151c38ae2968a62455b1419dd2e4cf36c8d9652479069b495e77cdf08b82ef1c",
                        "source": "frames/03/final/sprite.png",
                        "sourceSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "transform": {
                            "clipped": true,
                            "integerTranslation": [
                                -178,
                                25
                            ],
                            "scaledSize": [
                                892,
                                899
                            ],
                            "sourceCrop": [
                                53,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.10973937
                        }
                    },
                    {
                        "after": {
                            "baselineY": 923,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                25,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                523.7506562175432,
                                484.1713435936172
                            ],
                            "bodyHeight": 899,
                            "bodyPixels": 211820,
                            "footBandTopY": 815,
                            "footCentroidX": 566,
                            "fullBounds": [
                                0,
                                25,
                                714,
                                924
                            ]
                        },
                        "before": {
                            "baselineY": 924,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                152,
                                669,
                                881
                            ],
                            "bodyCentroid": [
                                593.0890760961265,
                                538.0180538481934
                            ],
                            "bodyHeight": 729,
                            "bodyPixels": 82974,
                            "footBandTopY": 793,
                            "footCentroidX": 719,
                            "fullBounds": [
                                43,
                                115,
                                857,
                                925
                            ]
                        },
                        "frame": 4,
                        "output": "derived/uniform-scale-foot-root-lock-v2/frames/04/final/sprite.png",
                        "outputSha256": "5ba157e4195bd697f8c6d5b7febc2231873cbb8618a9a9efd0e376d10bafa1b5",
                        "source": "frames/04/final/sprite.png",
                        "sourceSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                        "transform": {
                            "clipped": true,
                            "integerTranslation": [
                                -189,
                                25
                            ],
                            "scaledSize": [
                                903,
                                899
                            ],
                            "sourceCrop": [
                                43,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.10973937
                        }
                    },
                    {
                        "after": {
                            "baselineY": 923,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                25,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                523.8529059118974,
                                484.20990917845205
                            ],
                            "bodyHeight": 899,
                            "bodyPixels": 211844,
                            "footBandTopY": 815,
                            "footCentroidX": 566,
                            "fullBounds": [
                                0,
                                25,
                                714,
                                924
                            ]
                        },
                        "before": {
                            "baselineY": 924,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                152,
                                669,
                                881
                            ],
                            "bodyCentroid": [
                                593.5196742734071,
                                537.824165718849
                            ],
                            "bodyHeight": 729,
                            "bodyPixels": 82646,
                            "footBandTopY": 793,
                            "footCentroidX": 719,
                            "fullBounds": [
                                53,
                                115,
                                857,
                                925
                            ]
                        },
                        "frame": 5,
                        "output": "derived/uniform-scale-foot-root-lock-v2/frames/05/final/sprite.png",
                        "outputSha256": "151c38ae2968a62455b1419dd2e4cf36c8d9652479069b495e77cdf08b82ef1c",
                        "source": "frames/05/final/sprite.png",
                        "sourceSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "transform": {
                            "clipped": true,
                            "integerTranslation": [
                                -178,
                                25
                            ],
                            "scaledSize": [
                                892,
                                899
                            ],
                            "sourceCrop": [
                                53,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.10973937
                        }
                    },
                    {
                        "after": {
                            "baselineY": 923,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                25,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                523.1105889738989,
                                484.8426669915058
                            ],
                            "bodyHeight": 899,
                            "bodyPixels": 213439,
                            "footBandTopY": 815,
                            "footCentroidX": 566,
                            "fullBounds": [
                                0,
                                25,
                                714,
                                924
                            ]
                        },
                        "before": {
                            "baselineY": 924,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                152,
                                669,
                                881
                            ],
                            "bodyCentroid": [
                                594.9821942315596,
                                542.3040277542732
                            ],
                            "bodyHeight": 729,
                            "bodyPixels": 82726,
                            "footBandTopY": 793,
                            "footCentroidX": 719,
                            "fullBounds": [
                                65,
                                115,
                                857,
                                925
                            ]
                        },
                        "frame": 6,
                        "output": "derived/uniform-scale-foot-root-lock-v2/frames/06/final/sprite.png",
                        "outputSha256": "52d995b9c5a577d01a38cf5e5a0d54039fee7fdcb2be1349b93108a58a274d1d",
                        "source": "frames/06/final/sprite.png",
                        "sourceSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "transform": {
                            "clipped": true,
                            "integerTranslation": [
                                -165,
                                25
                            ],
                            "scaledSize": [
                                879,
                                899
                            ],
                            "sourceCrop": [
                                65,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.10973937
                        }
                    }
                ],
                "policy": {
                    "bodyPartCutting": false,
                    "filter": false,
                    "originalFramesPreserved": true,
                    "paletteReduction": false,
                    "repaint": false,
                    "resampling": "nearest-neighbor",
                    "stretch": false,
                    "translation": "whole-sprite integer x/y only",
                    "uniformScaleOnly": true
                },
                "preview": {
                    "path": "derived/uniform-scale-foot-root-lock-v2/preview/animation.gif",
                    "sha256": "029c9fd240759abadc66bdcf22a36f5f9260cdec50b0bc501bc9754428fa1abf"
                },
                "schemaVersion": "midgard-pixels.uniform-scale-root-lock.v1",
                "sourceRunId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "status": "derived-experiment-owner-review-required",
                "target": {
                    "baselineY": 923,
                    "bodyBandX": [
                        341,
                        669
                    ],
                    "bodyBounds": [
                        341,
                        115,
                        669,
                        924
                    ],
                    "bodyCentroid": [
                        524.7897041426753,
                        527.3738499576706
                    ],
                    "bodyHeight": 809,
                    "bodyPixels": 178363,
                    "footBandTopY": 826,
                    "footCentroidX": 561,
                    "fullBounds": [
                        287,
                        99,
                        696,
                        924
                    ]
                }
            }
        },
        "derived/uniform-scale-foot-root-lock-v2/review/onion-audit/report.json": {
            "sha256": "654f6a544ee005526f8fd3aeb16ff7b0f303a59e0900622b6b69f3c0c0dff2a2",
            "bytes": 6694,
            "value": {
                "artifacts": [
                    {
                        "path": "review/onion-audit/f1-to-f02.png",
                        "sha256": "1720aaa11e6b6b256d9ad47271d0c60da70f63f62470e22af31c73f516f3c522"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f01-f02.png",
                        "sha256": "1720aaa11e6b6b256d9ad47271d0c60da70f63f62470e22af31c73f516f3c522"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f03.png",
                        "sha256": "7fda74cf6e0ff2673965c410200526be20a8980a6bfb08bbecdfb52bd5751bb6"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f02-f03.png",
                        "sha256": "aa86e9469148b159c8b17c2228886c95ca4121757608018f00e0b08f458ff858"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f04.png",
                        "sha256": "665a6d9d55c50c539dad23b88b1093e36bd595d9726af84a990894063d1d6585"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f03-f04.png",
                        "sha256": "d750d7d605f8326e3aed58f8ae3437b9bef48f96d950f0b511e9759ed20b49bf"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f05.png",
                        "sha256": "7fda74cf6e0ff2673965c410200526be20a8980a6bfb08bbecdfb52bd5751bb6"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f04-f05.png",
                        "sha256": "965c706604a4ce28c77ead25e9505bc9482fb96573ec6d1dd718cacd6d052f77"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f06.png",
                        "sha256": "1720aaa11e6b6b256d9ad47271d0c60da70f63f62470e22af31c73f516f3c522"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f05-f06.png",
                        "sha256": "d2370360156ea9c2827b005e36231daf4eb2a61422b25fbc15fb58be30aca1cc"
                    },
                    {
                        "path": "review/onion-audit/f1-onion-sheet.png",
                        "sha256": "2a46ee14f2f3cca77f42989c9bf0a8e881f6d4ba670dd243b7bff1eb6ac32971"
                    }
                ],
                "frames": [
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 1,
                        "bodyBandBounds": [
                            341,
                            115,
                            669,
                            924
                        ],
                        "bodyBandCentroid": [
                            524.7897,
                            527.3738
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0,
                            0
                        ],
                        "bodyBandHeight": 809,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 178363,
                        "frame": 1,
                        "fullBounds": [
                            287,
                            99,
                            696,
                            924
                        ],
                        "fullCentroid": [
                            504.5515,
                            519.7347
                        ],
                        "path": "frames/01/final/sprite.png",
                        "sha256": "f7638e62c225e24571b375de5d7396c09de56ba17bc6b8ec59c7a0a70326e8ca"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 1.196655,
                        "bodyBandBounds": [
                            341,
                            25,
                            669,
                            924
                        ],
                        "bodyBandCentroid": [
                            523.1106,
                            484.8427
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -1.6791,
                            -42.5311
                        ],
                        "bodyBandHeight": 899,
                        "bodyBandHeightRatioToF1": 1.111248,
                        "bodyBandVisiblePixels": 213439,
                        "frame": 2,
                        "fullBounds": [
                            0,
                            25,
                            714,
                            924
                        ],
                        "fullCentroid": [
                            506.0832,
                            488.3622
                        ],
                        "path": "frames/02/final/sprite.png",
                        "sha256": "52d995b9c5a577d01a38cf5e5a0d54039fee7fdcb2be1349b93108a58a274d1d"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 1.187713,
                        "bodyBandBounds": [
                            341,
                            25,
                            669,
                            924
                        ],
                        "bodyBandCentroid": [
                            523.8529,
                            484.2099
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -0.9368,
                            -43.1639
                        ],
                        "bodyBandHeight": 899,
                        "bodyBandHeightRatioToF1": 1.111248,
                        "bodyBandVisiblePixels": 211844,
                        "frame": 3,
                        "fullBounds": [
                            0,
                            25,
                            714,
                            924
                        ],
                        "fullCentroid": [
                            505.8875,
                            486.6664
                        ],
                        "path": "frames/03/final/sprite.png",
                        "sha256": "151c38ae2968a62455b1419dd2e4cf36c8d9652479069b495e77cdf08b82ef1c"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 1.187578,
                        "bodyBandBounds": [
                            341,
                            25,
                            669,
                            924
                        ],
                        "bodyBandCentroid": [
                            523.7507,
                            484.1713
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -1.039,
                            -43.2025
                        ],
                        "bodyBandHeight": 899,
                        "bodyBandHeightRatioToF1": 1.111248,
                        "bodyBandVisiblePixels": 211820,
                        "frame": 4,
                        "fullBounds": [
                            0,
                            25,
                            714,
                            924
                        ],
                        "fullCentroid": [
                            506.052,
                            486.7377
                        ],
                        "path": "frames/04/final/sprite.png",
                        "sha256": "5ba157e4195bd697f8c6d5b7febc2231873cbb8618a9a9efd0e376d10bafa1b5"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 1.187713,
                        "bodyBandBounds": [
                            341,
                            25,
                            669,
                            924
                        ],
                        "bodyBandCentroid": [
                            523.8529,
                            484.2099
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -0.9368,
                            -43.1639
                        ],
                        "bodyBandHeight": 899,
                        "bodyBandHeightRatioToF1": 1.111248,
                        "bodyBandVisiblePixels": 211844,
                        "frame": 5,
                        "fullBounds": [
                            0,
                            25,
                            714,
                            924
                        ],
                        "fullCentroid": [
                            505.8875,
                            486.6664
                        ],
                        "path": "frames/05/final/sprite.png",
                        "sha256": "151c38ae2968a62455b1419dd2e4cf36c8d9652479069b495e77cdf08b82ef1c"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 1.196655,
                        "bodyBandBounds": [
                            341,
                            25,
                            669,
                            924
                        ],
                        "bodyBandCentroid": [
                            523.1106,
                            484.8427
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -1.6791,
                            -42.5311
                        ],
                        "bodyBandHeight": 899,
                        "bodyBandHeightRatioToF1": 1.111248,
                        "bodyBandVisiblePixels": 213439,
                        "frame": 6,
                        "fullBounds": [
                            0,
                            25,
                            714,
                            924
                        ],
                        "fullCentroid": [
                            506.0832,
                            488.3622
                        ],
                        "path": "frames/06/final/sprite.png",
                        "sha256": "52d995b9c5a577d01a38cf5e5a0d54039fee7fdcb2be1349b93108a58a274d1d"
                    }
                ],
                "measurement": {
                    "bodyBandDerivedFrom": "F1 alpha centroid and 80% of F1 visible width",
                    "bodyBandX": [
                        341,
                        669
                    ],
                    "canvas": [
                        1024,
                        1024
                    ],
                    "onionColors": {
                        "background": "#10131d",
                        "comparisonOnly": "#24e0ee",
                        "f1Only": "#ff3399",
                        "shared": "#f6f1e7"
                    }
                },
                "runId": "uniform-scale-foot-root-lock-v2",
                "schemaVersion": "midgard-pixels.generation-onion-audit.v1",
                "summary": {
                    "baselineRangePx": 0,
                    "maximumAbsoluteBodyCentroidXDriftPx": 1.6791,
                    "minimumBodyAreaRatioToF1": 1,
                    "minimumBodyHeightRatioToF1": 1,
                    "providerLateralDriftDetected": false,
                    "providerScaleDriftDetected": false
                }
            }
        },
        "derived/uniform-scale-root-lock-v1/report.json": {
            "sha256": "099159dcaea0a886653d146bcf2d660f2791fa185b74e48b78ab0426151b7bf9",
            "bytes": 10431,
            "value": {
                "frames": [
                    {
                        "after": {
                            "baselineY": 923,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897041426753,
                                527.3738499576706
                            ],
                            "bodyHeight": 809,
                            "bodyPixels": 178363,
                            "fullBounds": [
                                287,
                                99,
                                696,
                                924
                            ]
                        },
                        "before": {
                            "baselineY": 923,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897041426753,
                                527.3738499576706
                            ],
                            "bodyHeight": 809,
                            "bodyPixels": 178363,
                            "fullBounds": [
                                287,
                                99,
                                696,
                                924
                            ]
                        },
                        "frame": 1,
                        "output": "derived/uniform-scale-root-lock-v1/frames/01/final/sprite.png",
                        "outputSha256": "f7638e62c225e24571b375de5d7396c09de56ba17bc6b8ec59c7a0a70326e8ca",
                        "source": "frames/01/final/sprite.png",
                        "sourceSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                        "transform": {
                            "clipped": false,
                            "integerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                409,
                                825
                            ],
                            "sourceCrop": [
                                287,
                                99,
                                696,
                                924
                            ],
                            "uniformScaleFactor": 1
                        }
                    },
                    {
                        "after": {
                            "baselineY": 923,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                25,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                565.5939627189679,
                                477.84475367400324
                            ],
                            "bodyHeight": 899,
                            "bodyPixels": 146026,
                            "fullBounds": [
                                0,
                                25,
                                816,
                                924
                            ]
                        },
                        "before": {
                            "baselineY": 924,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                152,
                                669,
                                881
                            ],
                            "bodyCentroid": [
                                594.9821942315596,
                                542.3040277542732
                            ],
                            "bodyHeight": 729,
                            "bodyPixels": 82726,
                            "fullBounds": [
                                65,
                                115,
                                857,
                                925
                            ]
                        },
                        "frame": 2,
                        "output": "derived/uniform-scale-root-lock-v1/frames/02/final/sprite.png",
                        "outputSha256": "b8a73d3bfe745c746a48bdb390df60f7a5e7403b3bd67d2a63f7df36bf1d4be8",
                        "source": "frames/02/final/sprite.png",
                        "sourceSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "transform": {
                            "clipped": true,
                            "integerTranslation": [
                                -63,
                                25
                            ],
                            "scaledSize": [
                                879,
                                899
                            ],
                            "sourceCrop": [
                                65,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.10973937
                        }
                    },
                    {
                        "after": {
                            "baselineY": 923,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                25,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                564.967699206623,
                                474.48818903070025
                            ],
                            "bodyHeight": 899,
                            "bodyPixels": 144950,
                            "fullBounds": [
                                0,
                                25,
                                817,
                                924
                            ]
                        },
                        "before": {
                            "baselineY": 924,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                152,
                                669,
                                881
                            ],
                            "bodyCentroid": [
                                593.5196742734071,
                                537.824165718849
                            ],
                            "bodyHeight": 729,
                            "bodyPixels": 82646,
                            "fullBounds": [
                                53,
                                115,
                                857,
                                925
                            ]
                        },
                        "frame": 3,
                        "output": "derived/uniform-scale-root-lock-v1/frames/03/final/sprite.png",
                        "outputSha256": "f496d5a9d8917aa950260ea76cfa3ceab999bdfdfc7eb43b7b91bd1c78b1ab2e",
                        "source": "frames/03/final/sprite.png",
                        "sourceSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "transform": {
                            "clipped": true,
                            "integerTranslation": [
                                -75,
                                25
                            ],
                            "scaledSize": [
                                892,
                                899
                            ],
                            "sourceCrop": [
                                53,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.10973937
                        }
                    },
                    {
                        "after": {
                            "baselineY": 923,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                25,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                564.4117201956346,
                                474.53644074209103
                            ],
                            "bodyHeight": 899,
                            "bodyPixels": 145373,
                            "fullBounds": [
                                0,
                                25,
                                817,
                                924
                            ]
                        },
                        "before": {
                            "baselineY": 924,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                152,
                                669,
                                881
                            ],
                            "bodyCentroid": [
                                593.0890760961265,
                                538.0180538481934
                            ],
                            "bodyHeight": 729,
                            "bodyPixels": 82974,
                            "fullBounds": [
                                43,
                                115,
                                857,
                                925
                            ]
                        },
                        "frame": 4,
                        "output": "derived/uniform-scale-root-lock-v1/frames/04/final/sprite.png",
                        "outputSha256": "43bd45a6db30e57ef64025bce6ec8cb4a8916a98fe526e9eb9b77fb0123424d2",
                        "source": "frames/04/final/sprite.png",
                        "sourceSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                        "transform": {
                            "clipped": true,
                            "integerTranslation": [
                                -86,
                                25
                            ],
                            "scaledSize": [
                                903,
                                899
                            ],
                            "sourceCrop": [
                                43,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.10973937
                        }
                    },
                    {
                        "after": {
                            "baselineY": 923,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                25,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                564.967699206623,
                                474.48818903070025
                            ],
                            "bodyHeight": 899,
                            "bodyPixels": 144950,
                            "fullBounds": [
                                0,
                                25,
                                817,
                                924
                            ]
                        },
                        "before": {
                            "baselineY": 924,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                152,
                                669,
                                881
                            ],
                            "bodyCentroid": [
                                593.5196742734071,
                                537.824165718849
                            ],
                            "bodyHeight": 729,
                            "bodyPixels": 82646,
                            "fullBounds": [
                                53,
                                115,
                                857,
                                925
                            ]
                        },
                        "frame": 5,
                        "output": "derived/uniform-scale-root-lock-v1/frames/05/final/sprite.png",
                        "outputSha256": "f496d5a9d8917aa950260ea76cfa3ceab999bdfdfc7eb43b7b91bd1c78b1ab2e",
                        "source": "frames/05/final/sprite.png",
                        "sourceSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "transform": {
                            "clipped": true,
                            "integerTranslation": [
                                -75,
                                25
                            ],
                            "scaledSize": [
                                892,
                                899
                            ],
                            "sourceCrop": [
                                53,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.10973937
                        }
                    },
                    {
                        "after": {
                            "baselineY": 923,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                25,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                565.5939627189679,
                                477.84475367400324
                            ],
                            "bodyHeight": 899,
                            "bodyPixels": 146026,
                            "fullBounds": [
                                0,
                                25,
                                816,
                                924
                            ]
                        },
                        "before": {
                            "baselineY": 924,
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                152,
                                669,
                                881
                            ],
                            "bodyCentroid": [
                                594.9821942315596,
                                542.3040277542732
                            ],
                            "bodyHeight": 729,
                            "bodyPixels": 82726,
                            "fullBounds": [
                                65,
                                115,
                                857,
                                925
                            ]
                        },
                        "frame": 6,
                        "output": "derived/uniform-scale-root-lock-v1/frames/06/final/sprite.png",
                        "outputSha256": "b8a73d3bfe745c746a48bdb390df60f7a5e7403b3bd67d2a63f7df36bf1d4be8",
                        "source": "frames/06/final/sprite.png",
                        "sourceSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "transform": {
                            "clipped": true,
                            "integerTranslation": [
                                -63,
                                25
                            ],
                            "scaledSize": [
                                879,
                                899
                            ],
                            "sourceCrop": [
                                65,
                                115,
                                857,
                                925
                            ],
                            "uniformScaleFactor": 1.10973937
                        }
                    }
                ],
                "policy": {
                    "bodyPartCutting": false,
                    "filter": false,
                    "originalFramesPreserved": true,
                    "paletteReduction": false,
                    "repaint": false,
                    "resampling": "nearest-neighbor",
                    "stretch": false,
                    "translation": "whole-sprite integer x/y only",
                    "uniformScaleOnly": true
                },
                "preview": {
                    "path": "derived/uniform-scale-root-lock-v1/preview/animation.gif",
                    "sha256": "0ea2f0799e207eab3d871c75e68aa604ac7709d53ecf44ba38c01e0ccddf6eb3"
                },
                "schemaVersion": "midgard-pixels.uniform-scale-root-lock.v1",
                "sourceRunId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "status": "derived-experiment-owner-review-required",
                "target": {
                    "baselineY": 923,
                    "bodyBandX": [
                        341,
                        669
                    ],
                    "bodyBounds": [
                        341,
                        115,
                        669,
                        924
                    ],
                    "bodyCentroid": [
                        524.7897041426753,
                        527.3738499576706
                    ],
                    "bodyHeight": 809,
                    "bodyPixels": 178363,
                    "fullBounds": [
                        287,
                        99,
                        696,
                        924
                    ]
                }
            }
        },
        "derived/uniform-scale-root-lock-v1/review/onion-audit/report.json": {
            "sha256": "43bc1b038e83eafee25c7c3e059203fc62654eac9d1dbbb452ebd341ca291fb1",
            "bytes": 6688,
            "value": {
                "artifacts": [
                    {
                        "path": "review/onion-audit/f1-to-f02.png",
                        "sha256": "c245863fca30a5c99655f710c3ff547ebc96bd0f68bfde26e6167bc2ec5eb4d6"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f01-f02.png",
                        "sha256": "c245863fca30a5c99655f710c3ff547ebc96bd0f68bfde26e6167bc2ec5eb4d6"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f03.png",
                        "sha256": "89b123c0e9128b02ff9f55b3c609b09cb1bdb6add574a2280b4ca7944b3b5973"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f02-f03.png",
                        "sha256": "aa34fa83d1e82eeb73b0c793692bf4691b04122123d6b34f1cf7fc9bb9053885"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f04.png",
                        "sha256": "341a4661d474178fbbec1959c22426595ac52660572dd61fdd1f38879bb0344c"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f03-f04.png",
                        "sha256": "b7c955adcdbdca89c1b7209c74242a955dae57fb2142fa8247fe9cd10831b514"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f05.png",
                        "sha256": "89b123c0e9128b02ff9f55b3c609b09cb1bdb6add574a2280b4ca7944b3b5973"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f04-f05.png",
                        "sha256": "b6008eada9c27c3988b20bc98b304c19de752734619654410900bb66fb2ce159"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f06.png",
                        "sha256": "c245863fca30a5c99655f710c3ff547ebc96bd0f68bfde26e6167bc2ec5eb4d6"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f05-f06.png",
                        "sha256": "a5e0427bcfe738350ce5ead8309a3252fdccde6910ae1b0e3541c16dff4fbd32"
                    },
                    {
                        "path": "review/onion-audit/f1-onion-sheet.png",
                        "sha256": "15436cad43f0f76cf897a4bd5b5310c59089612f84b6cc46e847143c8b58f460"
                    }
                ],
                "frames": [
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 1,
                        "bodyBandBounds": [
                            341,
                            115,
                            669,
                            924
                        ],
                        "bodyBandCentroid": [
                            524.7897,
                            527.3738
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0,
                            0
                        ],
                        "bodyBandHeight": 809,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 178363,
                        "frame": 1,
                        "fullBounds": [
                            287,
                            99,
                            696,
                            924
                        ],
                        "fullCentroid": [
                            504.5515,
                            519.7347
                        ],
                        "path": "frames/01/final/sprite.png",
                        "sha256": "f7638e62c225e24571b375de5d7396c09de56ba17bc6b8ec59c7a0a70326e8ca"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 0.818701,
                        "bodyBandBounds": [
                            341,
                            25,
                            669,
                            924
                        ],
                        "bodyBandCentroid": [
                            565.594,
                            477.8448
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            40.8043,
                            -49.529
                        ],
                        "bodyBandHeight": 899,
                        "bodyBandHeightRatioToF1": 1.111248,
                        "bodyBandVisiblePixels": 146026,
                        "frame": 2,
                        "fullBounds": [
                            0,
                            25,
                            816,
                            924
                        ],
                        "fullCentroid": [
                            594.1703,
                            486.3474
                        ],
                        "path": "frames/02/final/sprite.png",
                        "sha256": "b8a73d3bfe745c746a48bdb390df60f7a5e7403b3bd67d2a63f7df36bf1d4be8"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 0.812669,
                        "bodyBandBounds": [
                            341,
                            25,
                            669,
                            924
                        ],
                        "bodyBandCentroid": [
                            564.9677,
                            474.4882
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            40.178,
                            -52.8856
                        ],
                        "bodyBandHeight": 899,
                        "bodyBandHeightRatioToF1": 1.111248,
                        "bodyBandVisiblePixels": 144950,
                        "frame": 3,
                        "fullBounds": [
                            0,
                            25,
                            817,
                            924
                        ],
                        "fullCentroid": [
                            594.9007,
                            485.5807
                        ],
                        "path": "frames/03/final/sprite.png",
                        "sha256": "f496d5a9d8917aa950260ea76cfa3ceab999bdfdfc7eb43b7b91bd1c78b1ab2e"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 0.81504,
                        "bodyBandBounds": [
                            341,
                            25,
                            669,
                            924
                        ],
                        "bodyBandCentroid": [
                            564.4117,
                            474.5364
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            39.622,
                            -52.8374
                        ],
                        "bodyBandHeight": 899,
                        "bodyBandHeightRatioToF1": 1.111248,
                        "bodyBandVisiblePixels": 145373,
                        "frame": 4,
                        "fullBounds": [
                            0,
                            25,
                            817,
                            924
                        ],
                        "fullCentroid": [
                            594.4178,
                            485.4391
                        ],
                        "path": "frames/04/final/sprite.png",
                        "sha256": "43bd45a6db30e57ef64025bce6ec8cb4a8916a98fe526e9eb9b77fb0123424d2"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 0.812669,
                        "bodyBandBounds": [
                            341,
                            25,
                            669,
                            924
                        ],
                        "bodyBandCentroid": [
                            564.9677,
                            474.4882
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            40.178,
                            -52.8856
                        ],
                        "bodyBandHeight": 899,
                        "bodyBandHeightRatioToF1": 1.111248,
                        "bodyBandVisiblePixels": 144950,
                        "frame": 5,
                        "fullBounds": [
                            0,
                            25,
                            817,
                            924
                        ],
                        "fullCentroid": [
                            594.9007,
                            485.5807
                        ],
                        "path": "frames/05/final/sprite.png",
                        "sha256": "f496d5a9d8917aa950260ea76cfa3ceab999bdfdfc7eb43b7b91bd1c78b1ab2e"
                    },
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 0.818701,
                        "bodyBandBounds": [
                            341,
                            25,
                            669,
                            924
                        ],
                        "bodyBandCentroid": [
                            565.594,
                            477.8448
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            40.8043,
                            -49.529
                        ],
                        "bodyBandHeight": 899,
                        "bodyBandHeightRatioToF1": 1.111248,
                        "bodyBandVisiblePixels": 146026,
                        "frame": 6,
                        "fullBounds": [
                            0,
                            25,
                            816,
                            924
                        ],
                        "fullCentroid": [
                            594.1703,
                            486.3474
                        ],
                        "path": "frames/06/final/sprite.png",
                        "sha256": "b8a73d3bfe745c746a48bdb390df60f7a5e7403b3bd67d2a63f7df36bf1d4be8"
                    }
                ],
                "measurement": {
                    "bodyBandDerivedFrom": "F1 alpha centroid and 80% of F1 visible width",
                    "bodyBandX": [
                        341,
                        669
                    ],
                    "canvas": [
                        1024,
                        1024
                    ],
                    "onionColors": {
                        "background": "#10131d",
                        "comparisonOnly": "#24e0ee",
                        "f1Only": "#ff3399",
                        "shared": "#f6f1e7"
                    }
                },
                "runId": "uniform-scale-root-lock-v1",
                "schemaVersion": "midgard-pixels.generation-onion-audit.v1",
                "summary": {
                    "baselineRangePx": 0,
                    "maximumAbsoluteBodyCentroidXDriftPx": 40.8043,
                    "minimumBodyAreaRatioToF1": 0.812669,
                    "minimumBodyHeightRatioToF1": 1,
                    "providerLateralDriftDetected": true,
                    "providerScaleDriftDetected": false
                }
            }
        },
        "frames/01/receipt.json": {
            "sha256": "3cba879ce0a66b05f474baf030c49ff6944c290d1baedb86d299a226871c1102",
            "bytes": 5114,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 35.93048844644336,
                "borderColorMedian": [
                    242,
                    5,
                    225
                ],
                "borderConnectedChromaPixels": 842075,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 938,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Vespera Academy Rune Pointer",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:57:53.275337Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 854,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 1029,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 660,
                "enclosedComponentCount": 1,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-final-sprite-png",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01",
                "frameIndex": 1,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 923,
                "identityBodyLock": {
                    "bodyBandX": [
                        341,
                        669
                    ],
                    "bodyBounds": [
                        341,
                        115,
                        669,
                        924
                    ],
                    "bodyCentroid": [
                        524.7897,
                        527.3738
                    ],
                    "bodyHeight": 809,
                    "bodyWidth": 328
                },
                "identityRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                "inputSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                "keyCoreBorderConnectedPixels": 842075,
                "keyCorePixels": 842735,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.99032227852163,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                "paletteReduced": false,
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 3270,
                "preservedSmallKeyColorPixels": 0,
                "promptArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "removedChromaPixels": 845556,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman academy rune pointer wearing a fitted charcoal-and-crimson scholar coat, short practical skirt, tied hair, and holding a long slender rune rod vertically upright in her rod hand.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 1,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/02/receipt.json": {
            "sha256": "759645b1955a5c5c46937802f89e01fa81aaaf85d6a1e33f935b4e452f6f49e9",
            "bytes": 6033,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 32.78719262151,
                "borderColorMedian": [
                    235,
                    5,
                    214
                ],
                "borderConnectedChromaPixels": 844655,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 948,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Vespera Academy Rune Pointer",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:57:53.275337Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 758,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 1005,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 1951,
                "enclosedComponentCount": 2,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                "frameIndex": 2,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 923,
                "identityBodyLock": {
                    "bodyBandX": [
                        341,
                        669
                    ],
                    "bodyBounds": [
                        341,
                        115,
                        669,
                        924
                    ],
                    "bodyCentroid": [
                        524.7897,
                        527.3738
                    ],
                    "bodyHeight": 809,
                    "bodyWidth": 328
                },
                "identityRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                "inputSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                "keyCoreBorderConnectedPixels": 844655,
                "keyCorePixels": 846606,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.9580588417395,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                "paletteReduced": false,
                "parentFrameIndex": 1,
                "parentRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 324,
                "preservedSmallKeyColorPixels": 0,
                "promptArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                "referenceSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                    }
                ],
                "removedChromaPixels": 849317,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman academy rune pointer wearing a fitted charcoal-and-crimson scholar coat, short practical skirt, tied hair, and holding a long slender rune rod vertically upright in her rod hand.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 2,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/03/receipt.json": {
            "sha256": "c1d3993471be31606d7439c8c361010053c1eee746efee16215b62beaa8c0a69",
            "bytes": 6231,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 33.67491648096547,
                "borderColorMedian": [
                    230,
                    8,
                    212
                ],
                "borderConnectedChromaPixels": 844324,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 796,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Vespera Academy Rune Pointer",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:57:53.275337Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 747,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 847,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 2766,
                "enclosedComponentCount": 2,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                "frameIndex": 3,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 923,
                "identityBodyLock": {
                    "bodyBandX": [
                        341,
                        669
                    ],
                    "bodyBounds": [
                        341,
                        115,
                        669,
                        924
                    ],
                    "bodyCentroid": [
                        524.7897,
                        527.3738
                    ],
                    "bodyHeight": 809,
                    "bodyWidth": 328
                },
                "identityRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                "inputSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                "keyCoreBorderConnectedPixels": 844324,
                "keyCorePixels": 847090,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.9548321285916,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                "paletteReduced": false,
                "parentFrameIndex": 2,
                "parentRawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 148,
                "preservedSmallKeyColorPixels": 0,
                "promptArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                    }
                ],
                "removedChromaPixels": 849480,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman academy rune pointer wearing a fitted charcoal-and-crimson scholar coat, short practical skirt, tied hair, and holding a long slender rune rod vertically upright in her rod hand.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 3,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/04/receipt.json": {
            "sha256": "7f62a5c5f6d872ae193b5bc5e8c4178e4edcd503c4ab69d4919586d5a2db897e",
            "bytes": 6159,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 34.49637662132068,
                "borderColorMedian": [
                    229,
                    6,
                    211
                ],
                "borderConnectedChromaPixels": 843594,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 784,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Vespera Academy Rune Pointer",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:57:53.275337Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 663,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 854,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 3032,
                "enclosedComponentCount": 2,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-final-sprite-png",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04",
                "frameIndex": 4,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 923,
                "identityBodyLock": {
                    "bodyBandX": [
                        341,
                        669
                    ],
                    "bodyBounds": [
                        341,
                        115,
                        669,
                        924
                    ],
                    "bodyCentroid": [
                        524.7897,
                        527.3738
                    ],
                    "bodyHeight": 809,
                    "bodyWidth": 328
                },
                "identityRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/raw/source.png",
                "inputSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                "keyCoreBorderConnectedPixels": 843594,
                "keyCorePixels": 846626,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.92901600410428,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                "paletteReduced": false,
                "parentFrameIndex": 3,
                "parentRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 62,
                "preservedSmallKeyColorPixels": 0,
                "promptArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                    }
                ],
                "removedChromaPixels": 848927,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman academy rune pointer wearing a fitted charcoal-and-crimson scholar coat, short practical skirt, tied hair, and holding a long slender rune rod vertically upright in her rod hand.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 4,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/05/receipt.json": {
            "sha256": "fb017e5854b3b354356e80e44590b2fb0418b845aa06b7b053600cd6dd980cd4",
            "bytes": 4999,
            "value": {
                "action": "idle",
                "anchorGuide": null,
                "byteIdentityVerified": true,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Vespera Academy Rune Pointer",
                "classSource": "request-title",
                "createdAt": "2026-07-24T22:57:53.275337Z",
                "durationMs": 120,
                "exactByteReuse": true,
                "finalArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-final-sprite-png",
                "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05",
                "frameIndex": 5,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 923,
                "identityRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                "loopMode": "ping-pong",
                "operation": "exact-byte-ping-pong-reuse",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackPreviousFrameIndex": 4,
                "playbackPreviousRawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "promptArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-prompt-txt",
                "providerCall": false,
                "providerFrameIndex": 3,
                "providerGenerated": false,
                "rawArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-raw-source-png",
                "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                "receiptArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                    }
                ],
                "request": "Create a white adult human woman academy rune pointer wearing a fitted charcoal-and-crimson scholar coat, short practical skirt, tied hair, and holding a long slender rune rod vertically upright in her rod hand.",
                "runId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFinal": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/final/sprite.png",
                "sourceFinalArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                "sourceFinalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                "sourceFrameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                "sourceFrameIndex": 3,
                "sourceProvided": false,
                "sourceRaw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                "sourceRawArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                "sourceRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
            }
        },
        "frames/06/receipt.json": {
            "sha256": "13a598a1400bb88644aca0da040e660e54a61b70cc72069b02460ffc76ee8de2",
            "bytes": 5588,
            "value": {
                "action": "idle",
                "anchorGuide": null,
                "byteIdentityVerified": true,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Vespera Academy Rune Pointer",
                "classSource": "request-title",
                "createdAt": "2026-07-24T22:57:53.275337Z",
                "durationMs": 120,
                "exactByteReuse": true,
                "finalArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-final-sprite-png",
                "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06",
                "frameIndex": 6,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 923,
                "identityRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                "loopMode": "ping-pong",
                "operation": "exact-byte-ping-pong-reuse",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackPreviousFrameIndex": 5,
                "playbackPreviousRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "promptArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-prompt-txt",
                "providerCall": false,
                "providerFrameIndex": 2,
                "providerGenerated": false,
                "rawArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-raw-source-png",
                "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                "receiptArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                    }
                ],
                "request": "Create a white adult human woman academy rune pointer wearing a fitted charcoal-and-crimson scholar coat, short practical skirt, tied hair, and holding a long slender rune rod vertically upright in her rod hand.",
                "runId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFinal": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/final/sprite.png",
                "sourceFinalArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                "sourceFinalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                "sourceFrameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                "sourceFrameIndex": 2,
                "sourceProvided": false,
                "sourceRaw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                "sourceRawArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                "sourceRawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
            }
        },
        "manifest.json": {
            "sha256": "20d4012963a03d64d75d9fd17da76804ad97376cb7c5707f07b5c6edf20c927a",
            "bytes": 136887,
            "value": {
                "animation": {
                    "action": "idle",
                    "anchorGuide": null,
                    "anchorGuidePolicy": "none",
                    "durationMs": 120,
                    "f1ProviderModel": "gpt-image-2-2026-04-21",
                    "frameCount": 6,
                    "frames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/final/sprite.png",
                            "finalSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01",
                            "identityBaselineY": 923,
                            "identityBodyLock": {
                                "bodyBandX": [
                                    341,
                                    669
                                ],
                                "bodyBounds": [
                                    341,
                                    115,
                                    669,
                                    924
                                ],
                                "bodyCentroid": [
                                    524.7897,
                                    527.3738
                                ],
                                "bodyHeight": 809,
                                "bodyWidth": 328
                            },
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/prompt.txt",
                            "promptSha256": "688e361b528cd2f5d3c02eb8d0783fc39a5280875ae637179bf1a48c65243dc1",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                            "rawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/final/sprite.png",
                            "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                            "identityBaselineY": 923,
                            "identityBodyLock": {
                                "bodyBandX": [
                                    341,
                                    669
                                ],
                                "bodyBounds": [
                                    341,
                                    115,
                                    669,
                                    924
                                ],
                                "bodyCentroid": [
                                    524.7897,
                                    527.3738
                                ],
                                "bodyHeight": 809,
                                "bodyWidth": 328
                            },
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/prompt.txt",
                            "promptSha256": "3513b766e0bfe91f94ac5612f4fa09be65173c132fea4e2a49795a5ce72c2354",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                            "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                            "referenceSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                    "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/final/sprite.png",
                            "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                            "identityBaselineY": 923,
                            "identityBodyLock": {
                                "bodyBandX": [
                                    341,
                                    669
                                ],
                                "bodyBounds": [
                                    341,
                                    115,
                                    669,
                                    924
                                ],
                                "bodyCentroid": [
                                    524.7897,
                                    527.3738
                                ],
                                "bodyHeight": 809,
                                "bodyWidth": 328
                            },
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/prompt.txt",
                            "promptSha256": "4def04bde1fb8bed3cf98602e732af95362df0f2322a410fcf4cadbb2efecc50",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                            "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                            "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                    "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                                    "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/final/sprite.png",
                            "finalSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04",
                            "identityBaselineY": 923,
                            "identityBodyLock": {
                                "bodyBandX": [
                                    341,
                                    669
                                ],
                                "bodyBounds": [
                                    341,
                                    115,
                                    669,
                                    924
                                ],
                                "bodyCentroid": [
                                    524.7897,
                                    527.3738
                                ],
                                "bodyHeight": 809,
                                "bodyWidth": 328
                            },
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/prompt.txt",
                            "promptSha256": "fcb5d5e7c14f98b1b3f13b8bd373ba40786df18acd716357d3b798ddfffd1d63",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/raw/source.png",
                            "rawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                            "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                    "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                                    "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/final/sprite.png",
                            "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05",
                            "identityBaselineY": 923,
                            "index": 5,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackPreviousFrameIndex": 4,
                            "playbackPreviousRawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/prompt.txt",
                            "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                            "providerCall": false,
                            "providerFrameIndex": 3,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/raw/source.png",
                            "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                            "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                                    "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                            "sourceFrameIndex": 3,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png"
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/final/sprite.png",
                            "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06",
                            "identityBaselineY": 923,
                            "index": 6,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackPreviousFrameIndex": 5,
                            "playbackPreviousRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/prompt.txt",
                            "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                            "providerCall": false,
                            "providerFrameIndex": 2,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/raw/source.png",
                            "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                            "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                                    "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                            "sourceFrameIndex": 2,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png"
                        }
                    ],
                    "generationId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                    "ideaIdleBehaviorDeferred": null,
                    "identityBaselineY": 923,
                    "identityBodyLock": {
                        "bodyBandX": [
                            341,
                            669
                        ],
                        "bodyBounds": [
                            341,
                            115,
                            669,
                            924
                        ],
                        "bodyCentroid": [
                            524.7897,
                            527.3738
                        ],
                        "bodyHeight": 809,
                        "bodyWidth": 328
                    },
                    "identityPolicy": "immutable-f1-raw-master",
                    "idleBehavior": "Only the rune rod, rod hand, forearm, and upper arm move. Start with the long rune rod held vertically upright. Through smooth adjacent phases, lower and extend it toward screen-left into a precise pointing pose at the peak. Freeze the face, head, hair, shoulders, torso, free arm and hand, coat, skirt, legs, boots, feet, camera, scale, and background.",
                    "idleBehaviorSource": "explicit-command",
                    "lockedParts": [
                        "recognizable face and identity",
                        "costume and equipment design",
                        "fine motifs, trim, fasteners, gems, and prop markings",
                        "palette family and pixel rendering language",
                        "body proportions and overall scale band",
                        "screen-left three-quarter facing",
                        "1024x1024 canvas and flat #ff00ff background"
                    ],
                    "loop": true,
                    "loopMode": "ping-pong",
                    "movingParts": [
                        "whole pose silhouette",
                        "center of mass",
                        "torso and hips",
                        "both arms and hands",
                        "knees, legs, boots, and stance",
                        "hair and sleeves",
                        "coat tails, dress, cape, and hem",
                        "held equipment following the hands"
                    ],
                    "parentPolicy": "f1-plus-previous",
                    "phaseProgressPercent": [
                        0,
                        22,
                        44,
                        100,
                        44,
                        22
                    ],
                    "phases": [
                        "settled identity pose; motion has not started",
                        "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
                    ],
                    "playbackSourceFrameIndices": [
                        1,
                        2,
                        3,
                        4,
                        3,
                        2
                    ],
                    "posePolicy": "natural-relational",
                    "preview": {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--preview-animation-gif",
                        "format": "derived-gif-preview",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/preview/animation.gif",
                        "sha256": "bc941374c3833bb88d28892766e1dc68cc93c52a7267ca67271f3488285184cd",
                        "sourcePolicy": "final-frame-pngs-unchanged"
                    },
                    "providerCallCount": 4,
                    "providerFrameCount": 4,
                    "providerFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/final/sprite.png",
                            "finalSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01",
                            "identityBaselineY": 923,
                            "identityBodyLock": {
                                "bodyBandX": [
                                    341,
                                    669
                                ],
                                "bodyBounds": [
                                    341,
                                    115,
                                    669,
                                    924
                                ],
                                "bodyCentroid": [
                                    524.7897,
                                    527.3738
                                ],
                                "bodyHeight": 809,
                                "bodyWidth": 328
                            },
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/prompt.txt",
                            "promptSha256": "688e361b528cd2f5d3c02eb8d0783fc39a5280875ae637179bf1a48c65243dc1",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                            "rawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/final/sprite.png",
                            "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                            "identityBaselineY": 923,
                            "identityBodyLock": {
                                "bodyBandX": [
                                    341,
                                    669
                                ],
                                "bodyBounds": [
                                    341,
                                    115,
                                    669,
                                    924
                                ],
                                "bodyCentroid": [
                                    524.7897,
                                    527.3738
                                ],
                                "bodyHeight": 809,
                                "bodyWidth": 328
                            },
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/prompt.txt",
                            "promptSha256": "3513b766e0bfe91f94ac5612f4fa09be65173c132fea4e2a49795a5ce72c2354",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                            "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                            "referenceSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                    "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/final/sprite.png",
                            "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                            "identityBaselineY": 923,
                            "identityBodyLock": {
                                "bodyBandX": [
                                    341,
                                    669
                                ],
                                "bodyBounds": [
                                    341,
                                    115,
                                    669,
                                    924
                                ],
                                "bodyCentroid": [
                                    524.7897,
                                    527.3738
                                ],
                                "bodyHeight": 809,
                                "bodyWidth": 328
                            },
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/prompt.txt",
                            "promptSha256": "4def04bde1fb8bed3cf98602e732af95362df0f2322a410fcf4cadbb2efecc50",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                            "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                            "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                    "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                                    "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/final/sprite.png",
                            "finalSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04",
                            "identityBaselineY": 923,
                            "identityBodyLock": {
                                "bodyBandX": [
                                    341,
                                    669
                                ],
                                "bodyBounds": [
                                    341,
                                    115,
                                    669,
                                    924
                                ],
                                "bodyCentroid": [
                                    524.7897,
                                    527.3738
                                ],
                                "bodyHeight": 809,
                                "bodyWidth": 328
                            },
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/prompt.txt",
                            "promptSha256": "fcb5d5e7c14f98b1b3f13b8bd373ba40786df18acd716357d3b798ddfffd1d63",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/raw/source.png",
                            "rawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                            "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                    "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                                    "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        }
                    ],
                    "providerModel": "gpt-image-2-2026-04-21",
                    "rootPolicy": {
                        "allowedCorrection": "lossless whole-canvas integer translation only",
                        "exactProviderRootRequired": false,
                        "measuredAfterGeneration": true,
                        "poseDependentHorizontalFootMotionPreserved": true,
                        "providerConstraint": "at least one boot sole within 16px of F1 baseline"
                    },
                    "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                    "sourceFrameCount": 4,
                    "sourceFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/final/sprite.png",
                            "finalSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01",
                            "identityBaselineY": 923,
                            "identityBodyLock": {
                                "bodyBandX": [
                                    341,
                                    669
                                ],
                                "bodyBounds": [
                                    341,
                                    115,
                                    669,
                                    924
                                ],
                                "bodyCentroid": [
                                    524.7897,
                                    527.3738
                                ],
                                "bodyHeight": 809,
                                "bodyWidth": 328
                            },
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/prompt.txt",
                            "promptSha256": "688e361b528cd2f5d3c02eb8d0783fc39a5280875ae637179bf1a48c65243dc1",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                            "rawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/final/sprite.png",
                            "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                            "identityBaselineY": 923,
                            "identityBodyLock": {
                                "bodyBandX": [
                                    341,
                                    669
                                ],
                                "bodyBounds": [
                                    341,
                                    115,
                                    669,
                                    924
                                ],
                                "bodyCentroid": [
                                    524.7897,
                                    527.3738
                                ],
                                "bodyHeight": 809,
                                "bodyWidth": 328
                            },
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/prompt.txt",
                            "promptSha256": "3513b766e0bfe91f94ac5612f4fa09be65173c132fea4e2a49795a5ce72c2354",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                            "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                            "referenceSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                    "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/final/sprite.png",
                            "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                            "identityBaselineY": 923,
                            "identityBodyLock": {
                                "bodyBandX": [
                                    341,
                                    669
                                ],
                                "bodyBounds": [
                                    341,
                                    115,
                                    669,
                                    924
                                ],
                                "bodyCentroid": [
                                    524.7897,
                                    527.3738
                                ],
                                "bodyHeight": 809,
                                "bodyWidth": 328
                            },
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/prompt.txt",
                            "promptSha256": "4def04bde1fb8bed3cf98602e732af95362df0f2322a410fcf4cadbb2efecc50",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                            "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                            "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                    "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                                    "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/final/sprite.png",
                            "finalSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04",
                            "identityBaselineY": 923,
                            "identityBodyLock": {
                                "bodyBandX": [
                                    341,
                                    669
                                ],
                                "bodyBounds": [
                                    341,
                                    115,
                                    669,
                                    924
                                ],
                                "bodyCentroid": [
                                    524.7897,
                                    527.3738
                                ],
                                "bodyHeight": 809,
                                "bodyWidth": 328
                            },
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/prompt.txt",
                            "promptSha256": "fcb5d5e7c14f98b1b3f13b8bd373ba40786df18acd716357d3b798ddfffd1d63",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/raw/source.png",
                            "rawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                            "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                    "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                                    "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        }
                    ],
                    "stylePolicy": "elder-a-master"
                },
                "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--manifest-json",
                "artifactIndex": {
                    "artifactCount": 31,
                    "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--artifact-index-json",
                    "exclusions": [
                        "manifest.json",
                        "artifact-index.json"
                    ],
                    "path": "artifact-index.json",
                    "sha256": "132547011871705aacd792a36ae77e014ac640cfec3699da0294fcff9264f5da"
                },
                "artifacts": {
                    "animation": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--animation-json",
                    "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--final-sprite-png",
                    "generationId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                    "manifest": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--manifest-json",
                    "preview": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--preview-animation-gif",
                    "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--prompt-txt",
                    "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--raw-source-png",
                    "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--receipt-json",
                    "request": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--request-json"
                },
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Vespera Academy Rune Pointer",
                "classSource": "request-title",
                "createdAt": "2026-07-24T22:57:53.275337Z",
                "final": "final/sprite.png",
                "finalArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--final-sprite-png",
                "finalSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                "frames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/final/sprite.png",
                        "finalSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/prompt.txt",
                        "promptSha256": "688e361b528cd2f5d3c02eb8d0783fc39a5280875ae637179bf1a48c65243dc1",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "rawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/final/sprite.png",
                        "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/prompt.txt",
                        "promptSha256": "3513b766e0bfe91f94ac5612f4fa09be65173c132fea4e2a49795a5ce72c2354",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "referenceSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/final/sprite.png",
                        "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/prompt.txt",
                        "promptSha256": "4def04bde1fb8bed3cf98602e732af95362df0f2322a410fcf4cadbb2efecc50",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                                "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/final/sprite.png",
                        "finalSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/prompt.txt",
                        "promptSha256": "fcb5d5e7c14f98b1b3f13b8bd373ba40786df18acd716357d3b798ddfffd1d63",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/raw/source.png",
                        "rawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                                "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/final/sprite.png",
                        "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05",
                        "identityBaselineY": 923,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackPreviousFrameIndex": 4,
                        "playbackPreviousRawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/prompt.txt",
                        "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                        "providerCall": false,
                        "providerFrameIndex": 3,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/raw/source.png",
                        "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                                "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                        "sourceFrameIndex": 3,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/final/sprite.png",
                        "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06",
                        "identityBaselineY": 923,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackPreviousFrameIndex": 5,
                        "playbackPreviousRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/prompt.txt",
                        "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                        "providerCall": false,
                        "providerFrameIndex": 2,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/raw/source.png",
                        "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                                "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                        "sourceFrameIndex": 2,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png"
                    }
                ],
                "gender": "woman",
                "genderSource": "request-text",
                "generation": {
                    "anchorGuidePolicy": "none",
                    "animationImageCount": 3,
                    "animationModel": "gpt-image-2-2026-04-21",
                    "attemptedCalls": 4,
                    "completedCalls": 4,
                    "f1ImageCount": 1,
                    "f1Model": "gpt-image-2-2026-04-21",
                    "imageCount": 4,
                    "inputFidelity": "unsupported-omitted",
                    "inputFidelityRequested": false,
                    "loopMode": "ping-pong",
                    "maximumReferenceCount": 2,
                    "model": "gpt-image-2-2026-04-21",
                    "operation": "chained-image-edit-plus-exact-ping-pong-reuse",
                    "playbackFrameCount": 6,
                    "playbackSourceFrameIndices": [
                        1,
                        2,
                        3,
                        4,
                        3,
                        2
                    ],
                    "posePolicy": "natural-relational",
                    "providerFrameCount": 4,
                    "quality": "medium",
                    "referenceCountsBySourceFrame": {
                        "1": 1,
                        "2": 1,
                        "3": 2,
                        "4": 2
                    },
                    "referenceOrderPolicy": [
                        "f1RawIdentity",
                        "previousRawOpaque"
                    ],
                    "size": "1024x1024",
                    "sourceFrameCount": 4,
                    "tool": "openai-image"
                },
                "generationId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "postProcessing": {
                    "alphaOnly": true,
                    "despilled": false,
                    "feathered": false,
                    "filtered": false,
                    "paletteReduced": false,
                    "resampled": false,
                    "resized": false,
                    "translated": false
                },
                "prompt": "prompt.txt",
                "promptSha256": "688e361b528cd2f5d3c02eb8d0783fc39a5280875ae637179bf1a48c65243dc1",
                "providerCallCount": 4,
                "providerFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/final/sprite.png",
                        "finalSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/prompt.txt",
                        "promptSha256": "688e361b528cd2f5d3c02eb8d0783fc39a5280875ae637179bf1a48c65243dc1",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "rawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/final/sprite.png",
                        "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/prompt.txt",
                        "promptSha256": "3513b766e0bfe91f94ac5612f4fa09be65173c132fea4e2a49795a5ce72c2354",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "referenceSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/final/sprite.png",
                        "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/prompt.txt",
                        "promptSha256": "4def04bde1fb8bed3cf98602e732af95362df0f2322a410fcf4cadbb2efecc50",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                                "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/final/sprite.png",
                        "finalSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/prompt.txt",
                        "promptSha256": "fcb5d5e7c14f98b1b3f13b8bd373ba40786df18acd716357d3b798ddfffd1d63",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/raw/source.png",
                        "rawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                                "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "raw": "raw/source.png",
                "rawArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--raw-source-png",
                "rawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "representative": "final/sprite.png",
                "runId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/final/sprite.png",
                        "finalSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/prompt.txt",
                        "promptSha256": "688e361b528cd2f5d3c02eb8d0783fc39a5280875ae637179bf1a48c65243dc1",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "rawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/final/sprite.png",
                        "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/prompt.txt",
                        "promptSha256": "3513b766e0bfe91f94ac5612f4fa09be65173c132fea4e2a49795a5ce72c2354",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "referenceSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/final/sprite.png",
                        "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/prompt.txt",
                        "promptSha256": "4def04bde1fb8bed3cf98602e732af95362df0f2322a410fcf4cadbb2efecc50",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                                "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/final/sprite.png",
                        "finalSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/prompt.txt",
                        "promptSha256": "fcb5d5e7c14f98b1b3f13b8bd373ba40786df18acd716357d3b798ddfffd1d63",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/raw/source.png",
                        "rawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                                "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "sourceGenerationId": null,
                "status": "animated-command-review-required",
                "summary": "f1-plus-previous 6-frame idle ping-pong animation from 4 provider-generated frame(s); every playback frame preserves raw and alpha-only final evidence.",
                "title": "ragnarok-create · Vespera Academy Rune Pointer · idle animation",
                "userRequest": "Create a white adult human woman academy rune pointer wearing a fitted charcoal-and-crimson scholar coat, short practical skirt, tied hair, and holding a long slender rune rod vertically upright in her rod hand."
            }
        },
        "receipt.json": {
            "sha256": "7938282b5713a105e2b2bb5075bfaa9140a4ad1126ece036be40b5741134b0fd",
            "bytes": 62237,
            "value": {
                "anchorGuide": null,
                "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--receipt-json",
                "f1ProviderModel": "gpt-image-2-2026-04-21",
                "frameCount": 6,
                "frames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/final/sprite.png",
                        "finalSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/prompt.txt",
                        "promptSha256": "688e361b528cd2f5d3c02eb8d0783fc39a5280875ae637179bf1a48c65243dc1",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "rawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/final/sprite.png",
                        "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/prompt.txt",
                        "promptSha256": "3513b766e0bfe91f94ac5612f4fa09be65173c132fea4e2a49795a5ce72c2354",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "referenceSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/final/sprite.png",
                        "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/prompt.txt",
                        "promptSha256": "4def04bde1fb8bed3cf98602e732af95362df0f2322a410fcf4cadbb2efecc50",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                                "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/final/sprite.png",
                        "finalSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/prompt.txt",
                        "promptSha256": "fcb5d5e7c14f98b1b3f13b8bd373ba40786df18acd716357d3b798ddfffd1d63",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/raw/source.png",
                        "rawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                                "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/final/sprite.png",
                        "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05",
                        "identityBaselineY": 923,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackPreviousFrameIndex": 4,
                        "playbackPreviousRawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/prompt.txt",
                        "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                        "providerCall": false,
                        "providerFrameIndex": 3,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/raw/source.png",
                        "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                                "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                        "sourceFrameIndex": 3,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/final/sprite.png",
                        "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06",
                        "identityBaselineY": 923,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackPreviousFrameIndex": 5,
                        "playbackPreviousRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/prompt.txt",
                        "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                        "providerCall": false,
                        "providerFrameIndex": 2,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/raw/source.png",
                        "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                                "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                        "sourceFrameIndex": 2,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png"
                    }
                ],
                "generationId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "loopMode": "ping-pong",
                "playbackSourceFrameIndices": [
                    1,
                    2,
                    3,
                    4,
                    3,
                    2
                ],
                "posePolicy": "natural-relational",
                "providerCallCount": 4,
                "providerCallCountAttempted": 4,
                "providerCallCountCompleted": 4,
                "providerFrameCount": 4,
                "providerFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/final/sprite.png",
                        "finalSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/prompt.txt",
                        "promptSha256": "688e361b528cd2f5d3c02eb8d0783fc39a5280875ae637179bf1a48c65243dc1",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "rawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/final/sprite.png",
                        "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/prompt.txt",
                        "promptSha256": "3513b766e0bfe91f94ac5612f4fa09be65173c132fea4e2a49795a5ce72c2354",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "referenceSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/final/sprite.png",
                        "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/prompt.txt",
                        "promptSha256": "4def04bde1fb8bed3cf98602e732af95362df0f2322a410fcf4cadbb2efecc50",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                                "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/final/sprite.png",
                        "finalSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/prompt.txt",
                        "promptSha256": "fcb5d5e7c14f98b1b3f13b8bd373ba40786df18acd716357d3b798ddfffd1d63",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/raw/source.png",
                        "rawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                                "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "providerModel": "gpt-image-2-2026-04-21",
                "runId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameCount": 4,
                "sourceFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/final/sprite.png",
                        "finalSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/prompt.txt",
                        "promptSha256": "688e361b528cd2f5d3c02eb8d0783fc39a5280875ae637179bf1a48c65243dc1",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "rawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/final/sprite.png",
                        "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/prompt.txt",
                        "promptSha256": "3513b766e0bfe91f94ac5612f4fa09be65173c132fea4e2a49795a5ce72c2354",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                        "referenceSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/final/sprite.png",
                        "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/prompt.txt",
                        "promptSha256": "4def04bde1fb8bed3cf98602e732af95362df0f2322a410fcf4cadbb2efecc50",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                        "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                                "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/final/sprite.png",
                        "finalSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                        "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04",
                        "identityBaselineY": 923,
                        "identityBodyLock": {
                            "bodyBandX": [
                                341,
                                669
                            ],
                            "bodyBounds": [
                                341,
                                115,
                                669,
                                924
                            ],
                            "bodyCentroid": [
                                524.7897,
                                527.3738
                            ],
                            "bodyHeight": 809,
                            "bodyWidth": 328
                        },
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/prompt.txt",
                        "promptSha256": "fcb5d5e7c14f98b1b3f13b8bd373ba40786df18acd716357d3b798ddfffd1d63",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/raw/source.png",
                        "rawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                        "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                                "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "sourceGenerationId": null
            }
        },
        "request.json": {
            "sha256": "a7c543f5d1e4eba55efa96136448bb3e975ffb22ebfa3c1ba667b77918785d7c",
            "bytes": 72047,
            "value": {
                "animation": {
                    "action": "idle",
                    "anchorGuide": null,
                    "anchorGuidePolicy": "none",
                    "durationMs": 120,
                    "f1ProviderModel": "gpt-image-2-2026-04-21",
                    "frameCount": 6,
                    "frames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/final/sprite.png",
                            "finalSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01",
                            "identityBaselineY": 923,
                            "identityBodyLock": {
                                "bodyBandX": [
                                    341,
                                    669
                                ],
                                "bodyBounds": [
                                    341,
                                    115,
                                    669,
                                    924
                                ],
                                "bodyCentroid": [
                                    524.7897,
                                    527.3738
                                ],
                                "bodyHeight": 809,
                                "bodyWidth": 328
                            },
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/prompt.txt",
                            "promptSha256": "688e361b528cd2f5d3c02eb8d0783fc39a5280875ae637179bf1a48c65243dc1",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                            "rawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/final/sprite.png",
                            "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                            "identityBaselineY": 923,
                            "identityBodyLock": {
                                "bodyBandX": [
                                    341,
                                    669
                                ],
                                "bodyBounds": [
                                    341,
                                    115,
                                    669,
                                    924
                                ],
                                "bodyCentroid": [
                                    524.7897,
                                    527.3738
                                ],
                                "bodyHeight": 809,
                                "bodyWidth": 328
                            },
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/prompt.txt",
                            "promptSha256": "3513b766e0bfe91f94ac5612f4fa09be65173c132fea4e2a49795a5ce72c2354",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                            "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                            "referenceSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                    "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/final/sprite.png",
                            "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                            "identityBaselineY": 923,
                            "identityBodyLock": {
                                "bodyBandX": [
                                    341,
                                    669
                                ],
                                "bodyBounds": [
                                    341,
                                    115,
                                    669,
                                    924
                                ],
                                "bodyCentroid": [
                                    524.7897,
                                    527.3738
                                ],
                                "bodyHeight": 809,
                                "bodyWidth": 328
                            },
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/prompt.txt",
                            "promptSha256": "4def04bde1fb8bed3cf98602e732af95362df0f2322a410fcf4cadbb2efecc50",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                            "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                            "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                    "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                                    "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/final/sprite.png",
                            "finalSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04",
                            "identityBaselineY": 923,
                            "identityBodyLock": {
                                "bodyBandX": [
                                    341,
                                    669
                                ],
                                "bodyBounds": [
                                    341,
                                    115,
                                    669,
                                    924
                                ],
                                "bodyCentroid": [
                                    524.7897,
                                    527.3738
                                ],
                                "bodyHeight": 809,
                                "bodyWidth": 328
                            },
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/prompt.txt",
                            "promptSha256": "fcb5d5e7c14f98b1b3f13b8bd373ba40786df18acd716357d3b798ddfffd1d63",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/raw/source.png",
                            "rawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                            "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                    "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                                    "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/final/sprite.png",
                            "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-05",
                            "identityBaselineY": 923,
                            "index": 5,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackPreviousFrameIndex": 4,
                            "playbackPreviousRawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/prompt.txt",
                            "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                            "providerCall": false,
                            "providerFrameIndex": 3,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/raw/source.png",
                            "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                            "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                                    "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                            "sourceFrameIndex": 3,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png"
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/final/sprite.png",
                            "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-06",
                            "identityBaselineY": 923,
                            "index": 6,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackPreviousFrameIndex": 5,
                            "playbackPreviousRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/prompt.txt",
                            "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                            "providerCall": false,
                            "providerFrameIndex": 2,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/raw/source.png",
                            "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                            "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                                    "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                            "sourceFrameIndex": 2,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png"
                        }
                    ],
                    "generationId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                    "ideaIdleBehaviorDeferred": null,
                    "identityBaselineY": 923,
                    "identityBodyLock": {
                        "bodyBandX": [
                            341,
                            669
                        ],
                        "bodyBounds": [
                            341,
                            115,
                            669,
                            924
                        ],
                        "bodyCentroid": [
                            524.7897,
                            527.3738
                        ],
                        "bodyHeight": 809,
                        "bodyWidth": 328
                    },
                    "identityPolicy": "immutable-f1-raw-master",
                    "idleBehavior": "Only the rune rod, rod hand, forearm, and upper arm move. Start with the long rune rod held vertically upright. Through smooth adjacent phases, lower and extend it toward screen-left into a precise pointing pose at the peak. Freeze the face, head, hair, shoulders, torso, free arm and hand, coat, skirt, legs, boots, feet, camera, scale, and background.",
                    "idleBehaviorSource": "explicit-command",
                    "lockedParts": [
                        "recognizable face and identity",
                        "costume and equipment design",
                        "fine motifs, trim, fasteners, gems, and prop markings",
                        "palette family and pixel rendering language",
                        "body proportions and overall scale band",
                        "screen-left three-quarter facing",
                        "1024x1024 canvas and flat #ff00ff background"
                    ],
                    "loop": true,
                    "loopMode": "ping-pong",
                    "movingParts": [
                        "whole pose silhouette",
                        "center of mass",
                        "torso and hips",
                        "both arms and hands",
                        "knees, legs, boots, and stance",
                        "hair and sleeves",
                        "coat tails, dress, cape, and hem",
                        "held equipment following the hands"
                    ],
                    "parentPolicy": "f1-plus-previous",
                    "phaseProgressPercent": [
                        0,
                        22,
                        44,
                        100,
                        44,
                        22
                    ],
                    "phases": [
                        "settled identity pose; motion has not started",
                        "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
                    ],
                    "playbackSourceFrameIndices": [
                        1,
                        2,
                        3,
                        4,
                        3,
                        2
                    ],
                    "posePolicy": "natural-relational",
                    "preview": {
                        "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--preview-animation-gif",
                        "format": "derived-gif-preview",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/preview/animation.gif",
                        "sha256": "bc941374c3833bb88d28892766e1dc68cc93c52a7267ca67271f3488285184cd",
                        "sourcePolicy": "final-frame-pngs-unchanged"
                    },
                    "providerCallCount": 4,
                    "providerFrameCount": 4,
                    "providerFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/final/sprite.png",
                            "finalSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01",
                            "identityBaselineY": 923,
                            "identityBodyLock": {
                                "bodyBandX": [
                                    341,
                                    669
                                ],
                                "bodyBounds": [
                                    341,
                                    115,
                                    669,
                                    924
                                ],
                                "bodyCentroid": [
                                    524.7897,
                                    527.3738
                                ],
                                "bodyHeight": 809,
                                "bodyWidth": 328
                            },
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/prompt.txt",
                            "promptSha256": "688e361b528cd2f5d3c02eb8d0783fc39a5280875ae637179bf1a48c65243dc1",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                            "rawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/final/sprite.png",
                            "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                            "identityBaselineY": 923,
                            "identityBodyLock": {
                                "bodyBandX": [
                                    341,
                                    669
                                ],
                                "bodyBounds": [
                                    341,
                                    115,
                                    669,
                                    924
                                ],
                                "bodyCentroid": [
                                    524.7897,
                                    527.3738
                                ],
                                "bodyHeight": 809,
                                "bodyWidth": 328
                            },
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/prompt.txt",
                            "promptSha256": "3513b766e0bfe91f94ac5612f4fa09be65173c132fea4e2a49795a5ce72c2354",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                            "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                            "referenceSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                    "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/final/sprite.png",
                            "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                            "identityBaselineY": 923,
                            "identityBodyLock": {
                                "bodyBandX": [
                                    341,
                                    669
                                ],
                                "bodyBounds": [
                                    341,
                                    115,
                                    669,
                                    924
                                ],
                                "bodyCentroid": [
                                    524.7897,
                                    527.3738
                                ],
                                "bodyHeight": 809,
                                "bodyWidth": 328
                            },
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/prompt.txt",
                            "promptSha256": "4def04bde1fb8bed3cf98602e732af95362df0f2322a410fcf4cadbb2efecc50",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                            "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                            "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                    "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                                    "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/final/sprite.png",
                            "finalSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04",
                            "identityBaselineY": 923,
                            "identityBodyLock": {
                                "bodyBandX": [
                                    341,
                                    669
                                ],
                                "bodyBounds": [
                                    341,
                                    115,
                                    669,
                                    924
                                ],
                                "bodyCentroid": [
                                    524.7897,
                                    527.3738
                                ],
                                "bodyHeight": 809,
                                "bodyWidth": 328
                            },
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/prompt.txt",
                            "promptSha256": "fcb5d5e7c14f98b1b3f13b8bd373ba40786df18acd716357d3b798ddfffd1d63",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/raw/source.png",
                            "rawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                            "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                    "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                                    "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        }
                    ],
                    "providerModel": "gpt-image-2-2026-04-21",
                    "rootPolicy": {
                        "allowedCorrection": "lossless whole-canvas integer translation only",
                        "exactProviderRootRequired": false,
                        "measuredAfterGeneration": true,
                        "poseDependentHorizontalFootMotionPreserved": true,
                        "providerConstraint": "at least one boot sole within 16px of F1 baseline"
                    },
                    "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                    "sourceFrameCount": 4,
                    "sourceFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/final/sprite.png",
                            "finalSha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-01",
                            "identityBaselineY": 923,
                            "identityBodyLock": {
                                "bodyBandX": [
                                    341,
                                    669
                                ],
                                "bodyBounds": [
                                    341,
                                    115,
                                    669,
                                    924
                                ],
                                "bodyCentroid": [
                                    524.7897,
                                    527.3738
                                ],
                                "bodyHeight": 809,
                                "bodyWidth": 328
                            },
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/prompt.txt",
                            "promptSha256": "688e361b528cd2f5d3c02eb8d0783fc39a5280875ae637179bf1a48c65243dc1",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                            "rawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/final/sprite.png",
                            "finalSha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-02",
                            "identityBaselineY": 923,
                            "identityBodyLock": {
                                "bodyBandX": [
                                    341,
                                    669
                                ],
                                "bodyBounds": [
                                    341,
                                    115,
                                    669,
                                    924
                                ],
                                "bodyCentroid": [
                                    524.7897,
                                    527.3738
                                ],
                                "bodyHeight": 809,
                                "bodyWidth": 328
                            },
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/prompt.txt",
                            "promptSha256": "3513b766e0bfe91f94ac5612f4fa09be65173c132fea4e2a49795a5ce72c2354",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                            "rawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                            "referenceSha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                    "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/final/sprite.png",
                            "finalSha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-03",
                            "identityBaselineY": 923,
                            "identityBodyLock": {
                                "bodyBandX": [
                                    341,
                                    669
                                ],
                                "bodyBounds": [
                                    341,
                                    115,
                                    669,
                                    924
                                ],
                                "bodyCentroid": [
                                    524.7897,
                                    527.3738
                                ],
                                "bodyHeight": 809,
                                "bodyWidth": 328
                            },
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/prompt.txt",
                            "promptSha256": "4def04bde1fb8bed3cf98602e732af95362df0f2322a410fcf4cadbb2efecc50",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                            "rawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                            "referenceSha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                    "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
                                    "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/final/sprite.png",
                            "finalSha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
                            "frameId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--frames-04",
                            "identityBaselineY": 923,
                            "identityBodyLock": {
                                "bodyBandX": [
                                    341,
                                    669
                                ],
                                "bodyBounds": [
                                    341,
                                    115,
                                    669,
                                    924
                                ],
                                "bodyCentroid": [
                                    524.7897,
                                    527.3738
                                ],
                                "bodyHeight": 809,
                                "bodyWidth": 328
                            },
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/prompt.txt",
                            "promptSha256": "fcb5d5e7c14f98b1b3f13b8bd373ba40786df18acd716357d3b798ddfffd1d63",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/raw/source.png",
                            "rawSha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                            "referenceSha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
                                    "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
                                    "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        }
                    ],
                    "stylePolicy": "elder-a-master"
                },
                "artifactId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745--request-json",
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Vespera Academy Rune Pointer",
                "classSource": "request-title",
                "command": "ragnarok-create --animate",
                "createdAt": "2026-07-24T22:57:53.275337Z",
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "provider": {
                    "animationInputFidelity": "unsupported-omitted",
                    "animationModel": "gpt-image-2-2026-04-21",
                    "attemptedCalls": 4,
                    "completedCalls": 4,
                    "f1InputFidelity": "unsupported-omitted",
                    "f1Model": "gpt-image-2-2026-04-21",
                    "quality": "medium",
                    "size": "1024x1024"
                },
                "request": "Create a white adult human woman academy rune pointer wearing a fitted charcoal-and-crimson scholar coat, short practical skirt, tied hair, and holding a long slender rune rod vertically upright in her rod hand.",
                "runId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "source": null,
                "sourceGenerationId": null,
                "title": "Vespera Academy Rune Pointer"
            }
        },
        "review/onion-audit/report.json": {
            "sha256": "b13fed09f5576ca1f772f91ebe3f87d4051cfb645240a7676ca536926fc7ab45",
            "bytes": 6747,
            "value": {
                "artifacts": [
                    {
                        "path": "review/onion-audit/f1-to-f02.png",
                        "sha256": "d8f5fddd8a54e13582a20af9847392ab8cccd2789abde54eaf30796d4185c556"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f01-f02.png",
                        "sha256": "d8f5fddd8a54e13582a20af9847392ab8cccd2789abde54eaf30796d4185c556"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f03.png",
                        "sha256": "345a9b81098c66c5d242488965f23734b66b3b6d0e617b4d5bc9f20ed9d1997c"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f02-f03.png",
                        "sha256": "1eea9dd52e48dbbd1ce398b72de5f62ff49688712d5c540f7ef9f63d0d3baabc"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f04.png",
                        "sha256": "938e1b36549ced81e1005ccedab1980debde0f0fc0096c556bc0822a67a11134"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f03-f04.png",
                        "sha256": "f40e30df9076d7740ee698acaae43e0a9a62cc89ea9e4e1319e9ea4fdc52ee6e"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f05.png",
                        "sha256": "345a9b81098c66c5d242488965f23734b66b3b6d0e617b4d5bc9f20ed9d1997c"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f04-f05.png",
                        "sha256": "2ddc1428fbc1ae155f9ab0ef6f9c48ae71ef66084f78ad2821176421a4c65092"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f06.png",
                        "sha256": "d8f5fddd8a54e13582a20af9847392ab8cccd2789abde54eaf30796d4185c556"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f05-f06.png",
                        "sha256": "5355819e3cfc76586a4113e7db4b556bfe442981f8c868f447cecd97e473c6f5"
                    },
                    {
                        "path": "review/onion-audit/f1-onion-sheet.png",
                        "sha256": "7aa76d9d56a19a73f8828ea5b79fed4a6492351afb85a1ea434ca908fc3f3aad"
                    }
                ],
                "frames": [
                    {
                        "baselineY": 923,
                        "bodyBandAreaRatioToF1": 1,
                        "bodyBandBounds": [
                            341,
                            115,
                            669,
                            924
                        ],
                        "bodyBandCentroid": [
                            524.7897,
                            527.3738
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0,
                            0
                        ],
                        "bodyBandHeight": 809,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 178363,
                        "frame": 1,
                        "fullBounds": [
                            287,
                            99,
                            696,
                            924
                        ],
                        "fullCentroid": [
                            504.5515,
                            519.7347
                        ],
                        "path": "frames/01/final/sprite.png",
                        "sha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062"
                    },
                    {
                        "baselineY": 924,
                        "bodyBandAreaRatioToF1": 0.463807,
                        "bodyBandBounds": [
                            341,
                            152,
                            669,
                            881
                        ],
                        "bodyBandCentroid": [
                            594.9822,
                            542.304
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            70.1925,
                            14.9302
                        ],
                        "bodyBandHeight": 729,
                        "bodyBandHeightRatioToF1": 0.901112,
                        "bodyBandVisiblePixels": 82726,
                        "frame": 2,
                        "fullBounds": [
                            65,
                            115,
                            857,
                            925
                        ],
                        "fullCentroid": [
                            653.5411,
                            530.0536
                        ],
                        "path": "frames/02/final/sprite.png",
                        "sha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755"
                    },
                    {
                        "baselineY": 924,
                        "bodyBandAreaRatioToF1": 0.463358,
                        "bodyBandBounds": [
                            341,
                            152,
                            669,
                            881
                        ],
                        "bodyBandCentroid": [
                            593.5197,
                            537.8242
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            68.73,
                            10.4504
                        ],
                        "bodyBandHeight": 729,
                        "bodyBandHeightRatioToF1": 0.901112,
                        "bodyBandVisiblePixels": 82646,
                        "frame": 3,
                        "fullBounds": [
                            53,
                            115,
                            857,
                            925
                        ],
                        "fullCentroid": [
                            652.1214,
                            529.5479
                        ],
                        "path": "frames/03/final/sprite.png",
                        "sha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91"
                    },
                    {
                        "baselineY": 924,
                        "bodyBandAreaRatioToF1": 0.465197,
                        "bodyBandBounds": [
                            341,
                            152,
                            669,
                            881
                        ],
                        "bodyBandCentroid": [
                            593.0891,
                            538.0181
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            68.2994,
                            10.6443
                        ],
                        "bodyBandHeight": 729,
                        "bodyBandHeightRatioToF1": 0.901112,
                        "bodyBandVisiblePixels": 82974,
                        "frame": 4,
                        "fullBounds": [
                            43,
                            115,
                            857,
                            925
                        ],
                        "fullCentroid": [
                            650.5878,
                            529.2483
                        ],
                        "path": "frames/04/final/sprite.png",
                        "sha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c"
                    },
                    {
                        "baselineY": 924,
                        "bodyBandAreaRatioToF1": 0.463358,
                        "bodyBandBounds": [
                            341,
                            152,
                            669,
                            881
                        ],
                        "bodyBandCentroid": [
                            593.5197,
                            537.8242
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            68.73,
                            10.4504
                        ],
                        "bodyBandHeight": 729,
                        "bodyBandHeightRatioToF1": 0.901112,
                        "bodyBandVisiblePixels": 82646,
                        "frame": 5,
                        "fullBounds": [
                            53,
                            115,
                            857,
                            925
                        ],
                        "fullCentroid": [
                            652.1214,
                            529.5479
                        ],
                        "path": "frames/05/final/sprite.png",
                        "sha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91"
                    },
                    {
                        "baselineY": 924,
                        "bodyBandAreaRatioToF1": 0.463807,
                        "bodyBandBounds": [
                            341,
                            152,
                            669,
                            881
                        ],
                        "bodyBandCentroid": [
                            594.9822,
                            542.304
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            70.1925,
                            14.9302
                        ],
                        "bodyBandHeight": 729,
                        "bodyBandHeightRatioToF1": 0.901112,
                        "bodyBandVisiblePixels": 82726,
                        "frame": 6,
                        "fullBounds": [
                            65,
                            115,
                            857,
                            925
                        ],
                        "fullCentroid": [
                            653.5411,
                            530.0536
                        ],
                        "path": "frames/06/final/sprite.png",
                        "sha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755"
                    }
                ],
                "measurement": {
                    "bodyBandDerivedFrom": "F1 alpha centroid and 80% of F1 visible width",
                    "bodyBandX": [
                        341,
                        669
                    ],
                    "canvas": [
                        1024,
                        1024
                    ],
                    "onionColors": {
                        "background": "#10131d",
                        "comparisonOnly": "#24e0ee",
                        "f1Only": "#ff3399",
                        "shared": "#f6f1e7"
                    }
                },
                "runId": "ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745",
                "schemaVersion": "midgard-pixels.generation-onion-audit.v1",
                "summary": {
                    "baselineRangePx": 1,
                    "maximumAbsoluteBodyCentroidXDriftPx": 70.1925,
                    "minimumBodyAreaRatioToF1": 0.463358,
                    "minimumBodyHeightRatioToF1": 0.901112,
                    "providerLateralDriftDetected": true,
                    "providerScaleDriftDetected": true
                }
            }
        }
    },
    "media": {
        "derived/dense-body-f1-root-lock-v4/frames/01/final/sprite.png": {
            "attachment_id": 4207,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v4/frames/01/final/sprite.png",
            "sha256": "72d1795ff1df8551dbe7e56a27b5994a8b9ff53ab56a77a9a371ef2eea17950e",
            "bytes": 378778,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/frames/02/final/sprite.png": {
            "attachment_id": 4211,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v4/frames/02/final/sprite.png",
            "sha256": "49ce0bb543a30f82e5213207d2c920288a42d416992d61846479e92dc496e929",
            "bytes": 383719,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/frames/03/final/sprite.png": {
            "attachment_id": 4210,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v4/frames/03/final/sprite.png",
            "sha256": "2d8e93f6e6a45e806cade5e880c640fd42523ee4916382d34fe4610453e246a0",
            "bytes": 384614,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/frames/04/final/sprite.png": {
            "attachment_id": 4206,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v4/frames/04/final/sprite.png",
            "sha256": "0b763f057e6f95bb352b039b0d796ee87b8814675c14bf1b64f627e95b29abac",
            "bytes": 392712,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/frames/05/final/sprite.png": {
            "attachment_id": 4208,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v4/frames/05/final/sprite.png",
            "sha256": "2d8e93f6e6a45e806cade5e880c640fd42523ee4916382d34fe4610453e246a0",
            "bytes": 384614,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/frames/06/final/sprite.png": {
            "attachment_id": 4209,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v4/frames/06/final/sprite.png",
            "sha256": "49ce0bb543a30f82e5213207d2c920288a42d416992d61846479e92dc496e929",
            "bytes": 383719,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/preview/animation.gif": {
            "attachment_id": 4194,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v4/preview/animation.gif",
            "sha256": "11cab31a80c474f8eb14ca602db8e6b192e8570835bab8465190001aaa8a0bda",
            "bytes": 633758,
            "mime": "image/gif"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f01-f02.png": {
            "attachment_id": 4201,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f01-f02.png",
            "sha256": "d40ae90a30d1ca6ebb345838f944a71fb06425369942b2483e762b2789b35098",
            "bytes": 12287,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f02-f03.png": {
            "attachment_id": 4198,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f02-f03.png",
            "sha256": "e2fb6c574977599dc230fc82d30c614d553d6fb01b394a815cd66716f6629d92",
            "bytes": 12417,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f03-f04.png": {
            "attachment_id": 4199,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f03-f04.png",
            "sha256": "d23a3a6d2fdfa4177618052975075eabd6427c77ba5a1ce228f707b43bef8db6",
            "bytes": 12297,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f04-f05.png": {
            "attachment_id": 4204,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f04-f05.png",
            "sha256": "447d5ea2d8e635285924766456539ca29eb08ed467709c1a23399a9c7d0f05be",
            "bytes": 12217,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f05-f06.png": {
            "attachment_id": 4202,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f05-f06.png",
            "sha256": "d99ef580ecb0ea97776f4e51e47b51afba6625df897169cebc2aee4a845197a7",
            "bytes": 12488,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-onion-sheet.png": {
            "attachment_id": 4195,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-onion-sheet.png",
            "sha256": "daa9e44f55e351650779ba370420c3395873b9ce286759b15a2e631dbfb6bf63",
            "bytes": 11301,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f02.png": {
            "attachment_id": 4203,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f02.png",
            "sha256": "d40ae90a30d1ca6ebb345838f944a71fb06425369942b2483e762b2789b35098",
            "bytes": 12287,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f03.png": {
            "attachment_id": 4196,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f03.png",
            "sha256": "8b3abeeed27ca8c1e044e21bbbec0c0bdfeb3cab47b9b3f3e24239b317a6c15f",
            "bytes": 12185,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f04.png": {
            "attachment_id": 4197,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f04.png",
            "sha256": "714445ea4a3db583443e8a6febb3b75db5fd27ac41f207201841e1b38b9760a6",
            "bytes": 12390,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f05.png": {
            "attachment_id": 4200,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f05.png",
            "sha256": "8b3abeeed27ca8c1e044e21bbbec0c0bdfeb3cab47b9b3f3e24239b317a6c15f",
            "bytes": 12185,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f06.png": {
            "attachment_id": 4205,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f06.png",
            "sha256": "d40ae90a30d1ca6ebb345838f944a71fb06425369942b2483e762b2789b35098",
            "bytes": 12287,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/frames/01/final/sprite.png": {
            "attachment_id": 4153,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v5/frames/01/final/sprite.png",
            "sha256": "4615b6e4b57a0217c9bad7dcd2ef0b3f7c48e949312a661c932fd9b90833c6f1",
            "bytes": 378776,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/frames/02/final/sprite.png": {
            "attachment_id": 4157,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v5/frames/02/final/sprite.png",
            "sha256": "f0fab8c82ce1da576d723d4d552d52e45ce825d6e9c3a5e6d8e78ce01b6281e3",
            "bytes": 385143,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/frames/03/final/sprite.png": {
            "attachment_id": 4156,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v5/frames/03/final/sprite.png",
            "sha256": "97b85c77f0f1a864bf603220b9da279142cef9b472b024f276e05e4acb21cb0f",
            "bytes": 385724,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/frames/04/final/sprite.png": {
            "attachment_id": 4152,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v5/frames/04/final/sprite.png",
            "sha256": "eb637790899ab819be40716aefedfaab50ba80aa4cba3c0b695170b2cb19c07c",
            "bytes": 393837,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/frames/05/final/sprite.png": {
            "attachment_id": 4154,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v5/frames/05/final/sprite.png",
            "sha256": "97b85c77f0f1a864bf603220b9da279142cef9b472b024f276e05e4acb21cb0f",
            "bytes": 385724,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/frames/06/final/sprite.png": {
            "attachment_id": 4155,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v5/frames/06/final/sprite.png",
            "sha256": "f0fab8c82ce1da576d723d4d552d52e45ce825d6e9c3a5e6d8e78ce01b6281e3",
            "bytes": 385143,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/preview/animation.gif": {
            "attachment_id": 4140,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v5/preview/animation.gif",
            "sha256": "8e043961251df9481677126d50ada59c3668d47e8ee4fd944d30e0e9da944d1d",
            "bytes": 637103,
            "mime": "image/gif"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f01-f02.png": {
            "attachment_id": 4147,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f01-f02.png",
            "sha256": "2f5e578ba9dcf5ac47faf01af7241c8bda341b73abe43b3f385a2e3f8c79d3d3",
            "bytes": 12340,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f02-f03.png": {
            "attachment_id": 4144,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f02-f03.png",
            "sha256": "276fc9508fe059585cfb5e5134b98285d773efa641b7051d4b54df79fe489b26",
            "bytes": 12700,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f03-f04.png": {
            "attachment_id": 4145,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f03-f04.png",
            "sha256": "195e39838aec9f718662a06a48dcda9202d58fba11748291012eb30a62ee39a0",
            "bytes": 12474,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f04-f05.png": {
            "attachment_id": 4150,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f04-f05.png",
            "sha256": "d51470d11d13a7867e2948906b1c5ce8e0aca153ec5e3efed05f5be97a167827",
            "bytes": 12525,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f05-f06.png": {
            "attachment_id": 4148,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f05-f06.png",
            "sha256": "4391a1379e8482d77acbff0d18032c0d4667823e8bce10540598ea8b03eecf2c",
            "bytes": 12721,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-onion-sheet.png": {
            "attachment_id": 4141,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-onion-sheet.png",
            "sha256": "7d2cd9dbaf450433173f4b0cfa2534d29a9966be684947ce45381cbae82809f3",
            "bytes": 11747,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f02.png": {
            "attachment_id": 4149,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f02.png",
            "sha256": "2f5e578ba9dcf5ac47faf01af7241c8bda341b73abe43b3f385a2e3f8c79d3d3",
            "bytes": 12340,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f03.png": {
            "attachment_id": 4142,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f03.png",
            "sha256": "f2b7e73f92a69c3874d699ebe39cc4cbc3e3dfc6ca2d27c19e6dec36059f0025",
            "bytes": 12124,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f04.png": {
            "attachment_id": 4143,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f04.png",
            "sha256": "d429d54779c07331a7c9cb2f49431135e71fc2683a72e06c171b78012dcd2b46",
            "bytes": 12349,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f05.png": {
            "attachment_id": 4146,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f05.png",
            "sha256": "f2b7e73f92a69c3874d699ebe39cc4cbc3e3dfc6ca2d27c19e6dec36059f0025",
            "bytes": 12124,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f06.png": {
            "attachment_id": 4151,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f06.png",
            "sha256": "2f5e578ba9dcf5ac47faf01af7241c8bda341b73abe43b3f385a2e3f8c79d3d3",
            "bytes": 12340,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/frames/01/final/sprite.png": {
            "attachment_id": 4171,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v6/frames/01/final/sprite.png",
            "sha256": "4615b6e4b57a0217c9bad7dcd2ef0b3f7c48e949312a661c932fd9b90833c6f1",
            "bytes": 378776,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/frames/02/final/sprite.png": {
            "attachment_id": 4175,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v6/frames/02/final/sprite.png",
            "sha256": "55b5b6695032924fc3584146d67a3fad178b84b6c7c6d08969658587fdc67abd",
            "bytes": 385134,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/frames/03/final/sprite.png": {
            "attachment_id": 4174,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v6/frames/03/final/sprite.png",
            "sha256": "da88e6f411563433d15df2606f6fd88c987a30bdeb1dafc3dbd6c76730e15405",
            "bytes": 385722,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/frames/04/final/sprite.png": {
            "attachment_id": 4170,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v6/frames/04/final/sprite.png",
            "sha256": "b3a433f51759397f227feb19773924d0aaa48ed67c4b4a1fb38d5f11dea34f7f",
            "bytes": 393831,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/frames/05/final/sprite.png": {
            "attachment_id": 4172,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v6/frames/05/final/sprite.png",
            "sha256": "da88e6f411563433d15df2606f6fd88c987a30bdeb1dafc3dbd6c76730e15405",
            "bytes": 385722,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/frames/06/final/sprite.png": {
            "attachment_id": 4173,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v6/frames/06/final/sprite.png",
            "sha256": "55b5b6695032924fc3584146d67a3fad178b84b6c7c6d08969658587fdc67abd",
            "bytes": 385134,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/preview/animation.gif": {
            "attachment_id": 4158,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v6/preview/animation.gif",
            "sha256": "32338d19f48394a56c5a0fb89df21d3e61593e695cf049d73b10b450253fed20",
            "bytes": 637097,
            "mime": "image/gif"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f01-f02.png": {
            "attachment_id": 4165,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f01-f02.png",
            "sha256": "591aee0364000d6bd2c5dcee48de76781268256361763714726a235b776ba650",
            "bytes": 12242,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f02-f03.png": {
            "attachment_id": 4162,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f02-f03.png",
            "sha256": "ae30a42fac8beec10a6d5d323b81aa68674f99dfa286ccfb1185bcce18cbc842",
            "bytes": 12878,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f03-f04.png": {
            "attachment_id": 4163,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f03-f04.png",
            "sha256": "f2effebc45957e47bb97610b9131e70935323fefaa5ee80fda4fb86e79348c03",
            "bytes": 12894,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f04-f05.png": {
            "attachment_id": 4168,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f04-f05.png",
            "sha256": "6e3de47e378aeb6879a7e47d11ad951f6b91bfba78352ed9e8bb65e49634072f",
            "bytes": 12914,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f05-f06.png": {
            "attachment_id": 4166,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f05-f06.png",
            "sha256": "c46d63c7ce6fa0c4d51d2bb7f532705b45e439aa88ad7e03dc20ecb638e81752",
            "bytes": 12810,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-onion-sheet.png": {
            "attachment_id": 4159,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-onion-sheet.png",
            "sha256": "8f2dc4433aadfe892e70d5cf03db1403072f5494a1f6ae52b7b6b37831c6454d",
            "bytes": 12555,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f02.png": {
            "attachment_id": 4167,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f02.png",
            "sha256": "591aee0364000d6bd2c5dcee48de76781268256361763714726a235b776ba650",
            "bytes": 12242,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f03.png": {
            "attachment_id": 4160,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f03.png",
            "sha256": "e18e243370a24d3927cfb6522b4be4fbaabc99284fd5e7c5117dd89229e5db1f",
            "bytes": 12366,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f04.png": {
            "attachment_id": 4161,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f04.png",
            "sha256": "1cbd15f6735b7a29db0499ad64ce5294e1e81e10692c553dbd1272f62365866e",
            "bytes": 12355,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f05.png": {
            "attachment_id": 4164,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f05.png",
            "sha256": "e18e243370a24d3927cfb6522b4be4fbaabc99284fd5e7c5117dd89229e5db1f",
            "bytes": 12366,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f06.png": {
            "attachment_id": 4169,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f06.png",
            "sha256": "591aee0364000d6bd2c5dcee48de76781268256361763714726a235b776ba650",
            "bytes": 12242,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/frames/01/final/sprite.png": {
            "attachment_id": 4135,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v7/frames/01/final/sprite.png",
            "sha256": "72d1795ff1df8551dbe7e56a27b5994a8b9ff53ab56a77a9a371ef2eea17950e",
            "bytes": 378778,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/frames/02/final/sprite.png": {
            "attachment_id": 4139,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v7/frames/02/final/sprite.png",
            "sha256": "b31dae94948f3e133aa63577a298a6bb2c6752485ef9245eb31b12b6449e6e31",
            "bytes": 383707,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/frames/03/final/sprite.png": {
            "attachment_id": 4138,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v7/frames/03/final/sprite.png",
            "sha256": "2d8e93f6e6a45e806cade5e880c640fd42523ee4916382d34fe4610453e246a0",
            "bytes": 384614,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/frames/04/final/sprite.png": {
            "attachment_id": 4134,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v7/frames/04/final/sprite.png",
            "sha256": "0b763f057e6f95bb352b039b0d796ee87b8814675c14bf1b64f627e95b29abac",
            "bytes": 392712,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/frames/05/final/sprite.png": {
            "attachment_id": 4136,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v7/frames/05/final/sprite.png",
            "sha256": "2d8e93f6e6a45e806cade5e880c640fd42523ee4916382d34fe4610453e246a0",
            "bytes": 384614,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/frames/06/final/sprite.png": {
            "attachment_id": 4137,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v7/frames/06/final/sprite.png",
            "sha256": "b31dae94948f3e133aa63577a298a6bb2c6752485ef9245eb31b12b6449e6e31",
            "bytes": 383707,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/preview/animation.gif": {
            "attachment_id": 4122,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v7/preview/animation.gif",
            "sha256": "6915f3b236a43f6a2d23217a6ca1fcecdaaf588cc9f886702b3bc25e5f04fd6d",
            "bytes": 633752,
            "mime": "image/gif"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f01-f02.png": {
            "attachment_id": 4129,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f01-f02.png",
            "sha256": "a022548e8c461085a4782153d792c28699de11671852bfb3e6e1496b6a0a4119",
            "bytes": 12365,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f02-f03.png": {
            "attachment_id": 4126,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f02-f03.png",
            "sha256": "bcfd45a155ed66e0466b6f6796882e8de4e7b4c92b2e79f6663161a45e8b9959",
            "bytes": 12896,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f03-f04.png": {
            "attachment_id": 4127,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f03-f04.png",
            "sha256": "d23a3a6d2fdfa4177618052975075eabd6427c77ba5a1ce228f707b43bef8db6",
            "bytes": 12297,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f04-f05.png": {
            "attachment_id": 4132,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f04-f05.png",
            "sha256": "447d5ea2d8e635285924766456539ca29eb08ed467709c1a23399a9c7d0f05be",
            "bytes": 12217,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f05-f06.png": {
            "attachment_id": 4130,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f05-f06.png",
            "sha256": "bff60e3c30e864a22c85f49f31bec9802a67f9ae292648eaae011d67843f3735",
            "bytes": 12872,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-onion-sheet.png": {
            "attachment_id": 4123,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-onion-sheet.png",
            "sha256": "6b5f2beae8dac4fef17a018014dcc2cfa7dd21c75350bed66b229e7226f6e848",
            "bytes": 11438,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f02.png": {
            "attachment_id": 4131,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f02.png",
            "sha256": "a022548e8c461085a4782153d792c28699de11671852bfb3e6e1496b6a0a4119",
            "bytes": 12365,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f03.png": {
            "attachment_id": 4124,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f03.png",
            "sha256": "8b3abeeed27ca8c1e044e21bbbec0c0bdfeb3cab47b9b3f3e24239b317a6c15f",
            "bytes": 12185,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f04.png": {
            "attachment_id": 4125,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f04.png",
            "sha256": "714445ea4a3db583443e8a6febb3b75db5fd27ac41f207201841e1b38b9760a6",
            "bytes": 12390,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f05.png": {
            "attachment_id": 4128,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f05.png",
            "sha256": "8b3abeeed27ca8c1e044e21bbbec0c0bdfeb3cab47b9b3f3e24239b317a6c15f",
            "bytes": 12185,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f06.png": {
            "attachment_id": 4133,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f06.png",
            "sha256": "a022548e8c461085a4782153d792c28699de11671852bfb3e6e1496b6a0a4119",
            "bytes": 12365,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/frames/01/final/sprite.png": {
            "attachment_id": 4189,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v8/frames/01/final/sprite.png",
            "sha256": "4615b6e4b57a0217c9bad7dcd2ef0b3f7c48e949312a661c932fd9b90833c6f1",
            "bytes": 378776,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/frames/02/final/sprite.png": {
            "attachment_id": 4193,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v8/frames/02/final/sprite.png",
            "sha256": "6d337b3e51126767eebcf91c66bf267e79574fe2e41a93a989e51336f993de58",
            "bytes": 384809,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/frames/03/final/sprite.png": {
            "attachment_id": 4192,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v8/frames/03/final/sprite.png",
            "sha256": "796ab7d8c12c836fd8920f1e837eedc88889c98298fafd157e311fea71bf405b",
            "bytes": 385984,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/frames/04/final/sprite.png": {
            "attachment_id": 4188,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v8/frames/04/final/sprite.png",
            "sha256": "b3a433f51759397f227feb19773924d0aaa48ed67c4b4a1fb38d5f11dea34f7f",
            "bytes": 393831,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/frames/05/final/sprite.png": {
            "attachment_id": 4190,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v8/frames/05/final/sprite.png",
            "sha256": "796ab7d8c12c836fd8920f1e837eedc88889c98298fafd157e311fea71bf405b",
            "bytes": 385984,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/frames/06/final/sprite.png": {
            "attachment_id": 4191,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v8/frames/06/final/sprite.png",
            "sha256": "6d337b3e51126767eebcf91c66bf267e79574fe2e41a93a989e51336f993de58",
            "bytes": 384809,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/preview/animation.gif": {
            "attachment_id": 4176,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v8/preview/animation.gif",
            "sha256": "a454f6b50cf1acf5fe61f15e388022fe22ec7c8b2fe203d3d882b34c7d23939d",
            "bytes": 637081,
            "mime": "image/gif"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f01-f02.png": {
            "attachment_id": 4183,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f01-f02.png",
            "sha256": "f27767f0f99ee34df3e5797cda001c29f4de973baa9fdcee2728fea68fcc9715",
            "bytes": 12326,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f02-f03.png": {
            "attachment_id": 4180,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f02-f03.png",
            "sha256": "32e78a0615cc69aed557d0412968510e9bc2981112a5d090b85aad4307484304",
            "bytes": 12768,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f03-f04.png": {
            "attachment_id": 4181,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f03-f04.png",
            "sha256": "a505692c4ca263be82c0a1ce05ede37ed9082ff501665f79d04a4b1c22f3beb1",
            "bytes": 12731,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f04-f05.png": {
            "attachment_id": 4186,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f04-f05.png",
            "sha256": "93f191cf67a6d83dce2cc38681f5c09a8cac52f9ea219fef7a298c80d9893fbb",
            "bytes": 12662,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f05-f06.png": {
            "attachment_id": 4184,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f05-f06.png",
            "sha256": "7c2782788adf018b3234eff56181fbfc3346d53a15ddeee405a96de87cf2ed30",
            "bytes": 12747,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-onion-sheet.png": {
            "attachment_id": 4177,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-onion-sheet.png",
            "sha256": "0efb8e8da787af278c73560980246de88b00b056e223f1cb135ab9bab57a3cae",
            "bytes": 11648,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f02.png": {
            "attachment_id": 4185,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f02.png",
            "sha256": "f27767f0f99ee34df3e5797cda001c29f4de973baa9fdcee2728fea68fcc9715",
            "bytes": 12326,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f03.png": {
            "attachment_id": 4178,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f03.png",
            "sha256": "bbaae4c7a4dfd0a04ae78263d2b037e186260fbea2899ea44003ab7cfae869d0",
            "bytes": 12166,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f04.png": {
            "attachment_id": 4179,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f04.png",
            "sha256": "1cbd15f6735b7a29db0499ad64ce5294e1e81e10692c553dbd1272f62365866e",
            "bytes": 12355,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f05.png": {
            "attachment_id": 4182,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f05.png",
            "sha256": "bbaae4c7a4dfd0a04ae78263d2b037e186260fbea2899ea44003ab7cfae869d0",
            "bytes": 12166,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f06.png": {
            "attachment_id": 4187,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f06.png",
            "sha256": "f27767f0f99ee34df3e5797cda001c29f4de973baa9fdcee2728fea68fcc9715",
            "bytes": 12326,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/frames/01/final/sprite.png": {
            "attachment_id": 4261,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/sequence-envelope-foot-root-lock-v3/frames/01/final/sprite.png",
            "sha256": "26b67f48253bde849793445366b562b3ff5cd6edf31275bd529104033a2ae03a",
            "bytes": 378883,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/frames/02/final/sprite.png": {
            "attachment_id": 4265,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/sequence-envelope-foot-root-lock-v3/frames/02/final/sprite.png",
            "sha256": "5a2742a894bba4b3bc56e409ff7e7c114278a7250fb0fc6e3a5cebd3aad11501",
            "bytes": 405979,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/frames/03/final/sprite.png": {
            "attachment_id": 4264,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/sequence-envelope-foot-root-lock-v3/frames/03/final/sprite.png",
            "sha256": "4e53b921f36ab496f8c169bf7acffc15cb7abac43f7e86900b640a4ddfd4ae72",
            "bytes": 407245,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/frames/04/final/sprite.png": {
            "attachment_id": 4260,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/sequence-envelope-foot-root-lock-v3/frames/04/final/sprite.png",
            "sha256": "5b2cceee5ac313559491e4ebcd1d4a5e087d78f12a709bd7b32019ee13aa43fa",
            "bytes": 416065,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/frames/05/final/sprite.png": {
            "attachment_id": 4262,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/sequence-envelope-foot-root-lock-v3/frames/05/final/sprite.png",
            "sha256": "4e53b921f36ab496f8c169bf7acffc15cb7abac43f7e86900b640a4ddfd4ae72",
            "bytes": 407245,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/frames/06/final/sprite.png": {
            "attachment_id": 4263,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/sequence-envelope-foot-root-lock-v3/frames/06/final/sprite.png",
            "sha256": "5a2742a894bba4b3bc56e409ff7e7c114278a7250fb0fc6e3a5cebd3aad11501",
            "bytes": 405979,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/preview/animation.gif": {
            "attachment_id": 4248,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/sequence-envelope-foot-root-lock-v3/preview/animation.gif",
            "sha256": "f3efa749aee998cd4ccbd4059c1b3abad3f98f658f67d07eab9a29a7ab559389",
            "bytes": 708659,
            "mime": "image/gif"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f01-f02.png": {
            "attachment_id": 4255,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f01-f02.png",
            "sha256": "685d7df87a9a0f4c9417f5f1378ab4d0498e9880c8354c1ebd148a6250d15834",
            "bytes": 12302,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f02-f03.png": {
            "attachment_id": 4252,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f02-f03.png",
            "sha256": "6569bd2a4a1024b38bde65b6ea80549f866a468882c103c0ed43f062b745f5ae",
            "bytes": 12850,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f03-f04.png": {
            "attachment_id": 4253,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f03-f04.png",
            "sha256": "3df9bbfc873eb4e04652b0970b69e3c68eb0a67e2335bb37bf02562bdacde75c",
            "bytes": 12605,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f04-f05.png": {
            "attachment_id": 4258,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f04-f05.png",
            "sha256": "2cfa88e8901114ce48b7e505a1808d93bc77154e605b0c77caac27747e3ea93d",
            "bytes": 12552,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f05-f06.png": {
            "attachment_id": 4256,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f05-f06.png",
            "sha256": "ff2cb9671cd924bbeb96e74f231926590d0385a08370b80eae175b85211ca79e",
            "bytes": 12903,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-onion-sheet.png": {
            "attachment_id": 4249,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-onion-sheet.png",
            "sha256": "3de2cbe09f103d8deae52014167785193b1a0ce05346d8827ccb92dc0a1be6b6",
            "bytes": 12585,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f02.png": {
            "attachment_id": 4257,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f02.png",
            "sha256": "685d7df87a9a0f4c9417f5f1378ab4d0498e9880c8354c1ebd148a6250d15834",
            "bytes": 12302,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f03.png": {
            "attachment_id": 4250,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f03.png",
            "sha256": "262e8100b7ce1dbf83288f41f1344f9066e04d3504a04837f0e9ac6411bb2195",
            "bytes": 12097,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f04.png": {
            "attachment_id": 4251,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f04.png",
            "sha256": "452dc3354a25eef6a4950fc0b15a7ec6881778efe0e29af4153a611996b033d4",
            "bytes": 12247,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f05.png": {
            "attachment_id": 4254,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f05.png",
            "sha256": "262e8100b7ce1dbf83288f41f1344f9066e04d3504a04837f0e9ac6411bb2195",
            "bytes": 12097,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f06.png": {
            "attachment_id": 4259,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f06.png",
            "sha256": "685d7df87a9a0f4c9417f5f1378ab4d0498e9880c8354c1ebd148a6250d15834",
            "bytes": 12302,
            "mime": "image/png"
        },
        "derived/uniform-scale-foot-root-lock-v2/frames/01/final/sprite.png": {
            "attachment_id": 4243,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-foot-root-lock-v2/frames/01/final/sprite.png",
            "sha256": "f7638e62c225e24571b375de5d7396c09de56ba17bc6b8ec59c7a0a70326e8ca",
            "bytes": 934215,
            "mime": "image/png"
        },
        "derived/uniform-scale-foot-root-lock-v2/frames/02/final/sprite.png": {
            "attachment_id": 4247,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-foot-root-lock-v2/frames/02/final/sprite.png",
            "sha256": "52d995b9c5a577d01a38cf5e5a0d54039fee7fdcb2be1349b93108a58a274d1d",
            "bytes": 388807,
            "mime": "image/png"
        },
        "derived/uniform-scale-foot-root-lock-v2/frames/03/final/sprite.png": {
            "attachment_id": 4246,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-foot-root-lock-v2/frames/03/final/sprite.png",
            "sha256": "151c38ae2968a62455b1419dd2e4cf36c8d9652479069b495e77cdf08b82ef1c",
            "bytes": 390307,
            "mime": "image/png"
        },
        "derived/uniform-scale-foot-root-lock-v2/frames/04/final/sprite.png": {
            "attachment_id": 4242,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-foot-root-lock-v2/frames/04/final/sprite.png",
            "sha256": "5ba157e4195bd697f8c6d5b7febc2231873cbb8618a9a9efd0e376d10bafa1b5",
            "bytes": 397742,
            "mime": "image/png"
        },
        "derived/uniform-scale-foot-root-lock-v2/frames/05/final/sprite.png": {
            "attachment_id": 4244,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-foot-root-lock-v2/frames/05/final/sprite.png",
            "sha256": "151c38ae2968a62455b1419dd2e4cf36c8d9652479069b495e77cdf08b82ef1c",
            "bytes": 390307,
            "mime": "image/png"
        },
        "derived/uniform-scale-foot-root-lock-v2/frames/06/final/sprite.png": {
            "attachment_id": 4245,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-foot-root-lock-v2/frames/06/final/sprite.png",
            "sha256": "52d995b9c5a577d01a38cf5e5a0d54039fee7fdcb2be1349b93108a58a274d1d",
            "bytes": 388807,
            "mime": "image/png"
        },
        "derived/uniform-scale-foot-root-lock-v2/preview/animation.gif": {
            "attachment_id": 4230,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-foot-root-lock-v2/preview/animation.gif",
            "sha256": "029c9fd240759abadc66bdcf22a36f5f9260cdec50b0bc501bc9754428fa1abf",
            "bytes": 679574,
            "mime": "image/gif"
        },
        "derived/uniform-scale-foot-root-lock-v2/review/onion-audit/adjacent-f01-f02.png": {
            "attachment_id": 4237,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-foot-root-lock-v2/review/onion-audit/adjacent-f01-f02.png",
            "sha256": "1720aaa11e6b6b256d9ad47271d0c60da70f63f62470e22af31c73f516f3c522",
            "bytes": 11987,
            "mime": "image/png"
        },
        "derived/uniform-scale-foot-root-lock-v2/review/onion-audit/adjacent-f02-f03.png": {
            "attachment_id": 4234,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-foot-root-lock-v2/review/onion-audit/adjacent-f02-f03.png",
            "sha256": "aa86e9469148b159c8b17c2228886c95ca4121757608018f00e0b08f458ff858",
            "bytes": 12175,
            "mime": "image/png"
        },
        "derived/uniform-scale-foot-root-lock-v2/review/onion-audit/adjacent-f03-f04.png": {
            "attachment_id": 4235,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-foot-root-lock-v2/review/onion-audit/adjacent-f03-f04.png",
            "sha256": "d750d7d605f8326e3aed58f8ae3437b9bef48f96d950f0b511e9759ed20b49bf",
            "bytes": 11812,
            "mime": "image/png"
        },
        "derived/uniform-scale-foot-root-lock-v2/review/onion-audit/adjacent-f04-f05.png": {
            "attachment_id": 4240,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-foot-root-lock-v2/review/onion-audit/adjacent-f04-f05.png",
            "sha256": "965c706604a4ce28c77ead25e9505bc9482fb96573ec6d1dd718cacd6d052f77",
            "bytes": 11810,
            "mime": "image/png"
        },
        "derived/uniform-scale-foot-root-lock-v2/review/onion-audit/adjacent-f05-f06.png": {
            "attachment_id": 4238,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-foot-root-lock-v2/review/onion-audit/adjacent-f05-f06.png",
            "sha256": "d2370360156ea9c2827b005e36231daf4eb2a61422b25fbc15fb58be30aca1cc",
            "bytes": 12196,
            "mime": "image/png"
        },
        "derived/uniform-scale-foot-root-lock-v2/review/onion-audit/f1-onion-sheet.png": {
            "attachment_id": 4231,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-foot-root-lock-v2/review/onion-audit/f1-onion-sheet.png",
            "sha256": "2a46ee14f2f3cca77f42989c9bf0a8e881f6d4ba670dd243b7bff1eb6ac32971",
            "bytes": 11774,
            "mime": "image/png"
        },
        "derived/uniform-scale-foot-root-lock-v2/review/onion-audit/f1-to-f02.png": {
            "attachment_id": 4239,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-foot-root-lock-v2/review/onion-audit/f1-to-f02.png",
            "sha256": "1720aaa11e6b6b256d9ad47271d0c60da70f63f62470e22af31c73f516f3c522",
            "bytes": 11987,
            "mime": "image/png"
        },
        "derived/uniform-scale-foot-root-lock-v2/review/onion-audit/f1-to-f03.png": {
            "attachment_id": 4232,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-foot-root-lock-v2/review/onion-audit/f1-to-f03.png",
            "sha256": "7fda74cf6e0ff2673965c410200526be20a8980a6bfb08bbecdfb52bd5751bb6",
            "bytes": 11778,
            "mime": "image/png"
        },
        "derived/uniform-scale-foot-root-lock-v2/review/onion-audit/f1-to-f04.png": {
            "attachment_id": 4233,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-foot-root-lock-v2/review/onion-audit/f1-to-f04.png",
            "sha256": "665a6d9d55c50c539dad23b88b1093e36bd595d9726af84a990894063d1d6585",
            "bytes": 11894,
            "mime": "image/png"
        },
        "derived/uniform-scale-foot-root-lock-v2/review/onion-audit/f1-to-f05.png": {
            "attachment_id": 4236,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-foot-root-lock-v2/review/onion-audit/f1-to-f05.png",
            "sha256": "7fda74cf6e0ff2673965c410200526be20a8980a6bfb08bbecdfb52bd5751bb6",
            "bytes": 11778,
            "mime": "image/png"
        },
        "derived/uniform-scale-foot-root-lock-v2/review/onion-audit/f1-to-f06.png": {
            "attachment_id": 4241,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-foot-root-lock-v2/review/onion-audit/f1-to-f06.png",
            "sha256": "1720aaa11e6b6b256d9ad47271d0c60da70f63f62470e22af31c73f516f3c522",
            "bytes": 11987,
            "mime": "image/png"
        },
        "derived/uniform-scale-root-lock-v1/frames/01/final/sprite.png": {
            "attachment_id": 4225,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-root-lock-v1/frames/01/final/sprite.png",
            "sha256": "f7638e62c225e24571b375de5d7396c09de56ba17bc6b8ec59c7a0a70326e8ca",
            "bytes": 934215,
            "mime": "image/png"
        },
        "derived/uniform-scale-root-lock-v1/frames/02/final/sprite.png": {
            "attachment_id": 4229,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-root-lock-v1/frames/02/final/sprite.png",
            "sha256": "b8a73d3bfe745c746a48bdb390df60f7a5e7403b3bd67d2a63f7df36bf1d4be8",
            "bytes": 402450,
            "mime": "image/png"
        },
        "derived/uniform-scale-root-lock-v1/frames/03/final/sprite.png": {
            "attachment_id": 4228,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-root-lock-v1/frames/03/final/sprite.png",
            "sha256": "f496d5a9d8917aa950260ea76cfa3ceab999bdfdfc7eb43b7b91bd1c78b1ab2e",
            "bytes": 403193,
            "mime": "image/png"
        },
        "derived/uniform-scale-root-lock-v1/frames/04/final/sprite.png": {
            "attachment_id": 4224,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-root-lock-v1/frames/04/final/sprite.png",
            "sha256": "43bd45a6db30e57ef64025bce6ec8cb4a8916a98fe526e9eb9b77fb0123424d2",
            "bytes": 410906,
            "mime": "image/png"
        },
        "derived/uniform-scale-root-lock-v1/frames/05/final/sprite.png": {
            "attachment_id": 4226,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-root-lock-v1/frames/05/final/sprite.png",
            "sha256": "f496d5a9d8917aa950260ea76cfa3ceab999bdfdfc7eb43b7b91bd1c78b1ab2e",
            "bytes": 403193,
            "mime": "image/png"
        },
        "derived/uniform-scale-root-lock-v1/frames/06/final/sprite.png": {
            "attachment_id": 4227,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-root-lock-v1/frames/06/final/sprite.png",
            "sha256": "b8a73d3bfe745c746a48bdb390df60f7a5e7403b3bd67d2a63f7df36bf1d4be8",
            "bytes": 402450,
            "mime": "image/png"
        },
        "derived/uniform-scale-root-lock-v1/preview/animation.gif": {
            "attachment_id": 4212,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-root-lock-v1/preview/animation.gif",
            "sha256": "0ea2f0799e207eab3d871c75e68aa604ac7709d53ecf44ba38c01e0ccddf6eb3",
            "bytes": 703041,
            "mime": "image/gif"
        },
        "derived/uniform-scale-root-lock-v1/review/onion-audit/adjacent-f01-f02.png": {
            "attachment_id": 4219,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-root-lock-v1/review/onion-audit/adjacent-f01-f02.png",
            "sha256": "c245863fca30a5c99655f710c3ff547ebc96bd0f68bfde26e6167bc2ec5eb4d6",
            "bytes": 12147,
            "mime": "image/png"
        },
        "derived/uniform-scale-root-lock-v1/review/onion-audit/adjacent-f02-f03.png": {
            "attachment_id": 4216,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-root-lock-v1/review/onion-audit/adjacent-f02-f03.png",
            "sha256": "aa34fa83d1e82eeb73b0c793692bf4691b04122123d6b34f1cf7fc9bb9053885",
            "bytes": 12804,
            "mime": "image/png"
        },
        "derived/uniform-scale-root-lock-v1/review/onion-audit/adjacent-f03-f04.png": {
            "attachment_id": 4217,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-root-lock-v1/review/onion-audit/adjacent-f03-f04.png",
            "sha256": "b7c955adcdbdca89c1b7209c74242a955dae57fb2142fa8247fe9cd10831b514",
            "bytes": 12339,
            "mime": "image/png"
        },
        "derived/uniform-scale-root-lock-v1/review/onion-audit/adjacent-f04-f05.png": {
            "attachment_id": 4222,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-root-lock-v1/review/onion-audit/adjacent-f04-f05.png",
            "sha256": "b6008eada9c27c3988b20bc98b304c19de752734619654410900bb66fb2ce159",
            "bytes": 12279,
            "mime": "image/png"
        },
        "derived/uniform-scale-root-lock-v1/review/onion-audit/adjacent-f05-f06.png": {
            "attachment_id": 4220,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-root-lock-v1/review/onion-audit/adjacent-f05-f06.png",
            "sha256": "a5e0427bcfe738350ce5ead8309a3252fdccde6910ae1b0e3541c16dff4fbd32",
            "bytes": 12759,
            "mime": "image/png"
        },
        "derived/uniform-scale-root-lock-v1/review/onion-audit/f1-onion-sheet.png": {
            "attachment_id": 4213,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-root-lock-v1/review/onion-audit/f1-onion-sheet.png",
            "sha256": "15436cad43f0f76cf897a4bd5b5310c59089612f84b6cc46e847143c8b58f460",
            "bytes": 12178,
            "mime": "image/png"
        },
        "derived/uniform-scale-root-lock-v1/review/onion-audit/f1-to-f02.png": {
            "attachment_id": 4221,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-root-lock-v1/review/onion-audit/f1-to-f02.png",
            "sha256": "c245863fca30a5c99655f710c3ff547ebc96bd0f68bfde26e6167bc2ec5eb4d6",
            "bytes": 12147,
            "mime": "image/png"
        },
        "derived/uniform-scale-root-lock-v1/review/onion-audit/f1-to-f03.png": {
            "attachment_id": 4214,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-root-lock-v1/review/onion-audit/f1-to-f03.png",
            "sha256": "89b123c0e9128b02ff9f55b3c609b09cb1bdb6add574a2280b4ca7944b3b5973",
            "bytes": 11955,
            "mime": "image/png"
        },
        "derived/uniform-scale-root-lock-v1/review/onion-audit/f1-to-f04.png": {
            "attachment_id": 4215,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-root-lock-v1/review/onion-audit/f1-to-f04.png",
            "sha256": "341a4661d474178fbbec1959c22426595ac52660572dd61fdd1f38879bb0344c",
            "bytes": 12080,
            "mime": "image/png"
        },
        "derived/uniform-scale-root-lock-v1/review/onion-audit/f1-to-f05.png": {
            "attachment_id": 4218,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-root-lock-v1/review/onion-audit/f1-to-f05.png",
            "sha256": "89b123c0e9128b02ff9f55b3c609b09cb1bdb6add574a2280b4ca7944b3b5973",
            "bytes": 11955,
            "mime": "image/png"
        },
        "derived/uniform-scale-root-lock-v1/review/onion-audit/f1-to-f06.png": {
            "attachment_id": 4223,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/derived/uniform-scale-root-lock-v1/review/onion-audit/f1-to-f06.png",
            "sha256": "c245863fca30a5c99655f710c3ff547ebc96bd0f68bfde26e6167bc2ec5eb4d6",
            "bytes": 12147,
            "mime": "image/png"
        },
        "final/sprite.png": {
            "attachment_id": 4097,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/final/sprite.png",
            "sha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
            "bytes": 1007500,
            "mime": "image/png"
        },
        "frames/01/final/sprite.png": {
            "attachment_id": 4098,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/final/sprite.png",
            "sha256": "725767208a6f9ba556fe76e1a405836f94df3f95341ef680473da076fb3a6062",
            "bytes": 1007500,
            "mime": "image/png"
        },
        "frames/01/raw/source.png": {
            "attachment_id": 4096,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/01/raw/source.png",
            "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
            "bytes": 1002717,
            "mime": "image/png"
        },
        "frames/02/final/sprite.png": {
            "attachment_id": 4101,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/final/sprite.png",
            "sha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
            "bytes": 1071680,
            "mime": "image/png"
        },
        "frames/02/raw/source.png": {
            "attachment_id": 4100,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/02/raw/source.png",
            "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
            "bytes": 1067607,
            "mime": "image/png"
        },
        "frames/03/final/sprite.png": {
            "attachment_id": 4103,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/final/sprite.png",
            "sha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
            "bytes": 1028807,
            "mime": "image/png"
        },
        "frames/03/raw/source.png": {
            "attachment_id": 4102,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/03/raw/source.png",
            "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
            "bytes": 1027547,
            "mime": "image/png"
        },
        "frames/04/final/sprite.png": {
            "attachment_id": 4105,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/final/sprite.png",
            "sha256": "0de6762fd8be3bcc7bbdd87fc58112ea98df2bab151b19088cf9865512a2c63c",
            "bytes": 1049723,
            "mime": "image/png"
        },
        "frames/04/raw/source.png": {
            "attachment_id": 4104,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/04/raw/source.png",
            "sha256": "4ef9e7678a1efa3d5e49042b15519966aeb08b610d33b50f74e621ae88a27f8b",
            "bytes": 1039513,
            "mime": "image/png"
        },
        "frames/05/final/sprite.png": {
            "attachment_id": 4106,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/final/sprite.png",
            "sha256": "e7dbd1c4a1bc68894a5c1d0749f85ab29b8265a662aa5260cceaeb4a4f5a4e91",
            "bytes": 1028807,
            "mime": "image/png"
        },
        "frames/05/raw/source.png": {
            "attachment_id": 4107,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/05/raw/source.png",
            "sha256": "d7ed9794f573debdc541aca563e5b879c2d27d665483872439247480e8cf28fe",
            "bytes": 1027547,
            "mime": "image/png"
        },
        "frames/06/final/sprite.png": {
            "attachment_id": 4108,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/final/sprite.png",
            "sha256": "c55662e70e6e2c4aa52088c452be67db4e03486a64b0452fcecddea801b06755",
            "bytes": 1071680,
            "mime": "image/png"
        },
        "frames/06/raw/source.png": {
            "attachment_id": 4109,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/frames/06/raw/source.png",
            "sha256": "ebe3fd317dead239415b6dda8127342ccab925362b1e018c92124bc5639b9808",
            "bytes": 1067607,
            "mime": "image/png"
        },
        "preview/animation.gif": {
            "attachment_id": 4110,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/preview/animation.gif",
            "sha256": "bc941374c3833bb88d28892766e1dc68cc93c52a7267ca67271f3488285184cd",
            "bytes": 633782,
            "mime": "image/gif"
        },
        "raw/source.png": {
            "attachment_id": 4099,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/raw/source.png",
            "sha256": "9cf5067a795344efeca49a2327b0b3ae3051f2926614342f116db8905254f0a3",
            "bytes": 1002717,
            "mime": "image/png"
        },
        "review/onion-audit/adjacent-f01-f02.png": {
            "attachment_id": 4117,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/review/onion-audit/adjacent-f01-f02.png",
            "sha256": "d8f5fddd8a54e13582a20af9847392ab8cccd2789abde54eaf30796d4185c556",
            "bytes": 12000,
            "mime": "image/png"
        },
        "review/onion-audit/adjacent-f02-f03.png": {
            "attachment_id": 4114,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/review/onion-audit/adjacent-f02-f03.png",
            "sha256": "1eea9dd52e48dbbd1ce398b72de5f62ff49688712d5c540f7ef9f63d0d3baabc",
            "bytes": 12432,
            "mime": "image/png"
        },
        "review/onion-audit/adjacent-f03-f04.png": {
            "attachment_id": 4115,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/review/onion-audit/adjacent-f03-f04.png",
            "sha256": "f40e30df9076d7740ee698acaae43e0a9a62cc89ea9e4e1319e9ea4fdc52ee6e",
            "bytes": 12303,
            "mime": "image/png"
        },
        "review/onion-audit/adjacent-f04-f05.png": {
            "attachment_id": 4120,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/review/onion-audit/adjacent-f04-f05.png",
            "sha256": "2ddc1428fbc1ae155f9ab0ef6f9c48ae71ef66084f78ad2821176421a4c65092",
            "bytes": 12227,
            "mime": "image/png"
        },
        "review/onion-audit/adjacent-f05-f06.png": {
            "attachment_id": 4118,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/review/onion-audit/adjacent-f05-f06.png",
            "sha256": "5355819e3cfc76586a4113e7db4b556bfe442981f8c868f447cecd97e473c6f5",
            "bytes": 12497,
            "mime": "image/png"
        },
        "review/onion-audit/f1-onion-sheet.png": {
            "attachment_id": 4111,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/review/onion-audit/f1-onion-sheet.png",
            "sha256": "7aa76d9d56a19a73f8828ea5b79fed4a6492351afb85a1ea434ca908fc3f3aad",
            "bytes": 11572,
            "mime": "image/png"
        },
        "review/onion-audit/f1-to-f02.png": {
            "attachment_id": 4119,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/review/onion-audit/f1-to-f02.png",
            "sha256": "d8f5fddd8a54e13582a20af9847392ab8cccd2789abde54eaf30796d4185c556",
            "bytes": 12000,
            "mime": "image/png"
        },
        "review/onion-audit/f1-to-f03.png": {
            "attachment_id": 4112,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/review/onion-audit/f1-to-f03.png",
            "sha256": "345a9b81098c66c5d242488965f23734b66b3b6d0e617b4d5bc9f20ed9d1997c",
            "bytes": 11848,
            "mime": "image/png"
        },
        "review/onion-audit/f1-to-f04.png": {
            "attachment_id": 4113,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/review/onion-audit/f1-to-f04.png",
            "sha256": "938e1b36549ced81e1005ccedab1980debde0f0fc0096c556bc0822a67a11134",
            "bytes": 12006,
            "mime": "image/png"
        },
        "review/onion-audit/f1-to-f05.png": {
            "attachment_id": 4116,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/review/onion-audit/f1-to-f05.png",
            "sha256": "345a9b81098c66c5d242488965f23734b66b3b6d0e617b4d5bc9f20ed9d1997c",
            "bytes": 11848,
            "mime": "image/png"
        },
        "review/onion-audit/f1-to-f06.png": {
            "attachment_id": 4121,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T225753275337Z-vespera-academy-rune-pointer-ae7745/review/onion-audit/f1-to-f06.png",
            "sha256": "d8f5fddd8a54e13582a20af9847392ab8cccd2789abde54eaf30796d4185c556",
            "bytes": 12000,
            "mime": "image/png"
        }
    },
    "importedAt": "2026-07-24T23:19:43+00:00",
    "archiveVisibility": "publish"
}

Aerwyn Academy Wind Duelist · idle animation

Classes & Combat · 2026-07-24T22:48:26.638621Z · ID ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d

raw/source.png
Aerwyn Academy Wind Duelist · idle animation
final/sprite.png
Aerwyn Academy Wind Duelist · idle animation
frames/02/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation
frames/03/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation
frames/04/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation
frames/05/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation
frames/06/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation
frames/07/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation
frames/08/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation
frames/09/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation
frames/10/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation
frames/11/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation
frames/12/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation
preview/animation.gif
Aerwyn Academy Wind Duelist · idle animation
CSS frame player · 12 frames
Additional output · derived/dense-body-f1-root-lock-v4/frames/01/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/frames/01/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v4/frames/02/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/frames/02/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v4/frames/03/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/frames/03/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v4/frames/04/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/frames/04/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v4/frames/05/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/frames/05/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v4/frames/06/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/frames/06/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v4/frames/07/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/frames/07/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v4/frames/08/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/frames/08/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v4/frames/09/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/frames/09/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v4/frames/10/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/frames/10/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v4/frames/11/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/frames/11/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v4/frames/12/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/frames/12/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v4/preview/animation.gif
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/preview/animation.gif
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f01-f02.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f01-f02.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f02-f03.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f02-f03.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f03-f04.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f03-f04.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f04-f05.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f04-f05.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f05-f06.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f05-f06.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f06-f07.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f06-f07.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f07-f08.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f07-f08.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f08-f09.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f08-f09.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f09-f10.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f09-f10.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f10-f11.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f10-f11.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f11-f12.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f11-f12.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-onion-sheet.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-onion-sheet.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f02.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f02.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f03.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f03.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f04.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f04.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f05.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f05.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f06.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f06.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f07.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f07.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f08.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f08.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f09.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f09.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f10.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f10.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f11.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f11.png
Additional output · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f12.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f12.png
Additional output · derived/dense-body-f1-root-lock-v5/frames/01/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/frames/01/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v5/frames/02/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/frames/02/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v5/frames/03/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/frames/03/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v5/frames/04/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/frames/04/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v5/frames/05/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/frames/05/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v5/frames/06/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/frames/06/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v5/frames/07/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/frames/07/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v5/frames/08/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/frames/08/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v5/frames/09/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/frames/09/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v5/frames/10/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/frames/10/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v5/frames/11/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/frames/11/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v5/frames/12/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/frames/12/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v5/preview/animation.gif
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/preview/animation.gif
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f01-f02.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f01-f02.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f02-f03.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f02-f03.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f03-f04.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f03-f04.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f04-f05.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f04-f05.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f05-f06.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f05-f06.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f06-f07.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f06-f07.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f07-f08.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f07-f08.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f08-f09.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f08-f09.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f09-f10.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f09-f10.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f10-f11.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f10-f11.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f11-f12.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f11-f12.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-onion-sheet.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-onion-sheet.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f02.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f02.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f03.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f03.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f04.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f04.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f05.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f05.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f06.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f06.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f07.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f07.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f08.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f08.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f09.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f09.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f10.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f10.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f11.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f11.png
Additional output · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f12.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f12.png
Additional output · derived/dense-body-f1-root-lock-v6/frames/01/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/frames/01/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v6/frames/02/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/frames/02/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v6/frames/03/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/frames/03/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v6/frames/04/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/frames/04/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v6/frames/05/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/frames/05/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v6/frames/06/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/frames/06/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v6/frames/07/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/frames/07/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v6/frames/08/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/frames/08/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v6/frames/09/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/frames/09/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v6/frames/10/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/frames/10/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v6/frames/11/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/frames/11/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v6/frames/12/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/frames/12/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v6/preview/animation.gif
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/preview/animation.gif
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f01-f02.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f01-f02.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f02-f03.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f02-f03.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f03-f04.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f03-f04.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f04-f05.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f04-f05.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f05-f06.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f05-f06.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f06-f07.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f06-f07.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f07-f08.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f07-f08.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f08-f09.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f08-f09.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f09-f10.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f09-f10.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f10-f11.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f10-f11.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f11-f12.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f11-f12.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-onion-sheet.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-onion-sheet.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f02.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f02.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f03.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f03.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f04.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f04.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f05.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f05.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f06.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f06.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f07.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f07.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f08.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f08.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f09.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f09.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f10.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f10.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f11.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f11.png
Additional output · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f12.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f12.png
Additional output · derived/dense-body-f1-root-lock-v7/frames/01/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/frames/01/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v7/frames/02/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/frames/02/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v7/frames/03/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/frames/03/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v7/frames/04/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/frames/04/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v7/frames/05/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/frames/05/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v7/frames/06/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/frames/06/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v7/frames/07/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/frames/07/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v7/frames/08/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/frames/08/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v7/frames/09/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/frames/09/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v7/frames/10/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/frames/10/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v7/frames/11/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/frames/11/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v7/frames/12/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/frames/12/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v7/preview/animation.gif
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/preview/animation.gif
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f01-f02.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f01-f02.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f02-f03.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f02-f03.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f03-f04.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f03-f04.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f04-f05.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f04-f05.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f05-f06.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f05-f06.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f06-f07.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f06-f07.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f07-f08.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f07-f08.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f08-f09.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f08-f09.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f09-f10.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f09-f10.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f10-f11.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f10-f11.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f11-f12.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f11-f12.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-onion-sheet.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-onion-sheet.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f02.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f02.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f03.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f03.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f04.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f04.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f05.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f05.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f06.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f06.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f07.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f07.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f08.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f08.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f09.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f09.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f10.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f10.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f11.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f11.png
Additional output · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f12.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f12.png
Additional output · derived/dense-body-f1-root-lock-v8/frames/01/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/frames/01/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v8/frames/02/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/frames/02/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v8/frames/03/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/frames/03/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v8/frames/04/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/frames/04/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v8/frames/05/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/frames/05/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v8/frames/06/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/frames/06/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v8/frames/07/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/frames/07/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v8/frames/08/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/frames/08/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v8/frames/09/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/frames/09/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v8/frames/10/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/frames/10/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v8/frames/11/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/frames/11/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v8/frames/12/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/frames/12/final/sprite.png
Additional output · derived/dense-body-f1-root-lock-v8/preview/animation.gif
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/preview/animation.gif
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f01-f02.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f01-f02.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f02-f03.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f02-f03.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f03-f04.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f03-f04.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f04-f05.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f04-f05.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f05-f06.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f05-f06.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f06-f07.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f06-f07.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f07-f08.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f07-f08.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f08-f09.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f08-f09.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f09-f10.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f09-f10.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f10-f11.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f10-f11.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f11-f12.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f11-f12.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-onion-sheet.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-onion-sheet.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f02.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f02.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f03.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f03.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f04.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f04.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f05.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f05.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f06.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f06.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f07.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f07.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f08.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f08.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f09.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f09.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f10.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f10.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f11.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f11.png
Additional output · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f12.png
Aerwyn Academy Wind Duelist · idle animation · derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f12.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/frames/01/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/frames/01/final/sprite.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/frames/02/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/frames/02/final/sprite.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/frames/03/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/frames/03/final/sprite.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/frames/04/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/frames/04/final/sprite.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/frames/05/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/frames/05/final/sprite.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/frames/06/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/frames/06/final/sprite.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/frames/07/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/frames/07/final/sprite.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/frames/08/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/frames/08/final/sprite.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/frames/09/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/frames/09/final/sprite.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/frames/10/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/frames/10/final/sprite.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/frames/11/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/frames/11/final/sprite.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/frames/12/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/frames/12/final/sprite.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/preview/animation.gif
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/preview/animation.gif
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f01-f02.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f01-f02.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f02-f03.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f02-f03.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f03-f04.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f03-f04.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f04-f05.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f04-f05.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f05-f06.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f05-f06.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f06-f07.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f06-f07.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f07-f08.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f07-f08.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f08-f09.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f08-f09.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f09-f10.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f09-f10.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f10-f11.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f10-f11.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f11-f12.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f11-f12.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-onion-sheet.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-onion-sheet.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f02.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f02.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f03.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f03.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f04.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f04.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f05.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f05.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f06.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f06.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f07.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f07.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f08.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f08.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f09.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f09.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f10.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f10.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f11.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f11.png
Additional output · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f12.png
Aerwyn Academy Wind Duelist · idle animation · derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f12.png
Additional output · frames/01/final/sprite.png
Aerwyn Academy Wind Duelist · idle animation · frames/01/final/sprite.png
Additional output · frames/01/raw/source.png
Aerwyn Academy Wind Duelist · idle animation · frames/01/raw/source.png
Additional output · frames/02/raw/source.png
Aerwyn Academy Wind Duelist · idle animation · frames/02/raw/source.png
Additional output · frames/03/raw/source.png
Aerwyn Academy Wind Duelist · idle animation · frames/03/raw/source.png
Additional output · frames/04/raw/source.png
Aerwyn Academy Wind Duelist · idle animation · frames/04/raw/source.png
Additional output · frames/05/raw/source.png
Aerwyn Academy Wind Duelist · idle animation · frames/05/raw/source.png
Additional output · frames/06/raw/source.png
Aerwyn Academy Wind Duelist · idle animation · frames/06/raw/source.png
Additional output · frames/07/raw/source.png
Aerwyn Academy Wind Duelist · idle animation · frames/07/raw/source.png
Additional output · frames/08/raw/source.png
Aerwyn Academy Wind Duelist · idle animation · frames/08/raw/source.png
Additional output · frames/09/raw/source.png
Aerwyn Academy Wind Duelist · idle animation · frames/09/raw/source.png
Additional output · frames/10/raw/source.png
Aerwyn Academy Wind Duelist · idle animation · frames/10/raw/source.png
Additional output · frames/11/raw/source.png
Aerwyn Academy Wind Duelist · idle animation · frames/11/raw/source.png
Additional output · frames/12/raw/source.png
Aerwyn Academy Wind Duelist · idle animation · frames/12/raw/source.png
Additional output · review/onion-audit/adjacent-f01-f02.png
Aerwyn Academy Wind Duelist · idle animation · review/onion-audit/adjacent-f01-f02.png
Additional output · review/onion-audit/adjacent-f02-f03.png
Aerwyn Academy Wind Duelist · idle animation · review/onion-audit/adjacent-f02-f03.png
Additional output · review/onion-audit/adjacent-f03-f04.png
Aerwyn Academy Wind Duelist · idle animation · review/onion-audit/adjacent-f03-f04.png
Additional output · review/onion-audit/adjacent-f04-f05.png
Aerwyn Academy Wind Duelist · idle animation · review/onion-audit/adjacent-f04-f05.png
Additional output · review/onion-audit/adjacent-f05-f06.png
Aerwyn Academy Wind Duelist · idle animation · review/onion-audit/adjacent-f05-f06.png
Additional output · review/onion-audit/adjacent-f06-f07.png
Aerwyn Academy Wind Duelist · idle animation · review/onion-audit/adjacent-f06-f07.png
Additional output · review/onion-audit/adjacent-f07-f08.png
Aerwyn Academy Wind Duelist · idle animation · review/onion-audit/adjacent-f07-f08.png
Additional output · review/onion-audit/adjacent-f08-f09.png
Aerwyn Academy Wind Duelist · idle animation · review/onion-audit/adjacent-f08-f09.png
Additional output · review/onion-audit/adjacent-f09-f10.png
Aerwyn Academy Wind Duelist · idle animation · review/onion-audit/adjacent-f09-f10.png
Additional output · review/onion-audit/adjacent-f10-f11.png
Aerwyn Academy Wind Duelist · idle animation · review/onion-audit/adjacent-f10-f11.png
Additional output · review/onion-audit/adjacent-f11-f12.png
Aerwyn Academy Wind Duelist · idle animation · review/onion-audit/adjacent-f11-f12.png
Additional output · review/onion-audit/f1-onion-sheet.png
Aerwyn Academy Wind Duelist · idle animation · review/onion-audit/f1-onion-sheet.png
Additional output · review/onion-audit/f1-to-f02.png
Aerwyn Academy Wind Duelist · idle animation · review/onion-audit/f1-to-f02.png
Additional output · review/onion-audit/f1-to-f03.png
Aerwyn Academy Wind Duelist · idle animation · review/onion-audit/f1-to-f03.png
Additional output · review/onion-audit/f1-to-f04.png
Aerwyn Academy Wind Duelist · idle animation · review/onion-audit/f1-to-f04.png
Additional output · review/onion-audit/f1-to-f05.png
Aerwyn Academy Wind Duelist · idle animation · review/onion-audit/f1-to-f05.png
Additional output · review/onion-audit/f1-to-f06.png
Aerwyn Academy Wind Duelist · idle animation · review/onion-audit/f1-to-f06.png
Additional output · review/onion-audit/f1-to-f07.png
Aerwyn Academy Wind Duelist · idle animation · review/onion-audit/f1-to-f07.png
Additional output · review/onion-audit/f1-to-f08.png
Aerwyn Academy Wind Duelist · idle animation · review/onion-audit/f1-to-f08.png
Additional output · review/onion-audit/f1-to-f09.png
Aerwyn Academy Wind Duelist · idle animation · review/onion-audit/f1-to-f09.png
Additional output · review/onion-audit/f1-to-f10.png
Aerwyn Academy Wind Duelist · idle animation · review/onion-audit/f1-to-f10.png
Additional output · review/onion-audit/f1-to-f11.png
Aerwyn Academy Wind Duelist · idle animation · review/onion-audit/f1-to-f11.png
Additional output · review/onion-audit/f1-to-f12.png
Aerwyn Academy Wind Duelist · idle animation · review/onion-audit/f1-to-f12.png
Full metadata
{
    "schemaVersion": "midgard-pixels.wordpress-generation.v1",
    "generationId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
    "runId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
    "title": "Aerwyn Academy Wind Duelist · idle animation",
    "createdAt": "2026-07-24T22:48:26.638621Z",
    "request": "Create a white adult human woman academy wind duelist wearing a fitted teal-and-navy academy jacket, short practical skirt, small shoulder cape, long tied ponytail, and holding a slender rapier upright in a formal salute.",
    "category": "Classes & Combat",
    "categorySlug": "classes-combat",
    "class": "Aerwyn Academy Wind Duelist",
    "gender": "woman",
    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
    "promptSha256": "0965e7f9251ef424fa12e0d85a95f88c65d770c6a904278ccb99333074e29435",
    "providerModel": "gpt-image-2-2026-04-21",
    "status": "animated-command-review-required",
    "sourcePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
    "manifest": {
        "animation": {
            "action": "idle",
            "anchorGuide": null,
            "anchorGuidePolicy": "none",
            "durationMs": 120,
            "f1ProviderModel": "gpt-image-2-2026-04-21",
            "frameCount": 12,
            "frames": [
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-prompt-txt",
                        "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/final/sprite.png",
                    "finalSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                    "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01",
                    "identityBaselineY": 924,
                    "index": 1,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "settled identity pose; motion has not started",
                    "phaseProgressPercent": 0,
                    "playbackSourceFrameIndex": 1,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/prompt.txt",
                    "promptSha256": "0965e7f9251ef424fa12e0d85a95f88c65d770c6a904278ccb99333074e29435",
                    "providerCall": true,
                    "providerFrameIndex": 1,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                    "rawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                        }
                    ],
                    "sourceFrameIndex": 1,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-prompt-txt",
                        "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/final/sprite.png",
                    "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                    "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                    "identityBaselineY": 924,
                    "index": 2,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 1,
                    "parentRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                    "phase": "one continuous whole-body out-and-back loop; first early anticipation at 17% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 17,
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/prompt.txt",
                    "promptSha256": "2fc74d175a1c191486544d51451648e485a8e00216bdb87082d5e3cab7a8f992",
                    "providerCall": true,
                    "providerFrameIndex": 2,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                    "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                    "referenceSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                        }
                    ],
                    "sourceFrameIndex": 2,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-prompt-txt",
                        "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/final/sprite.png",
                    "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                    "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                    "identityBaselineY": 924,
                    "index": 3,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 2,
                    "parentRawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 33% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 33,
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/prompt.txt",
                    "promptSha256": "c6530e35c577c19544706df38ee235f4537e8d198737ed227ae631c3af4fb29d",
                    "providerCall": true,
                    "providerFrameIndex": 3,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                    "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                    "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                            "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                        }
                    ],
                    "sourceFrameIndex": 3,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-prompt-txt",
                        "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/final/sprite.png",
                    "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                    "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                    "identityBaselineY": 924,
                    "index": 4,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 3,
                    "parentRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 50% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 50,
                    "playbackSourceFrameIndex": 4,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/prompt.txt",
                    "promptSha256": "53bc2204d52464cecd7fdfa91596ae93b43facdbe0d5303215b18db813048a80",
                    "providerCall": true,
                    "providerFrameIndex": 4,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                    "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                    "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                            "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                        }
                    ],
                    "sourceFrameIndex": 4,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-prompt-txt",
                        "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/final/sprite.png",
                    "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                    "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                    "identityBaselineY": 924,
                    "index": 5,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 4,
                    "parentRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 67% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 67,
                    "playbackSourceFrameIndex": 5,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/prompt.txt",
                    "promptSha256": "ec2b156390613356d0744e0ff9b0933a2a962ec3ba4a590c603c2b855a5ce8de",
                    "providerCall": true,
                    "providerFrameIndex": 5,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                    "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                    "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                            "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                        }
                    ],
                    "sourceFrameIndex": 5,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-prompt-txt",
                        "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/final/sprite.png",
                    "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                    "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                    "identityBaselineY": 924,
                    "index": 6,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 5,
                    "parentRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 83% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 83,
                    "playbackSourceFrameIndex": 6,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/prompt.txt",
                    "promptSha256": "d3914bf1f5248ab4b61eff9c0dc998eacfca8de85002d5b33e45e6baf0006172",
                    "providerCall": true,
                    "providerFrameIndex": 6,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                    "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                    "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                            "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                        }
                    ],
                    "sourceFrameIndex": 6,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-prompt-txt",
                        "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/final/sprite.png",
                    "finalSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                    "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07",
                    "identityBaselineY": 924,
                    "index": 7,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 6,
                    "parentRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                    "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: continue from Image 2 by one natural adjacent increment into the endpoint of the same motion. Do not treat 100% as permission to jump into a much wider, deeper, or more dramatic action pose. The transition from Image 2 into this peak must be visually comparable to the preceding adjacent transition. Both arms and hands, torso and hips, knees and stance, head and hair, sleeves, scarf, sash, coat, or hem finish the same connected motion together; do not introduce a new gesture. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 100,
                    "playbackSourceFrameIndex": 7,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/prompt.txt",
                    "promptSha256": "a52d32ad82ff9482b028699bb9799bf1737d6f7a43fa22ed5919f45800cf190e",
                    "providerCall": true,
                    "providerFrameIndex": 7,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/raw/source.png",
                    "rawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                    "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                            "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                        }
                    ],
                    "sourceFrameIndex": 7,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-prompt-txt",
                        "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-receipt-json"
                    },
                    "byteIdentityVerified": true,
                    "durationMs": 120,
                    "exactByteReuse": true,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/final/sprite.png",
                    "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                    "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08",
                    "identityBaselineY": 924,
                    "index": 8,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "one continuous whole-body out-and-back loop; return transition with exactly 83% of the peak displacement still remaining: move every declared part about 17% of the distance from its Image 2 position toward its Image 1 position, leaving 83% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 83,
                    "playbackPreviousFrameIndex": 7,
                    "playbackPreviousRawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                    "playbackSourceFrameIndex": 6,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/prompt.txt",
                    "promptSha256": "856b4f7599ec3c28bc5593fa2e6eda4b6277489ec877e5a45172dcd2286aba47",
                    "providerCall": false,
                    "providerFrameIndex": 6,
                    "providerGenerated": false,
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/raw/source.png",
                    "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                    "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                    "references": [
                        {
                            "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                            "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                        }
                    ],
                    "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                    "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                    "sourceFrameIndex": 6,
                    "sourceProvided": false,
                    "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png"
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-prompt-txt",
                        "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-receipt-json"
                    },
                    "byteIdentityVerified": true,
                    "durationMs": 120,
                    "exactByteReuse": true,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/final/sprite.png",
                    "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                    "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09",
                    "identityBaselineY": 924,
                    "index": 9,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "one continuous whole-body out-and-back loop; return transition with exactly 67% of the peak displacement still remaining: move every declared part about 19% of the distance from its Image 2 position toward its Image 1 position, leaving 67% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 67,
                    "playbackPreviousFrameIndex": 8,
                    "playbackPreviousRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                    "playbackSourceFrameIndex": 5,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/prompt.txt",
                    "promptSha256": "341901cc1f831ac651a5f500a24fc09d7bb2115c9ad121a0095d6eab590a8f7a",
                    "providerCall": false,
                    "providerFrameIndex": 5,
                    "providerGenerated": false,
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/raw/source.png",
                    "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                    "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                    "references": [
                        {
                            "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                            "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                        }
                    ],
                    "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                    "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                    "sourceFrameIndex": 5,
                    "sourceProvided": false,
                    "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png"
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-prompt-txt",
                        "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-receipt-json"
                    },
                    "byteIdentityVerified": true,
                    "durationMs": 120,
                    "exactByteReuse": true,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/final/sprite.png",
                    "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                    "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10",
                    "identityBaselineY": 924,
                    "index": 10,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "one continuous whole-body out-and-back loop; return transition with exactly 50% of the peak displacement still remaining: move every declared part about 25% of the distance from its Image 2 position toward its Image 1 position, leaving 50% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 50,
                    "playbackPreviousFrameIndex": 9,
                    "playbackPreviousRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                    "playbackSourceFrameIndex": 4,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/prompt.txt",
                    "promptSha256": "641efe33e9ea0bd02e051c893736f706c75c4a9f818e149ffddb785d0a895a59",
                    "providerCall": false,
                    "providerFrameIndex": 4,
                    "providerGenerated": false,
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/raw/source.png",
                    "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                    "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                    "references": [
                        {
                            "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                            "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                        }
                    ],
                    "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                    "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                    "sourceFrameIndex": 4,
                    "sourceProvided": false,
                    "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png"
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-prompt-txt",
                        "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-receipt-json"
                    },
                    "byteIdentityVerified": true,
                    "durationMs": 120,
                    "exactByteReuse": true,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/final/sprite.png",
                    "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                    "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11",
                    "identityBaselineY": 924,
                    "index": 11,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "one continuous whole-body out-and-back loop; return transition with exactly 33% of the peak displacement still remaining: move every declared part about 34% of the distance from its Image 2 position toward its Image 1 position, leaving 33% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 33,
                    "playbackPreviousFrameIndex": 10,
                    "playbackPreviousRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/prompt.txt",
                    "promptSha256": "1c14e2dae0b7edc86ece544e5680d0c2f0ff5a31d77756f0111a9fa0c70a1177",
                    "providerCall": false,
                    "providerFrameIndex": 3,
                    "providerGenerated": false,
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/raw/source.png",
                    "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                    "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                    "references": [
                        {
                            "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                            "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                        }
                    ],
                    "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                    "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                    "sourceFrameIndex": 3,
                    "sourceProvided": false,
                    "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png"
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-prompt-txt",
                        "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-receipt-json"
                    },
                    "byteIdentityVerified": true,
                    "durationMs": 120,
                    "exactByteReuse": true,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/final/sprite.png",
                    "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                    "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12",
                    "identityBaselineY": 924,
                    "index": 12,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 17% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 17% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 48% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 17% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 17,
                    "playbackPreviousFrameIndex": 11,
                    "playbackPreviousRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/prompt.txt",
                    "promptSha256": "043d4f53deda55a5b5f094f998b589a0a177d33ba1112c4284629acd43191a05",
                    "providerCall": false,
                    "providerFrameIndex": 2,
                    "providerGenerated": false,
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/raw/source.png",
                    "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                    "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                    "references": [
                        {
                            "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                            "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                        }
                    ],
                    "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                    "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                    "sourceFrameIndex": 2,
                    "sourceProvided": false,
                    "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png"
                }
            ],
            "generationId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
            "ideaIdleBehaviorDeferred": null,
            "identityBaselineY": 924,
            "identityPolicy": "immutable-f1-raw-master",
            "idleBehavior": "Only the rapier, rapier hand, forearm, upper arm, ponytail tips, and short cape move. Begin with the rapier held upright in a formal fencing salute. Through smooth adjacent phases, lower and extend the rapier toward screen-left into a controlled guard at the peak. The ponytail tips and short cape make one restrained delayed follow-through. Freeze the face, head, torso, shoulders, free arm and hand, jacket, skirt, legs, boots, feet, camera, scale, and background.",
            "idleBehaviorSource": "explicit-command",
            "lockedParts": [
                "recognizable face and identity",
                "costume and equipment design",
                "fine motifs, trim, fasteners, gems, and prop markings",
                "palette family and pixel rendering language",
                "body proportions and overall scale band",
                "screen-left three-quarter facing",
                "1024x1024 canvas and flat #ff00ff background"
            ],
            "loop": true,
            "loopMode": "ping-pong",
            "movingParts": [
                "whole pose silhouette",
                "center of mass",
                "torso and hips",
                "both arms and hands",
                "knees, legs, boots, and stance",
                "hair and sleeves",
                "coat tails, dress, cape, and hem",
                "held equipment following the hands"
            ],
            "parentPolicy": "f1-plus-previous",
            "phaseProgressPercent": [
                0,
                17,
                33,
                50,
                67,
                83,
                100,
                83,
                67,
                50,
                33,
                17
            ],
            "phases": [
                "settled identity pose; motion has not started",
                "one continuous whole-body out-and-back loop; first early anticipation at 17% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; outbound transition at 33% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; outbound transition at 50% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; outbound transition at 67% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; outbound transition at 83% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; single motion peak at 100%: continue from Image 2 by one natural adjacent increment into the endpoint of the same motion. Do not treat 100% as permission to jump into a much wider, deeper, or more dramatic action pose. The transition from Image 2 into this peak must be visually comparable to the preceding adjacent transition. Both arms and hands, torso and hips, knees and stance, head and hair, sleeves, scarf, sash, coat, or hem finish the same connected motion together; do not introduce a new gesture. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; return transition with exactly 83% of the peak displacement still remaining: move every declared part about 17% of the distance from its Image 2 position toward its Image 1 position, leaving 83% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; return transition with exactly 67% of the peak displacement still remaining: move every declared part about 19% of the distance from its Image 2 position toward its Image 1 position, leaving 67% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; return transition with exactly 50% of the peak displacement still remaining: move every declared part about 25% of the distance from its Image 2 position toward its Image 1 position, leaving 50% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; return transition with exactly 33% of the peak displacement still remaining: move every declared part about 34% of the distance from its Image 2 position toward its Image 1 position, leaving 33% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; final loop-closing return with exactly 17% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 17% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 48% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 17% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
            ],
            "playbackSourceFrameIndices": [
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                6,
                5,
                4,
                3,
                2
            ],
            "posePolicy": "natural-relational",
            "preview": {
                "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--preview-animation-gif",
                "format": "derived-gif-preview",
                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/preview/animation.gif",
                "sha256": "19e58d4a26d5684d2e821ed3937ca2f5c0257acc07ae39092426c13c96c60ddd",
                "sourcePolicy": "final-frame-pngs-unchanged"
            },
            "providerCallCount": 7,
            "providerFrameCount": 7,
            "providerFrames": [
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-prompt-txt",
                        "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/final/sprite.png",
                    "finalSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                    "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01",
                    "identityBaselineY": 924,
                    "index": 1,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "settled identity pose; motion has not started",
                    "phaseProgressPercent": 0,
                    "playbackSourceFrameIndex": 1,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/prompt.txt",
                    "promptSha256": "0965e7f9251ef424fa12e0d85a95f88c65d770c6a904278ccb99333074e29435",
                    "providerCall": true,
                    "providerFrameIndex": 1,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                    "rawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                        }
                    ],
                    "sourceFrameIndex": 1,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-prompt-txt",
                        "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/final/sprite.png",
                    "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                    "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                    "identityBaselineY": 924,
                    "index": 2,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 1,
                    "parentRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                    "phase": "one continuous whole-body out-and-back loop; first early anticipation at 17% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 17,
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/prompt.txt",
                    "promptSha256": "2fc74d175a1c191486544d51451648e485a8e00216bdb87082d5e3cab7a8f992",
                    "providerCall": true,
                    "providerFrameIndex": 2,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                    "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                    "referenceSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                        }
                    ],
                    "sourceFrameIndex": 2,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-prompt-txt",
                        "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/final/sprite.png",
                    "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                    "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                    "identityBaselineY": 924,
                    "index": 3,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 2,
                    "parentRawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 33% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 33,
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/prompt.txt",
                    "promptSha256": "c6530e35c577c19544706df38ee235f4537e8d198737ed227ae631c3af4fb29d",
                    "providerCall": true,
                    "providerFrameIndex": 3,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                    "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                    "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                            "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                        }
                    ],
                    "sourceFrameIndex": 3,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-prompt-txt",
                        "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/final/sprite.png",
                    "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                    "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                    "identityBaselineY": 924,
                    "index": 4,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 3,
                    "parentRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 50% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 50,
                    "playbackSourceFrameIndex": 4,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/prompt.txt",
                    "promptSha256": "53bc2204d52464cecd7fdfa91596ae93b43facdbe0d5303215b18db813048a80",
                    "providerCall": true,
                    "providerFrameIndex": 4,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                    "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                    "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                            "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                        }
                    ],
                    "sourceFrameIndex": 4,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-prompt-txt",
                        "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/final/sprite.png",
                    "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                    "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                    "identityBaselineY": 924,
                    "index": 5,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 4,
                    "parentRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 67% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 67,
                    "playbackSourceFrameIndex": 5,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/prompt.txt",
                    "promptSha256": "ec2b156390613356d0744e0ff9b0933a2a962ec3ba4a590c603c2b855a5ce8de",
                    "providerCall": true,
                    "providerFrameIndex": 5,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                    "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                    "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                            "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                        }
                    ],
                    "sourceFrameIndex": 5,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-prompt-txt",
                        "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/final/sprite.png",
                    "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                    "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                    "identityBaselineY": 924,
                    "index": 6,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 5,
                    "parentRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 83% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 83,
                    "playbackSourceFrameIndex": 6,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/prompt.txt",
                    "promptSha256": "d3914bf1f5248ab4b61eff9c0dc998eacfca8de85002d5b33e45e6baf0006172",
                    "providerCall": true,
                    "providerFrameIndex": 6,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                    "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                    "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                            "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                        }
                    ],
                    "sourceFrameIndex": 6,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-prompt-txt",
                        "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/final/sprite.png",
                    "finalSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                    "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07",
                    "identityBaselineY": 924,
                    "index": 7,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 6,
                    "parentRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                    "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: continue from Image 2 by one natural adjacent increment into the endpoint of the same motion. Do not treat 100% as permission to jump into a much wider, deeper, or more dramatic action pose. The transition from Image 2 into this peak must be visually comparable to the preceding adjacent transition. Both arms and hands, torso and hips, knees and stance, head and hair, sleeves, scarf, sash, coat, or hem finish the same connected motion together; do not introduce a new gesture. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 100,
                    "playbackSourceFrameIndex": 7,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/prompt.txt",
                    "promptSha256": "a52d32ad82ff9482b028699bb9799bf1737d6f7a43fa22ed5919f45800cf190e",
                    "providerCall": true,
                    "providerFrameIndex": 7,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/raw/source.png",
                    "rawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                    "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                            "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                        }
                    ],
                    "sourceFrameIndex": 7,
                    "sourceProvided": false
                }
            ],
            "providerModel": "gpt-image-2-2026-04-21",
            "rootPolicy": {
                "allowedCorrection": "lossless whole-canvas integer translation only",
                "exactProviderRootRequired": false,
                "measuredAfterGeneration": true,
                "poseDependentHorizontalFootMotionPreserved": true,
                "providerConstraint": "at least one boot sole within 16px of F1 baseline"
            },
            "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
            "sourceFrameCount": 7,
            "sourceFrames": [
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-prompt-txt",
                        "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/final/sprite.png",
                    "finalSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                    "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01",
                    "identityBaselineY": 924,
                    "index": 1,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "settled identity pose; motion has not started",
                    "phaseProgressPercent": 0,
                    "playbackSourceFrameIndex": 1,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/prompt.txt",
                    "promptSha256": "0965e7f9251ef424fa12e0d85a95f88c65d770c6a904278ccb99333074e29435",
                    "providerCall": true,
                    "providerFrameIndex": 1,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                    "rawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                        }
                    ],
                    "sourceFrameIndex": 1,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-prompt-txt",
                        "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/final/sprite.png",
                    "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                    "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                    "identityBaselineY": 924,
                    "index": 2,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 1,
                    "parentRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                    "phase": "one continuous whole-body out-and-back loop; first early anticipation at 17% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 17,
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/prompt.txt",
                    "promptSha256": "2fc74d175a1c191486544d51451648e485a8e00216bdb87082d5e3cab7a8f992",
                    "providerCall": true,
                    "providerFrameIndex": 2,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                    "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                    "referenceSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                        }
                    ],
                    "sourceFrameIndex": 2,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-prompt-txt",
                        "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/final/sprite.png",
                    "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                    "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                    "identityBaselineY": 924,
                    "index": 3,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 2,
                    "parentRawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 33% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 33,
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/prompt.txt",
                    "promptSha256": "c6530e35c577c19544706df38ee235f4537e8d198737ed227ae631c3af4fb29d",
                    "providerCall": true,
                    "providerFrameIndex": 3,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                    "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                    "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                            "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                        }
                    ],
                    "sourceFrameIndex": 3,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-prompt-txt",
                        "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/final/sprite.png",
                    "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                    "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                    "identityBaselineY": 924,
                    "index": 4,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 3,
                    "parentRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 50% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 50,
                    "playbackSourceFrameIndex": 4,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/prompt.txt",
                    "promptSha256": "53bc2204d52464cecd7fdfa91596ae93b43facdbe0d5303215b18db813048a80",
                    "providerCall": true,
                    "providerFrameIndex": 4,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                    "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                    "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                            "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                        }
                    ],
                    "sourceFrameIndex": 4,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-prompt-txt",
                        "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/final/sprite.png",
                    "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                    "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                    "identityBaselineY": 924,
                    "index": 5,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 4,
                    "parentRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 67% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 67,
                    "playbackSourceFrameIndex": 5,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/prompt.txt",
                    "promptSha256": "ec2b156390613356d0744e0ff9b0933a2a962ec3ba4a590c603c2b855a5ce8de",
                    "providerCall": true,
                    "providerFrameIndex": 5,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                    "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                    "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                            "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                        }
                    ],
                    "sourceFrameIndex": 5,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-prompt-txt",
                        "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/final/sprite.png",
                    "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                    "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                    "identityBaselineY": 924,
                    "index": 6,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 5,
                    "parentRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 83% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 83,
                    "playbackSourceFrameIndex": 6,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/prompt.txt",
                    "promptSha256": "d3914bf1f5248ab4b61eff9c0dc998eacfca8de85002d5b33e45e6baf0006172",
                    "providerCall": true,
                    "providerFrameIndex": 6,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                    "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                    "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                            "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                        }
                    ],
                    "sourceFrameIndex": 6,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-prompt-txt",
                        "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/final/sprite.png",
                    "finalSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                    "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07",
                    "identityBaselineY": 924,
                    "index": 7,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 6,
                    "parentRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                    "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: continue from Image 2 by one natural adjacent increment into the endpoint of the same motion. Do not treat 100% as permission to jump into a much wider, deeper, or more dramatic action pose. The transition from Image 2 into this peak must be visually comparable to the preceding adjacent transition. Both arms and hands, torso and hips, knees and stance, head and hair, sleeves, scarf, sash, coat, or hem finish the same connected motion together; do not introduce a new gesture. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 100,
                    "playbackSourceFrameIndex": 7,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/prompt.txt",
                    "promptSha256": "a52d32ad82ff9482b028699bb9799bf1737d6f7a43fa22ed5919f45800cf190e",
                    "providerCall": true,
                    "providerFrameIndex": 7,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/raw/source.png",
                    "rawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                    "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                            "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                        }
                    ],
                    "sourceFrameIndex": 7,
                    "sourceProvided": false
                }
            ],
            "stylePolicy": "elder-a-master"
        },
        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--manifest-json",
        "artifactIndex": {
            "artifactCount": 55,
            "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--artifact-index-json",
            "exclusions": [
                "manifest.json",
                "artifact-index.json"
            ],
            "path": "artifact-index.json",
            "sha256": "0a44982e424692244f18b67ca7ece726a1663abb479e58344778c0081e34ecc4"
        },
        "artifacts": {
            "animation": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--animation-json",
            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--final-sprite-png",
            "generationId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
            "manifest": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--manifest-json",
            "preview": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--preview-animation-gif",
            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--prompt-txt",
            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--raw-source-png",
            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--receipt-json",
            "request": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--request-json"
        },
        "category": "Classes & Combat",
        "categorySlug": "classes-combat",
        "class": "Aerwyn Academy Wind Duelist",
        "classSource": "request-title",
        "createdAt": "2026-07-24T22:48:26.638621Z",
        "final": "final/sprite.png",
        "finalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--final-sprite-png",
        "finalSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
        "frames": [
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/final/sprite.png",
                "finalSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01",
                "identityBaselineY": 924,
                "index": 1,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/prompt.txt",
                "promptSha256": "0965e7f9251ef424fa12e0d85a95f88c65d770c6a904278ccb99333074e29435",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                "rawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "sourceFrameIndex": 1,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/final/sprite.png",
                "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                "identityBaselineY": 924,
                "index": 2,
                "loopMode": "ping-pong",
                "parentFrameIndex": 1,
                "parentRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 17% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 17,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/prompt.txt",
                "promptSha256": "2fc74d175a1c191486544d51451648e485a8e00216bdb87082d5e3cab7a8f992",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                "referenceSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                    }
                ],
                "sourceFrameIndex": 2,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/final/sprite.png",
                "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                "identityBaselineY": 924,
                "index": 3,
                "loopMode": "ping-pong",
                "parentFrameIndex": 2,
                "parentRawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 33% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 33,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/prompt.txt",
                "promptSha256": "c6530e35c577c19544706df38ee235f4537e8d198737ed227ae631c3af4fb29d",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                    }
                ],
                "sourceFrameIndex": 3,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/final/sprite.png",
                "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                "identityBaselineY": 924,
                "index": 4,
                "loopMode": "ping-pong",
                "parentFrameIndex": 3,
                "parentRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 50% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 50,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/prompt.txt",
                "promptSha256": "53bc2204d52464cecd7fdfa91596ae93b43facdbe0d5303215b18db813048a80",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                    }
                ],
                "sourceFrameIndex": 4,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/final/sprite.png",
                "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                "identityBaselineY": 924,
                "index": 5,
                "loopMode": "ping-pong",
                "parentFrameIndex": 4,
                "parentRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 67% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 67,
                "playbackSourceFrameIndex": 5,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/prompt.txt",
                "promptSha256": "ec2b156390613356d0744e0ff9b0933a2a962ec3ba4a590c603c2b855a5ce8de",
                "providerCall": true,
                "providerFrameIndex": 5,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                    }
                ],
                "sourceFrameIndex": 5,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/final/sprite.png",
                "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                "identityBaselineY": 924,
                "index": 6,
                "loopMode": "ping-pong",
                "parentFrameIndex": 5,
                "parentRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 83% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 83,
                "playbackSourceFrameIndex": 6,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/prompt.txt",
                "promptSha256": "d3914bf1f5248ab4b61eff9c0dc998eacfca8de85002d5b33e45e6baf0006172",
                "providerCall": true,
                "providerFrameIndex": 6,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                    }
                ],
                "sourceFrameIndex": 6,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/final/sprite.png",
                "finalSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07",
                "identityBaselineY": 924,
                "index": 7,
                "loopMode": "ping-pong",
                "parentFrameIndex": 6,
                "parentRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: continue from Image 2 by one natural adjacent increment into the endpoint of the same motion. Do not treat 100% as permission to jump into a much wider, deeper, or more dramatic action pose. The transition from Image 2 into this peak must be visually comparable to the preceding adjacent transition. Both arms and hands, torso and hips, knees and stance, head and hair, sleeves, scarf, sash, coat, or hem finish the same connected motion together; do not introduce a new gesture. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 7,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/prompt.txt",
                "promptSha256": "a52d32ad82ff9482b028699bb9799bf1737d6f7a43fa22ed5919f45800cf190e",
                "providerCall": true,
                "providerFrameIndex": 7,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/raw/source.png",
                "rawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                    }
                ],
                "sourceFrameIndex": 7,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-receipt-json"
                },
                "byteIdentityVerified": true,
                "durationMs": 120,
                "exactByteReuse": true,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/final/sprite.png",
                "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08",
                "identityBaselineY": 924,
                "index": 8,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; return transition with exactly 83% of the peak displacement still remaining: move every declared part about 17% of the distance from its Image 2 position toward its Image 1 position, leaving 83% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 83,
                "playbackPreviousFrameIndex": 7,
                "playbackPreviousRawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                "playbackSourceFrameIndex": 6,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/prompt.txt",
                "promptSha256": "856b4f7599ec3c28bc5593fa2e6eda4b6277489ec877e5a45172dcd2286aba47",
                "providerCall": false,
                "providerFrameIndex": 6,
                "providerGenerated": false,
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/raw/source.png",
                "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                    }
                ],
                "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                "sourceFrameIndex": 6,
                "sourceProvided": false,
                "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png"
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-receipt-json"
                },
                "byteIdentityVerified": true,
                "durationMs": 120,
                "exactByteReuse": true,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/final/sprite.png",
                "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09",
                "identityBaselineY": 924,
                "index": 9,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; return transition with exactly 67% of the peak displacement still remaining: move every declared part about 19% of the distance from its Image 2 position toward its Image 1 position, leaving 67% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 67,
                "playbackPreviousFrameIndex": 8,
                "playbackPreviousRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                "playbackSourceFrameIndex": 5,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/prompt.txt",
                "promptSha256": "341901cc1f831ac651a5f500a24fc09d7bb2115c9ad121a0095d6eab590a8f7a",
                "providerCall": false,
                "providerFrameIndex": 5,
                "providerGenerated": false,
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/raw/source.png",
                "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                    }
                ],
                "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                "sourceFrameIndex": 5,
                "sourceProvided": false,
                "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png"
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-receipt-json"
                },
                "byteIdentityVerified": true,
                "durationMs": 120,
                "exactByteReuse": true,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/final/sprite.png",
                "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10",
                "identityBaselineY": 924,
                "index": 10,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; return transition with exactly 50% of the peak displacement still remaining: move every declared part about 25% of the distance from its Image 2 position toward its Image 1 position, leaving 50% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 50,
                "playbackPreviousFrameIndex": 9,
                "playbackPreviousRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                "playbackSourceFrameIndex": 4,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/prompt.txt",
                "promptSha256": "641efe33e9ea0bd02e051c893736f706c75c4a9f818e149ffddb785d0a895a59",
                "providerCall": false,
                "providerFrameIndex": 4,
                "providerGenerated": false,
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/raw/source.png",
                "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                    }
                ],
                "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                "sourceFrameIndex": 4,
                "sourceProvided": false,
                "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png"
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-receipt-json"
                },
                "byteIdentityVerified": true,
                "durationMs": 120,
                "exactByteReuse": true,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/final/sprite.png",
                "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11",
                "identityBaselineY": 924,
                "index": 11,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; return transition with exactly 33% of the peak displacement still remaining: move every declared part about 34% of the distance from its Image 2 position toward its Image 1 position, leaving 33% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 33,
                "playbackPreviousFrameIndex": 10,
                "playbackPreviousRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/prompt.txt",
                "promptSha256": "1c14e2dae0b7edc86ece544e5680d0c2f0ff5a31d77756f0111a9fa0c70a1177",
                "providerCall": false,
                "providerFrameIndex": 3,
                "providerGenerated": false,
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/raw/source.png",
                "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                    }
                ],
                "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                "sourceFrameIndex": 3,
                "sourceProvided": false,
                "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png"
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-receipt-json"
                },
                "byteIdentityVerified": true,
                "durationMs": 120,
                "exactByteReuse": true,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/final/sprite.png",
                "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12",
                "identityBaselineY": 924,
                "index": 12,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 17% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 17% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 48% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 17% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 17,
                "playbackPreviousFrameIndex": 11,
                "playbackPreviousRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/prompt.txt",
                "promptSha256": "043d4f53deda55a5b5f094f998b589a0a177d33ba1112c4284629acd43191a05",
                "providerCall": false,
                "providerFrameIndex": 2,
                "providerGenerated": false,
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/raw/source.png",
                "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                    }
                ],
                "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                "sourceFrameIndex": 2,
                "sourceProvided": false,
                "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png"
            }
        ],
        "gender": "woman",
        "genderSource": "request-text",
        "generation": {
            "anchorGuidePolicy": "none",
            "animationImageCount": 6,
            "animationModel": "gpt-image-2-2026-04-21",
            "attemptedCalls": 7,
            "completedCalls": 7,
            "f1ImageCount": 1,
            "f1Model": "gpt-image-2-2026-04-21",
            "imageCount": 7,
            "inputFidelity": "unsupported-omitted",
            "inputFidelityRequested": false,
            "loopMode": "ping-pong",
            "maximumReferenceCount": 2,
            "model": "gpt-image-2-2026-04-21",
            "operation": "chained-image-edit-plus-exact-ping-pong-reuse",
            "playbackFrameCount": 12,
            "playbackSourceFrameIndices": [
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                6,
                5,
                4,
                3,
                2
            ],
            "posePolicy": "natural-relational",
            "providerFrameCount": 7,
            "quality": "medium",
            "referenceCountsBySourceFrame": {
                "1": 1,
                "2": 1,
                "3": 2,
                "4": 2,
                "5": 2,
                "6": 2,
                "7": 2
            },
            "referenceOrderPolicy": [
                "f1RawIdentity",
                "previousRawOpaque"
            ],
            "size": "1024x1024",
            "sourceFrameCount": 7,
            "tool": "openai-image"
        },
        "generationId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
        "ideaId": null,
        "ideaSource": null,
        "ideaTitle": null,
        "postProcessing": {
            "alphaOnly": true,
            "despilled": false,
            "feathered": false,
            "filtered": false,
            "paletteReduced": false,
            "resampled": false,
            "resized": false,
            "translated": false
        },
        "prompt": "prompt.txt",
        "promptSha256": "0965e7f9251ef424fa12e0d85a95f88c65d770c6a904278ccb99333074e29435",
        "providerCallCount": 7,
        "providerFrames": [
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/final/sprite.png",
                "finalSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01",
                "identityBaselineY": 924,
                "index": 1,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/prompt.txt",
                "promptSha256": "0965e7f9251ef424fa12e0d85a95f88c65d770c6a904278ccb99333074e29435",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                "rawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "sourceFrameIndex": 1,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/final/sprite.png",
                "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                "identityBaselineY": 924,
                "index": 2,
                "loopMode": "ping-pong",
                "parentFrameIndex": 1,
                "parentRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 17% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 17,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/prompt.txt",
                "promptSha256": "2fc74d175a1c191486544d51451648e485a8e00216bdb87082d5e3cab7a8f992",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                "referenceSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                    }
                ],
                "sourceFrameIndex": 2,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/final/sprite.png",
                "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                "identityBaselineY": 924,
                "index": 3,
                "loopMode": "ping-pong",
                "parentFrameIndex": 2,
                "parentRawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 33% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 33,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/prompt.txt",
                "promptSha256": "c6530e35c577c19544706df38ee235f4537e8d198737ed227ae631c3af4fb29d",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                    }
                ],
                "sourceFrameIndex": 3,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/final/sprite.png",
                "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                "identityBaselineY": 924,
                "index": 4,
                "loopMode": "ping-pong",
                "parentFrameIndex": 3,
                "parentRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 50% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 50,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/prompt.txt",
                "promptSha256": "53bc2204d52464cecd7fdfa91596ae93b43facdbe0d5303215b18db813048a80",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                    }
                ],
                "sourceFrameIndex": 4,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/final/sprite.png",
                "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                "identityBaselineY": 924,
                "index": 5,
                "loopMode": "ping-pong",
                "parentFrameIndex": 4,
                "parentRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 67% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 67,
                "playbackSourceFrameIndex": 5,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/prompt.txt",
                "promptSha256": "ec2b156390613356d0744e0ff9b0933a2a962ec3ba4a590c603c2b855a5ce8de",
                "providerCall": true,
                "providerFrameIndex": 5,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                    }
                ],
                "sourceFrameIndex": 5,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/final/sprite.png",
                "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                "identityBaselineY": 924,
                "index": 6,
                "loopMode": "ping-pong",
                "parentFrameIndex": 5,
                "parentRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 83% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 83,
                "playbackSourceFrameIndex": 6,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/prompt.txt",
                "promptSha256": "d3914bf1f5248ab4b61eff9c0dc998eacfca8de85002d5b33e45e6baf0006172",
                "providerCall": true,
                "providerFrameIndex": 6,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                    }
                ],
                "sourceFrameIndex": 6,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/final/sprite.png",
                "finalSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07",
                "identityBaselineY": 924,
                "index": 7,
                "loopMode": "ping-pong",
                "parentFrameIndex": 6,
                "parentRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: continue from Image 2 by one natural adjacent increment into the endpoint of the same motion. Do not treat 100% as permission to jump into a much wider, deeper, or more dramatic action pose. The transition from Image 2 into this peak must be visually comparable to the preceding adjacent transition. Both arms and hands, torso and hips, knees and stance, head and hair, sleeves, scarf, sash, coat, or hem finish the same connected motion together; do not introduce a new gesture. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 7,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/prompt.txt",
                "promptSha256": "a52d32ad82ff9482b028699bb9799bf1737d6f7a43fa22ed5919f45800cf190e",
                "providerCall": true,
                "providerFrameIndex": 7,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/raw/source.png",
                "rawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                    }
                ],
                "sourceFrameIndex": 7,
                "sourceProvided": false
            }
        ],
        "raw": "raw/source.png",
        "rawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--raw-source-png",
        "rawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
        "representative": "final/sprite.png",
        "runId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
        "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
        "sourceFrames": [
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/final/sprite.png",
                "finalSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01",
                "identityBaselineY": 924,
                "index": 1,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/prompt.txt",
                "promptSha256": "0965e7f9251ef424fa12e0d85a95f88c65d770c6a904278ccb99333074e29435",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                "rawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "sourceFrameIndex": 1,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/final/sprite.png",
                "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                "identityBaselineY": 924,
                "index": 2,
                "loopMode": "ping-pong",
                "parentFrameIndex": 1,
                "parentRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 17% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 17,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/prompt.txt",
                "promptSha256": "2fc74d175a1c191486544d51451648e485a8e00216bdb87082d5e3cab7a8f992",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                "referenceSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                    }
                ],
                "sourceFrameIndex": 2,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/final/sprite.png",
                "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                "identityBaselineY": 924,
                "index": 3,
                "loopMode": "ping-pong",
                "parentFrameIndex": 2,
                "parentRawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 33% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 33,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/prompt.txt",
                "promptSha256": "c6530e35c577c19544706df38ee235f4537e8d198737ed227ae631c3af4fb29d",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                    }
                ],
                "sourceFrameIndex": 3,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/final/sprite.png",
                "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                "identityBaselineY": 924,
                "index": 4,
                "loopMode": "ping-pong",
                "parentFrameIndex": 3,
                "parentRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 50% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 50,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/prompt.txt",
                "promptSha256": "53bc2204d52464cecd7fdfa91596ae93b43facdbe0d5303215b18db813048a80",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                    }
                ],
                "sourceFrameIndex": 4,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/final/sprite.png",
                "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                "identityBaselineY": 924,
                "index": 5,
                "loopMode": "ping-pong",
                "parentFrameIndex": 4,
                "parentRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 67% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 67,
                "playbackSourceFrameIndex": 5,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/prompt.txt",
                "promptSha256": "ec2b156390613356d0744e0ff9b0933a2a962ec3ba4a590c603c2b855a5ce8de",
                "providerCall": true,
                "providerFrameIndex": 5,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                    }
                ],
                "sourceFrameIndex": 5,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/final/sprite.png",
                "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                "identityBaselineY": 924,
                "index": 6,
                "loopMode": "ping-pong",
                "parentFrameIndex": 5,
                "parentRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 83% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 83,
                "playbackSourceFrameIndex": 6,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/prompt.txt",
                "promptSha256": "d3914bf1f5248ab4b61eff9c0dc998eacfca8de85002d5b33e45e6baf0006172",
                "providerCall": true,
                "providerFrameIndex": 6,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                    }
                ],
                "sourceFrameIndex": 6,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/final/sprite.png",
                "finalSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07",
                "identityBaselineY": 924,
                "index": 7,
                "loopMode": "ping-pong",
                "parentFrameIndex": 6,
                "parentRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: continue from Image 2 by one natural adjacent increment into the endpoint of the same motion. Do not treat 100% as permission to jump into a much wider, deeper, or more dramatic action pose. The transition from Image 2 into this peak must be visually comparable to the preceding adjacent transition. Both arms and hands, torso and hips, knees and stance, head and hair, sleeves, scarf, sash, coat, or hem finish the same connected motion together; do not introduce a new gesture. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 7,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/prompt.txt",
                "promptSha256": "a52d32ad82ff9482b028699bb9799bf1737d6f7a43fa22ed5919f45800cf190e",
                "providerCall": true,
                "providerFrameIndex": 7,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/raw/source.png",
                "rawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                    }
                ],
                "sourceFrameIndex": 7,
                "sourceProvided": false
            }
        ],
        "sourceGenerationId": null,
        "status": "animated-command-review-required",
        "summary": "f1-plus-previous 12-frame idle ping-pong animation from 7 provider-generated frame(s); every playback frame preserves raw and alpha-only final evidence.",
        "title": "ragnarok-create · Aerwyn Academy Wind Duelist · idle animation",
        "userRequest": "Create a white adult human woman academy wind duelist wearing a fitted teal-and-navy academy jacket, short practical skirt, small shoulder cape, long tied ponytail, and holding a slender rapier upright in a formal salute."
    },
    "jsonArtifacts": {
        "animation.json": {
            "sha256": "9d68645c716d6d489dea5fa41adef3c9443848b687da5dd070349415be3c0654",
            "bytes": 122505,
            "value": {
                "action": "idle",
                "anchorGuide": null,
                "anchorGuidePolicy": "none",
                "durationMs": 120,
                "f1ProviderModel": "gpt-image-2-2026-04-21",
                "frameCount": 12,
                "frames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/final/sprite.png",
                        "finalSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01",
                        "identityBaselineY": 924,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/prompt.txt",
                        "promptSha256": "0965e7f9251ef424fa12e0d85a95f88c65d770c6a904278ccb99333074e29435",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "rawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/final/sprite.png",
                        "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                        "identityBaselineY": 924,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 17% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 17,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/prompt.txt",
                        "promptSha256": "2fc74d175a1c191486544d51451648e485a8e00216bdb87082d5e3cab7a8f992",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "referenceSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/final/sprite.png",
                        "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                        "identityBaselineY": 924,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 33% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 33,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/prompt.txt",
                        "promptSha256": "c6530e35c577c19544706df38ee235f4537e8d198737ed227ae631c3af4fb29d",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                                "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/final/sprite.png",
                        "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                        "identityBaselineY": 924,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 50% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 50,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/prompt.txt",
                        "promptSha256": "53bc2204d52464cecd7fdfa91596ae93b43facdbe0d5303215b18db813048a80",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                                "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/final/sprite.png",
                        "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                        "identityBaselineY": 924,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 4,
                        "parentRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 67% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 67,
                        "playbackSourceFrameIndex": 5,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/prompt.txt",
                        "promptSha256": "ec2b156390613356d0744e0ff9b0933a2a962ec3ba4a590c603c2b855a5ce8de",
                        "providerCall": true,
                        "providerFrameIndex": 5,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                                "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                            }
                        ],
                        "sourceFrameIndex": 5,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/final/sprite.png",
                        "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                        "identityBaselineY": 924,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 5,
                        "parentRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 83% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 83,
                        "playbackSourceFrameIndex": 6,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/prompt.txt",
                        "promptSha256": "d3914bf1f5248ab4b61eff9c0dc998eacfca8de85002d5b33e45e6baf0006172",
                        "providerCall": true,
                        "providerFrameIndex": 6,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                                "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                            }
                        ],
                        "sourceFrameIndex": 6,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/final/sprite.png",
                        "finalSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07",
                        "identityBaselineY": 924,
                        "index": 7,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 6,
                        "parentRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: continue from Image 2 by one natural adjacent increment into the endpoint of the same motion. Do not treat 100% as permission to jump into a much wider, deeper, or more dramatic action pose. The transition from Image 2 into this peak must be visually comparable to the preceding adjacent transition. Both arms and hands, torso and hips, knees and stance, head and hair, sleeves, scarf, sash, coat, or hem finish the same connected motion together; do not introduce a new gesture. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 7,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/prompt.txt",
                        "promptSha256": "a52d32ad82ff9482b028699bb9799bf1737d6f7a43fa22ed5919f45800cf190e",
                        "providerCall": true,
                        "providerFrameIndex": 7,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/raw/source.png",
                        "rawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                                "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                            }
                        ],
                        "sourceFrameIndex": 7,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/final/sprite.png",
                        "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08",
                        "identityBaselineY": 924,
                        "index": 8,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 83% of the peak displacement still remaining: move every declared part about 17% of the distance from its Image 2 position toward its Image 1 position, leaving 83% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 83,
                        "playbackPreviousFrameIndex": 7,
                        "playbackPreviousRawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                        "playbackSourceFrameIndex": 6,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/prompt.txt",
                        "promptSha256": "856b4f7599ec3c28bc5593fa2e6eda4b6277489ec877e5a45172dcd2286aba47",
                        "providerCall": false,
                        "providerFrameIndex": 6,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/raw/source.png",
                        "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                                "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                        "sourceFrameIndex": 6,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/final/sprite.png",
                        "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09",
                        "identityBaselineY": 924,
                        "index": 9,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 67% of the peak displacement still remaining: move every declared part about 19% of the distance from its Image 2 position toward its Image 1 position, leaving 67% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 67,
                        "playbackPreviousFrameIndex": 8,
                        "playbackPreviousRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "playbackSourceFrameIndex": 5,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/prompt.txt",
                        "promptSha256": "341901cc1f831ac651a5f500a24fc09d7bb2115c9ad121a0095d6eab590a8f7a",
                        "providerCall": false,
                        "providerFrameIndex": 5,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/raw/source.png",
                        "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                                "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                        "sourceFrameIndex": 5,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/final/sprite.png",
                        "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10",
                        "identityBaselineY": 924,
                        "index": 10,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 50% of the peak displacement still remaining: move every declared part about 25% of the distance from its Image 2 position toward its Image 1 position, leaving 50% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 50,
                        "playbackPreviousFrameIndex": 9,
                        "playbackPreviousRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/prompt.txt",
                        "promptSha256": "641efe33e9ea0bd02e051c893736f706c75c4a9f818e149ffddb785d0a895a59",
                        "providerCall": false,
                        "providerFrameIndex": 4,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/raw/source.png",
                        "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                                "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                        "sourceFrameIndex": 4,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/final/sprite.png",
                        "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11",
                        "identityBaselineY": 924,
                        "index": 11,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 33% of the peak displacement still remaining: move every declared part about 34% of the distance from its Image 2 position toward its Image 1 position, leaving 33% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 33,
                        "playbackPreviousFrameIndex": 10,
                        "playbackPreviousRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/prompt.txt",
                        "promptSha256": "1c14e2dae0b7edc86ece544e5680d0c2f0ff5a31d77756f0111a9fa0c70a1177",
                        "providerCall": false,
                        "providerFrameIndex": 3,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/raw/source.png",
                        "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                                "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                        "sourceFrameIndex": 3,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/final/sprite.png",
                        "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12",
                        "identityBaselineY": 924,
                        "index": 12,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 17% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 17% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 48% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 17% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 17,
                        "playbackPreviousFrameIndex": 11,
                        "playbackPreviousRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/prompt.txt",
                        "promptSha256": "043d4f53deda55a5b5f094f998b589a0a177d33ba1112c4284629acd43191a05",
                        "providerCall": false,
                        "providerFrameIndex": 2,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/raw/source.png",
                        "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                                "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                        "sourceFrameIndex": 2,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png"
                    }
                ],
                "generationId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "ideaIdleBehaviorDeferred": null,
                "identityBaselineY": 924,
                "identityPolicy": "immutable-f1-raw-master",
                "idleBehavior": "Only the rapier, rapier hand, forearm, upper arm, ponytail tips, and short cape move. Begin with the rapier held upright in a formal fencing salute. Through smooth adjacent phases, lower and extend the rapier toward screen-left into a controlled guard at the peak. The ponytail tips and short cape make one restrained delayed follow-through. Freeze the face, head, torso, shoulders, free arm and hand, jacket, skirt, legs, boots, feet, camera, scale, and background.",
                "idleBehaviorSource": "explicit-command",
                "lockedParts": [
                    "recognizable face and identity",
                    "costume and equipment design",
                    "fine motifs, trim, fasteners, gems, and prop markings",
                    "palette family and pixel rendering language",
                    "body proportions and overall scale band",
                    "screen-left three-quarter facing",
                    "1024x1024 canvas and flat #ff00ff background"
                ],
                "loop": true,
                "loopMode": "ping-pong",
                "movingParts": [
                    "whole pose silhouette",
                    "center of mass",
                    "torso and hips",
                    "both arms and hands",
                    "knees, legs, boots, and stance",
                    "hair and sleeves",
                    "coat tails, dress, cape, and hem",
                    "held equipment following the hands"
                ],
                "parentPolicy": "f1-plus-previous",
                "phaseProgressPercent": [
                    0,
                    17,
                    33,
                    50,
                    67,
                    83,
                    100,
                    83,
                    67,
                    50,
                    33,
                    17
                ],
                "phases": [
                    "settled identity pose; motion has not started",
                    "one continuous whole-body out-and-back loop; first early anticipation at 17% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; outbound transition at 33% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; outbound transition at 50% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; outbound transition at 67% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; outbound transition at 83% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; single motion peak at 100%: continue from Image 2 by one natural adjacent increment into the endpoint of the same motion. Do not treat 100% as permission to jump into a much wider, deeper, or more dramatic action pose. The transition from Image 2 into this peak must be visually comparable to the preceding adjacent transition. Both arms and hands, torso and hips, knees and stance, head and hair, sleeves, scarf, sash, coat, or hem finish the same connected motion together; do not introduce a new gesture. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; return transition with exactly 83% of the peak displacement still remaining: move every declared part about 17% of the distance from its Image 2 position toward its Image 1 position, leaving 83% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; return transition with exactly 67% of the peak displacement still remaining: move every declared part about 19% of the distance from its Image 2 position toward its Image 1 position, leaving 67% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; return transition with exactly 50% of the peak displacement still remaining: move every declared part about 25% of the distance from its Image 2 position toward its Image 1 position, leaving 50% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; return transition with exactly 33% of the peak displacement still remaining: move every declared part about 34% of the distance from its Image 2 position toward its Image 1 position, leaving 33% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; final loop-closing return with exactly 17% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 17% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 48% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 17% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
                ],
                "playbackSourceFrameIndices": [
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    6,
                    5,
                    4,
                    3,
                    2
                ],
                "posePolicy": "natural-relational",
                "preview": {
                    "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--preview-animation-gif",
                    "format": "derived-gif-preview",
                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/preview/animation.gif",
                    "sha256": "19e58d4a26d5684d2e821ed3937ca2f5c0257acc07ae39092426c13c96c60ddd",
                    "sourcePolicy": "final-frame-pngs-unchanged"
                },
                "providerCallCount": 7,
                "providerFrameCount": 7,
                "providerFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/final/sprite.png",
                        "finalSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01",
                        "identityBaselineY": 924,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/prompt.txt",
                        "promptSha256": "0965e7f9251ef424fa12e0d85a95f88c65d770c6a904278ccb99333074e29435",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "rawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/final/sprite.png",
                        "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                        "identityBaselineY": 924,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 17% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 17,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/prompt.txt",
                        "promptSha256": "2fc74d175a1c191486544d51451648e485a8e00216bdb87082d5e3cab7a8f992",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "referenceSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/final/sprite.png",
                        "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                        "identityBaselineY": 924,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 33% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 33,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/prompt.txt",
                        "promptSha256": "c6530e35c577c19544706df38ee235f4537e8d198737ed227ae631c3af4fb29d",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                                "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/final/sprite.png",
                        "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                        "identityBaselineY": 924,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 50% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 50,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/prompt.txt",
                        "promptSha256": "53bc2204d52464cecd7fdfa91596ae93b43facdbe0d5303215b18db813048a80",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                                "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/final/sprite.png",
                        "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                        "identityBaselineY": 924,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 4,
                        "parentRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 67% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 67,
                        "playbackSourceFrameIndex": 5,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/prompt.txt",
                        "promptSha256": "ec2b156390613356d0744e0ff9b0933a2a962ec3ba4a590c603c2b855a5ce8de",
                        "providerCall": true,
                        "providerFrameIndex": 5,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                                "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                            }
                        ],
                        "sourceFrameIndex": 5,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/final/sprite.png",
                        "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                        "identityBaselineY": 924,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 5,
                        "parentRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 83% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 83,
                        "playbackSourceFrameIndex": 6,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/prompt.txt",
                        "promptSha256": "d3914bf1f5248ab4b61eff9c0dc998eacfca8de85002d5b33e45e6baf0006172",
                        "providerCall": true,
                        "providerFrameIndex": 6,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                                "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                            }
                        ],
                        "sourceFrameIndex": 6,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/final/sprite.png",
                        "finalSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07",
                        "identityBaselineY": 924,
                        "index": 7,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 6,
                        "parentRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: continue from Image 2 by one natural adjacent increment into the endpoint of the same motion. Do not treat 100% as permission to jump into a much wider, deeper, or more dramatic action pose. The transition from Image 2 into this peak must be visually comparable to the preceding adjacent transition. Both arms and hands, torso and hips, knees and stance, head and hair, sleeves, scarf, sash, coat, or hem finish the same connected motion together; do not introduce a new gesture. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 7,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/prompt.txt",
                        "promptSha256": "a52d32ad82ff9482b028699bb9799bf1737d6f7a43fa22ed5919f45800cf190e",
                        "providerCall": true,
                        "providerFrameIndex": 7,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/raw/source.png",
                        "rawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                                "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                            }
                        ],
                        "sourceFrameIndex": 7,
                        "sourceProvided": false
                    }
                ],
                "providerModel": "gpt-image-2-2026-04-21",
                "rootPolicy": {
                    "allowedCorrection": "lossless whole-canvas integer translation only",
                    "exactProviderRootRequired": false,
                    "measuredAfterGeneration": true,
                    "poseDependentHorizontalFootMotionPreserved": true,
                    "providerConstraint": "at least one boot sole within 16px of F1 baseline"
                },
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameCount": 7,
                "sourceFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/final/sprite.png",
                        "finalSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01",
                        "identityBaselineY": 924,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/prompt.txt",
                        "promptSha256": "0965e7f9251ef424fa12e0d85a95f88c65d770c6a904278ccb99333074e29435",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "rawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/final/sprite.png",
                        "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                        "identityBaselineY": 924,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 17% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 17,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/prompt.txt",
                        "promptSha256": "2fc74d175a1c191486544d51451648e485a8e00216bdb87082d5e3cab7a8f992",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "referenceSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/final/sprite.png",
                        "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                        "identityBaselineY": 924,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 33% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 33,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/prompt.txt",
                        "promptSha256": "c6530e35c577c19544706df38ee235f4537e8d198737ed227ae631c3af4fb29d",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                                "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/final/sprite.png",
                        "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                        "identityBaselineY": 924,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 50% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 50,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/prompt.txt",
                        "promptSha256": "53bc2204d52464cecd7fdfa91596ae93b43facdbe0d5303215b18db813048a80",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                                "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/final/sprite.png",
                        "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                        "identityBaselineY": 924,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 4,
                        "parentRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 67% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 67,
                        "playbackSourceFrameIndex": 5,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/prompt.txt",
                        "promptSha256": "ec2b156390613356d0744e0ff9b0933a2a962ec3ba4a590c603c2b855a5ce8de",
                        "providerCall": true,
                        "providerFrameIndex": 5,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                                "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                            }
                        ],
                        "sourceFrameIndex": 5,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/final/sprite.png",
                        "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                        "identityBaselineY": 924,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 5,
                        "parentRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 83% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 83,
                        "playbackSourceFrameIndex": 6,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/prompt.txt",
                        "promptSha256": "d3914bf1f5248ab4b61eff9c0dc998eacfca8de85002d5b33e45e6baf0006172",
                        "providerCall": true,
                        "providerFrameIndex": 6,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                                "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                            }
                        ],
                        "sourceFrameIndex": 6,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/final/sprite.png",
                        "finalSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07",
                        "identityBaselineY": 924,
                        "index": 7,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 6,
                        "parentRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: continue from Image 2 by one natural adjacent increment into the endpoint of the same motion. Do not treat 100% as permission to jump into a much wider, deeper, or more dramatic action pose. The transition from Image 2 into this peak must be visually comparable to the preceding adjacent transition. Both arms and hands, torso and hips, knees and stance, head and hair, sleeves, scarf, sash, coat, or hem finish the same connected motion together; do not introduce a new gesture. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 7,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/prompt.txt",
                        "promptSha256": "a52d32ad82ff9482b028699bb9799bf1737d6f7a43fa22ed5919f45800cf190e",
                        "providerCall": true,
                        "providerFrameIndex": 7,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/raw/source.png",
                        "rawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                                "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                            }
                        ],
                        "sourceFrameIndex": 7,
                        "sourceProvided": false
                    }
                ],
                "stylePolicy": "elder-a-master"
            }
        },
        "artifact-index.json": {
            "sha256": "0a44982e424692244f18b67ca7ece726a1663abb479e58344778c0081e34ecc4",
            "bytes": 15648,
            "value": {
                "artifactCount": 55,
                "artifacts": [
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--animation-json",
                        "bytes": 122505,
                        "path": "animation.json",
                        "sha256": "9d68645c716d6d489dea5fa41adef3c9443848b687da5dd070349415be3c0654"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--final-sprite-png",
                        "bytes": 960372,
                        "path": "final/sprite.png",
                        "sha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-final-sprite-png",
                        "bytes": 960372,
                        "path": "frames/01/final/sprite.png",
                        "sha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-prompt-txt",
                        "bytes": 1457,
                        "path": "frames/01/prompt.txt",
                        "sha256": "0965e7f9251ef424fa12e0d85a95f88c65d770c6a904278ccb99333074e29435"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-raw-source-png",
                        "bytes": 974508,
                        "path": "frames/01/raw/source.png",
                        "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-receipt-json",
                        "bytes": 4865,
                        "path": "frames/01/receipt.json",
                        "sha256": "6413e655cb1ac15783c81abc377f8425eef4e3ac968cb494fcd63ebbaeaeb420"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                        "bytes": 1010748,
                        "path": "frames/02/final/sprite.png",
                        "sha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-prompt-txt",
                        "bytes": 3975,
                        "path": "frames/02/prompt.txt",
                        "sha256": "2fc74d175a1c191486544d51451648e485a8e00216bdb87082d5e3cab7a8f992"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                        "bytes": 1006997,
                        "path": "frames/02/raw/source.png",
                        "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-receipt-json",
                        "bytes": 5787,
                        "path": "frames/02/receipt.json",
                        "sha256": "ad296c83605d2f16a302015c50370aeb1b1370b81f5db8f88ddf77c52696539b"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                        "bytes": 1105274,
                        "path": "frames/03/final/sprite.png",
                        "sha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-prompt-txt",
                        "bytes": 4111,
                        "path": "frames/03/prompt.txt",
                        "sha256": "c6530e35c577c19544706df38ee235f4537e8d198737ed227ae631c3af4fb29d"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                        "bytes": 1119022,
                        "path": "frames/03/raw/source.png",
                        "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-receipt-json",
                        "bytes": 5982,
                        "path": "frames/03/receipt.json",
                        "sha256": "fb40d13f1f5478766423ae4c1743cbf3898d38886b5e70cad9f96e827d8f6019"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                        "bytes": 1018185,
                        "path": "frames/04/final/sprite.png",
                        "sha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-prompt-txt",
                        "bytes": 4111,
                        "path": "frames/04/prompt.txt",
                        "sha256": "53bc2204d52464cecd7fdfa91596ae93b43facdbe0d5303215b18db813048a80"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                        "bytes": 1022618,
                        "path": "frames/04/raw/source.png",
                        "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-receipt-json",
                        "bytes": 5982,
                        "path": "frames/04/receipt.json",
                        "sha256": "ecaf87a4245aac6e2426d25404ce2c1955582408523edb9eb2146d76daf4eed8"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                        "bytes": 1012012,
                        "path": "frames/05/final/sprite.png",
                        "sha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-prompt-txt",
                        "bytes": 4111,
                        "path": "frames/05/prompt.txt",
                        "sha256": "ec2b156390613356d0744e0ff9b0933a2a962ec3ba4a590c603c2b855a5ce8de"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                        "bytes": 1021745,
                        "path": "frames/05/raw/source.png",
                        "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-receipt-json",
                        "bytes": 5982,
                        "path": "frames/05/receipt.json",
                        "sha256": "44e0f7d353b2f8bca2167ca8557fed3c7e94cd28041aa063182ad11d2cf0cf81"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                        "bytes": 1013371,
                        "path": "frames/06/final/sprite.png",
                        "sha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-prompt-txt",
                        "bytes": 4111,
                        "path": "frames/06/prompt.txt",
                        "sha256": "d3914bf1f5248ab4b61eff9c0dc998eacfca8de85002d5b33e45e6baf0006172"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                        "bytes": 1018269,
                        "path": "frames/06/raw/source.png",
                        "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-receipt-json",
                        "bytes": 5982,
                        "path": "frames/06/receipt.json",
                        "sha256": "6021e18a076221598626b692f66bfa9f50e9362ea1afc22ac8cbfad98e2f4f48"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-final-sprite-png",
                        "bytes": 1024270,
                        "path": "frames/07/final/sprite.png",
                        "sha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-prompt-txt",
                        "bytes": 4112,
                        "path": "frames/07/prompt.txt",
                        "sha256": "a52d32ad82ff9482b028699bb9799bf1737d6f7a43fa22ed5919f45800cf190e"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-raw-source-png",
                        "bytes": 1028027,
                        "path": "frames/07/raw/source.png",
                        "sha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-receipt-json",
                        "bytes": 6089,
                        "path": "frames/07/receipt.json",
                        "sha256": "9edfb117c38d38f8ddab9692d973d3576bd3b388239d7a3b3fd88551cc8c8a2a"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-final-sprite-png",
                        "bytes": 1013371,
                        "path": "frames/08/final/sprite.png",
                        "sha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-prompt-txt",
                        "bytes": 126,
                        "path": "frames/08/prompt.txt",
                        "sha256": "856b4f7599ec3c28bc5593fa2e6eda4b6277489ec877e5a45172dcd2286aba47"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-raw-source-png",
                        "bytes": 1018269,
                        "path": "frames/08/raw/source.png",
                        "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-receipt-json",
                        "bytes": 4995,
                        "path": "frames/08/receipt.json",
                        "sha256": "f932bac12c1359385a3d666d4412276e02e6c57a6ec5f9d952d0937fe0323f8d"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-final-sprite-png",
                        "bytes": 1012012,
                        "path": "frames/09/final/sprite.png",
                        "sha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-prompt-txt",
                        "bytes": 126,
                        "path": "frames/09/prompt.txt",
                        "sha256": "341901cc1f831ac651a5f500a24fc09d7bb2115c9ad121a0095d6eab590a8f7a"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-raw-source-png",
                        "bytes": 1021745,
                        "path": "frames/09/raw/source.png",
                        "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-receipt-json",
                        "bytes": 4995,
                        "path": "frames/09/receipt.json",
                        "sha256": "f07de6407325fb3794451d8b950a051fbe9ef6ca62e0fff211bc90589cffe650"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-final-sprite-png",
                        "bytes": 1018185,
                        "path": "frames/10/final/sprite.png",
                        "sha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-prompt-txt",
                        "bytes": 127,
                        "path": "frames/10/prompt.txt",
                        "sha256": "641efe33e9ea0bd02e051c893736f706c75c4a9f818e149ffddb785d0a895a59"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-raw-source-png",
                        "bytes": 1022618,
                        "path": "frames/10/raw/source.png",
                        "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-receipt-json",
                        "bytes": 4996,
                        "path": "frames/10/receipt.json",
                        "sha256": "36002111d252ae3838f35e47e810926bd710e747c7266304b27dc7ed4e39e306"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-final-sprite-png",
                        "bytes": 1105274,
                        "path": "frames/11/final/sprite.png",
                        "sha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-prompt-txt",
                        "bytes": 127,
                        "path": "frames/11/prompt.txt",
                        "sha256": "1c14e2dae0b7edc86ece544e5680d0c2f0ff5a31d77756f0111a9fa0c70a1177"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-raw-source-png",
                        "bytes": 1119022,
                        "path": "frames/11/raw/source.png",
                        "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-receipt-json",
                        "bytes": 4997,
                        "path": "frames/11/receipt.json",
                        "sha256": "e51fc221d118890bd628780869af19e34a280edb5f0a08eb499166f3e8dde303"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-final-sprite-png",
                        "bytes": 1010748,
                        "path": "frames/12/final/sprite.png",
                        "sha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-prompt-txt",
                        "bytes": 127,
                        "path": "frames/12/prompt.txt",
                        "sha256": "043d4f53deda55a5b5f094f998b589a0a177d33ba1112c4284629acd43191a05"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-raw-source-png",
                        "bytes": 1006997,
                        "path": "frames/12/raw/source.png",
                        "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-receipt-json",
                        "bytes": 5586,
                        "path": "frames/12/receipt.json",
                        "sha256": "7eaf636b857663a3e65ca56e1b05b58115dca908a9fe64f6101d350801247980"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--preview-animation-gif",
                        "bytes": 1202936,
                        "path": "preview/animation.gif",
                        "sha256": "19e58d4a26d5684d2e821ed3937ca2f5c0257acc07ae39092426c13c96c60ddd"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--prompt-txt",
                        "bytes": 1457,
                        "path": "prompt.txt",
                        "sha256": "0965e7f9251ef424fa12e0d85a95f88c65d770c6a904278ccb99333074e29435"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--raw-source-png",
                        "bytes": 974508,
                        "path": "raw/source.png",
                        "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--receipt-json",
                        "bytes": 111430,
                        "path": "receipt.json",
                        "sha256": "054512c67f7285b76a9a1e928debcbca4358aed50ec7c606368de2868122de77"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--request-json",
                        "bytes": 126398,
                        "path": "request.json",
                        "sha256": "0c5ea2d2f444a578e807bacda8bdbd3725df0da9931b227c07f2183740562e02"
                    }
                ],
                "excludedSelfReferentialFiles": [
                    "manifest.json",
                    "artifact-index.json"
                ],
                "generationId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "schemaVersion": "midgard-pixels.ragnarok-artifact-index.v1"
            }
        },
        "derived/dense-body-f1-root-lock-v4/report.json": {
            "sha256": "88947904eba8a463fdf7db6a07856834298e37884bd2b0c1cdd574514617326b",
            "bytes": 28871,
            "value": {
                "frames": [
                    {
                        "after": {
                            "bodyBandX": [
                                417,
                                865
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                462,
                                172,
                                865,
                                961
                            ],
                            "bodyCentroid": [
                                677.8609554906342,
                                524.7950850661625
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 174570,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                462,
                                62,
                                865,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                266,
                                714
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                311,
                                136,
                                714,
                                925
                            ],
                            "bodyCentroid": [
                                526.8609554906342,
                                488.7950850661626
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 174570,
                            "footBandTopY": 829,
                            "footCentroidX": 579,
                            "fullBounds": [
                                311,
                                26,
                                714,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 1,
                        "output": "derived/dense-body-f1-root-lock-v4/frames/01/final/sprite.png",
                        "outputSha256": "06100125347e2b71487076fee2aa74f620b93d70eac1fc05b2019570f54304ee",
                        "source": "frames/01/final/sprite.png",
                        "sourceSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                403,
                                899
                            ],
                            "finalUniformScaleFactor": 1,
                            "integerTranslation": [
                                462,
                                62
                            ],
                            "normalizedPosition": [
                                311,
                                26
                            ],
                            "scaledSize": [
                                403,
                                899
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                311,
                                26,
                                714,
                                925
                            ],
                            "uniformScaleFactor": 1
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                437,
                                885
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                437,
                                172,
                                885,
                                961
                            ],
                            "bodyCentroid": [
                                678.8845965285313,
                                525.9361948252973
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 181537,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                137,
                                172,
                                914,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                345,
                                793
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                345,
                                139,
                                793,
                                925
                            ],
                            "bodyCentroid": [
                                587.4278117020095,
                                491.2630509603642
                            ],
                            "bodyHeight": 786,
                            "bodyPixels": 180140,
                            "footBandTopY": 830,
                            "footCentroidX": 639,
                            "fullBounds": [
                                48,
                                139,
                                822,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 2,
                        "output": "derived/dense-body-f1-root-lock-v4/frames/02/final/sprite.png",
                        "outputSha256": "378ee24fb4ff3fffbb2ef4e7127aa5befeb7e29c10e44e5509155c15389ee47e",
                        "source": "frames/02/final/sprite.png",
                        "sourceSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                777,
                                789
                            ],
                            "finalUniformScaleFactor": 1.00381679,
                            "integerTranslation": [
                                137,
                                172
                            ],
                            "normalizedPosition": [
                                -14,
                                136
                            ],
                            "scaledSize": [
                                777,
                                789
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                48,
                                139,
                                822,
                                925
                            ],
                            "uniformScaleFactor": 1.00381679
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                436,
                                884
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                436,
                                172,
                                884,
                                961
                            ],
                            "bodyCentroid": [
                                677.8751109828643,
                                531.386631004173
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 180208,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                85,
                                172,
                                895,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                338,
                                786
                            ],
                            "bodyBaselineY": 900,
                            "bodyBounds": [
                                338,
                                161,
                                786,
                                901
                            ],
                            "bodyCentroid": [
                                588.0780171798041,
                                497.84613951292835
                            ],
                            "bodyHeight": 740,
                            "bodyPixels": 161003,
                            "footBandTopY": 811,
                            "footCentroidX": 640,
                            "fullBounds": [
                                35,
                                161,
                                795,
                                901
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 3,
                        "output": "derived/dense-body-f1-root-lock-v4/frames/03/final/sprite.png",
                        "outputSha256": "d71f3e014a1548ebeea7b60425f68b1b1a19dcac6f98e38a48f63e4259b19464",
                        "source": "frames/03/final/sprite.png",
                        "sourceSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                810,
                                789
                            ],
                            "finalUniformScaleFactor": 1.06621622,
                            "integerTranslation": [
                                85,
                                172
                            ],
                            "normalizedPosition": [
                                -66,
                                136
                            ],
                            "scaledSize": [
                                810,
                                789
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                35,
                                161,
                                795,
                                901
                            ],
                            "uniformScaleFactor": 1.06621622
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                434,
                                882
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                434,
                                172,
                                882,
                                961
                            ],
                            "bodyCentroid": [
                                677.8059013756472,
                                531.6740782940411
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 179043,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                88,
                                172,
                                892,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                338,
                                786
                            ],
                            "bodyBaselineY": 902,
                            "bodyBounds": [
                                338,
                                159,
                                786,
                                903
                            ],
                            "bodyCentroid": [
                                589.2076248589252,
                                498.04608029169924
                            ],
                            "bodyHeight": 744,
                            "bodyPixels": 161262,
                            "footBandTopY": 813,
                            "footCentroidX": 641.5,
                            "fullBounds": [
                                36,
                                159,
                                794,
                                903
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 4,
                        "output": "derived/dense-body-f1-root-lock-v4/frames/04/final/sprite.png",
                        "outputSha256": "c6db1bb6e541839c44b4c25e1d6ba423a3193f00c7c317bd3ef1600f5eeb4e76",
                        "source": "frames/04/final/sprite.png",
                        "sourceSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                804,
                                789
                            ],
                            "finalUniformScaleFactor": 1.06048387,
                            "integerTranslation": [
                                88,
                                172
                            ],
                            "normalizedPosition": [
                                -63,
                                136
                            ],
                            "scaledSize": [
                                804,
                                789
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                36,
                                159,
                                794,
                                903
                            ],
                            "uniformScaleFactor": 1.06048387
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                459,
                                907
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                459,
                                172,
                                907,
                                961
                            ],
                            "bodyCentroid": [
                                688.9759675096998,
                                525.7773820907662
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 181962,
                            "footBandTopY": 865,
                            "footCentroidX": 729,
                            "fullBounds": [
                                48,
                                171,
                                937,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                377,
                                825
                            ],
                            "bodyBaselineY": 901,
                            "bodyBounds": [
                                377,
                                160,
                                825,
                                902
                            ],
                            "bodyCentroid": [
                                620.5971043098217,
                                491.810290611074
                            ],
                            "bodyHeight": 742,
                            "bodyPixels": 163139,
                            "footBandTopY": 812,
                            "footCentroidX": 663,
                            "fullBounds": [
                                22,
                                159,
                                858,
                                902
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 5,
                        "output": "derived/dense-body-f1-root-lock-v4/frames/05/final/sprite.png",
                        "outputSha256": "fcee48cc48dbd8b025c0456affaf546d3b4c67fc06ff0cfbae4b72abf119f145",
                        "source": "frames/05/final/sprite.png",
                        "sourceSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                889,
                                790
                            ],
                            "finalUniformScaleFactor": 1.06334232,
                            "integerTranslation": [
                                48,
                                171
                            ],
                            "normalizedPosition": [
                                -103,
                                135
                            ],
                            "scaledSize": [
                                889,
                                790
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                22,
                                159,
                                858,
                                902
                            ],
                            "uniformScaleFactor": 1.06334232
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                468,
                                916
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                468,
                                172,
                                916,
                                961
                            ],
                            "bodyCentroid": [
                                694.0130746405429,
                                523.1134553705845
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 183332,
                            "footBandTopY": 865,
                            "footCentroidX": 731,
                            "fullBounds": [
                                49,
                                172,
                                976,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                395,
                                843
                            ],
                            "bodyBaselineY": 901,
                            "bodyBounds": [
                                395,
                                160,
                                843,
                                902
                            ],
                            "bodyCentroid": [
                                630.8147289651396,
                                489.69033278578814
                            ],
                            "bodyHeight": 742,
                            "bodyPixels": 164370,
                            "footBandTopY": 812,
                            "footCentroidX": 667,
                            "fullBounds": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 6,
                        "output": "derived/dense-body-f1-root-lock-v4/frames/06/final/sprite.png",
                        "outputSha256": "191eeccb599adbd0cd611d02d99fd74b5ac9447718619c9ecd6570e11c5840ae",
                        "source": "frames/06/final/sprite.png",
                        "sourceSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                927,
                                789
                            ],
                            "finalUniformScaleFactor": 1.06334232,
                            "integerTranslation": [
                                49,
                                172
                            ],
                            "normalizedPosition": [
                                -102,
                                136
                            ],
                            "scaledSize": [
                                927,
                                789
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "uniformScaleFactor": 1.06334232
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                472,
                                920
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                472,
                                172,
                                920,
                                961
                            ],
                            "bodyCentroid": [
                                695.7044115964454,
                                522.3766883332697
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 183539,
                            "footBandTopY": 865,
                            "footCentroidX": 731,
                            "fullBounds": [
                                49,
                                172,
                                976,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                414,
                                862
                            ],
                            "bodyBaselineY": 901,
                            "bodyBounds": [
                                414,
                                160,
                                862,
                                902
                            ],
                            "bodyCentroid": [
                                635.6486978581876,
                                488.81496294767766
                            ],
                            "bodyHeight": 742,
                            "bodyPixels": 164767,
                            "footBandTopY": 812,
                            "footCentroidX": 667,
                            "fullBounds": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 7,
                        "output": "derived/dense-body-f1-root-lock-v4/frames/07/final/sprite.png",
                        "outputSha256": "0e0462b73f63c0e4307cef9137d8ae9334b40f09221d9d5e5d832021d0d2cc5e",
                        "source": "frames/07/final/sprite.png",
                        "sourceSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                927,
                                789
                            ],
                            "finalUniformScaleFactor": 1.06334232,
                            "integerTranslation": [
                                49,
                                172
                            ],
                            "normalizedPosition": [
                                -102,
                                136
                            ],
                            "scaledSize": [
                                927,
                                789
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "uniformScaleFactor": 1.06334232
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                468,
                                916
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                468,
                                172,
                                916,
                                961
                            ],
                            "bodyCentroid": [
                                694.0130746405429,
                                523.1134553705845
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 183332,
                            "footBandTopY": 865,
                            "footCentroidX": 731,
                            "fullBounds": [
                                49,
                                172,
                                976,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                395,
                                843
                            ],
                            "bodyBaselineY": 901,
                            "bodyBounds": [
                                395,
                                160,
                                843,
                                902
                            ],
                            "bodyCentroid": [
                                630.8147289651396,
                                489.69033278578814
                            ],
                            "bodyHeight": 742,
                            "bodyPixels": 164370,
                            "footBandTopY": 812,
                            "footCentroidX": 667,
                            "fullBounds": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 8,
                        "output": "derived/dense-body-f1-root-lock-v4/frames/08/final/sprite.png",
                        "outputSha256": "191eeccb599adbd0cd611d02d99fd74b5ac9447718619c9ecd6570e11c5840ae",
                        "source": "frames/08/final/sprite.png",
                        "sourceSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                927,
                                789
                            ],
                            "finalUniformScaleFactor": 1.06334232,
                            "integerTranslation": [
                                49,
                                172
                            ],
                            "normalizedPosition": [
                                -102,
                                136
                            ],
                            "scaledSize": [
                                927,
                                789
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "uniformScaleFactor": 1.06334232
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                459,
                                907
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                459,
                                172,
                                907,
                                961
                            ],
                            "bodyCentroid": [
                                688.9759675096998,
                                525.7773820907662
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 181962,
                            "footBandTopY": 865,
                            "footCentroidX": 729,
                            "fullBounds": [
                                48,
                                171,
                                937,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                377,
                                825
                            ],
                            "bodyBaselineY": 901,
                            "bodyBounds": [
                                377,
                                160,
                                825,
                                902
                            ],
                            "bodyCentroid": [
                                620.5971043098217,
                                491.810290611074
                            ],
                            "bodyHeight": 742,
                            "bodyPixels": 163139,
                            "footBandTopY": 812,
                            "footCentroidX": 663,
                            "fullBounds": [
                                22,
                                159,
                                858,
                                902
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 9,
                        "output": "derived/dense-body-f1-root-lock-v4/frames/09/final/sprite.png",
                        "outputSha256": "fcee48cc48dbd8b025c0456affaf546d3b4c67fc06ff0cfbae4b72abf119f145",
                        "source": "frames/09/final/sprite.png",
                        "sourceSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                889,
                                790
                            ],
                            "finalUniformScaleFactor": 1.06334232,
                            "integerTranslation": [
                                48,
                                171
                            ],
                            "normalizedPosition": [
                                -103,
                                135
                            ],
                            "scaledSize": [
                                889,
                                790
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                22,
                                159,
                                858,
                                902
                            ],
                            "uniformScaleFactor": 1.06334232
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                434,
                                882
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                434,
                                172,
                                882,
                                961
                            ],
                            "bodyCentroid": [
                                677.8059013756472,
                                531.6740782940411
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 179043,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                88,
                                172,
                                892,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                338,
                                786
                            ],
                            "bodyBaselineY": 902,
                            "bodyBounds": [
                                338,
                                159,
                                786,
                                903
                            ],
                            "bodyCentroid": [
                                589.2076248589252,
                                498.04608029169924
                            ],
                            "bodyHeight": 744,
                            "bodyPixels": 161262,
                            "footBandTopY": 813,
                            "footCentroidX": 641.5,
                            "fullBounds": [
                                36,
                                159,
                                794,
                                903
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 10,
                        "output": "derived/dense-body-f1-root-lock-v4/frames/10/final/sprite.png",
                        "outputSha256": "c6db1bb6e541839c44b4c25e1d6ba423a3193f00c7c317bd3ef1600f5eeb4e76",
                        "source": "frames/10/final/sprite.png",
                        "sourceSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                804,
                                789
                            ],
                            "finalUniformScaleFactor": 1.06048387,
                            "integerTranslation": [
                                88,
                                172
                            ],
                            "normalizedPosition": [
                                -63,
                                136
                            ],
                            "scaledSize": [
                                804,
                                789
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                36,
                                159,
                                794,
                                903
                            ],
                            "uniformScaleFactor": 1.06048387
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                436,
                                884
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                436,
                                172,
                                884,
                                961
                            ],
                            "bodyCentroid": [
                                677.8751109828643,
                                531.386631004173
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 180208,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                85,
                                172,
                                895,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                338,
                                786
                            ],
                            "bodyBaselineY": 900,
                            "bodyBounds": [
                                338,
                                161,
                                786,
                                901
                            ],
                            "bodyCentroid": [
                                588.0780171798041,
                                497.84613951292835
                            ],
                            "bodyHeight": 740,
                            "bodyPixels": 161003,
                            "footBandTopY": 811,
                            "footCentroidX": 640,
                            "fullBounds": [
                                35,
                                161,
                                795,
                                901
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 11,
                        "output": "derived/dense-body-f1-root-lock-v4/frames/11/final/sprite.png",
                        "outputSha256": "d71f3e014a1548ebeea7b60425f68b1b1a19dcac6f98e38a48f63e4259b19464",
                        "source": "frames/11/final/sprite.png",
                        "sourceSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                810,
                                789
                            ],
                            "finalUniformScaleFactor": 1.06621622,
                            "integerTranslation": [
                                85,
                                172
                            ],
                            "normalizedPosition": [
                                -66,
                                136
                            ],
                            "scaledSize": [
                                810,
                                789
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                35,
                                161,
                                795,
                                901
                            ],
                            "uniformScaleFactor": 1.06621622
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                437,
                                885
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                437,
                                172,
                                885,
                                961
                            ],
                            "bodyCentroid": [
                                678.8845965285313,
                                525.9361948252973
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 181537,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                137,
                                172,
                                914,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                345,
                                793
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                345,
                                139,
                                793,
                                925
                            ],
                            "bodyCentroid": [
                                587.4278117020095,
                                491.2630509603642
                            ],
                            "bodyHeight": 786,
                            "bodyPixels": 180140,
                            "footBandTopY": 830,
                            "footCentroidX": 639,
                            "fullBounds": [
                                48,
                                139,
                                822,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.05,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 12,
                        "output": "derived/dense-body-f1-root-lock-v4/frames/12/final/sprite.png",
                        "outputSha256": "378ee24fb4ff3fffbb2ef4e7127aa5befeb7e29c10e44e5509155c15389ee47e",
                        "source": "frames/12/final/sprite.png",
                        "sourceSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                777,
                                789
                            ],
                            "finalUniformScaleFactor": 1.00381679,
                            "integerTranslation": [
                                137,
                                172
                            ],
                            "normalizedPosition": [
                                -14,
                                136
                            ],
                            "scaledSize": [
                                777,
                                789
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                48,
                                139,
                                822,
                                925
                            ],
                            "uniformScaleFactor": 1.00381679
                        }
                    }
                ],
                "policy": {
                    "bodyPartCutting": false,
                    "filter": false,
                    "horizontalRootAuthority": "lower-foot-band median x",
                    "originalFramesPreserved": true,
                    "paletteReduction": false,
                    "perFrameScaleAuthority": "F1 central-body height",
                    "repaint": false,
                    "resampling": "nearest-neighbor",
                    "sequenceEnvelope": "union of normalized full-sprite bounds",
                    "sequenceScale": "one shared fit scale applied equally to every normalized frame",
                    "stretch": false,
                    "translation": "whole-sprite integer x/y only",
                    "uniformScaleOnly": true,
                    "verticalRootAuthority": "opaque baseline"
                },
                "preview": {
                    "path": "derived/dense-body-f1-root-lock-v4/preview/animation.gif",
                    "sha256": "36b4f2c483131cad93da1a63a7073c9e000441d9c70b1ae4aed1049bb06b3487"
                },
                "schemaVersion": "midgard-pixels.sequence-envelope-root-lock.v1",
                "sequence": {
                    "canvasSize": [
                        1024,
                        1024
                    ],
                    "normalizedUnionBounds": [
                        -103,
                        26,
                        825,
                        925
                    ],
                    "normalizedUnionSize": [
                        928,
                        899
                    ],
                    "padding": 8,
                    "sharedUniformScaleFactor": 1
                },
                "sourceRunId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "status": "derived-experiment-owner-review-required",
                "target": {
                    "bodyBandX": [
                        266,
                        714
                    ],
                    "bodyBaselineY": 924,
                    "bodyBounds": [
                        311,
                        136,
                        714,
                        925
                    ],
                    "bodyCentroid": [
                        526.8609554906342,
                        488.7950850661626
                    ],
                    "bodyHeight": 789,
                    "bodyPixels": 174570,
                    "footBandTopY": 829,
                    "footCentroidX": 579,
                    "fullBounds": [
                        311,
                        26,
                        714,
                        925
                    ],
                    "measurementPolicy": {
                        "bodyRowDensityFraction": 0.05,
                        "bodyWindowFraction": 0.4375,
                        "footBandHeightFraction": 0.12
                    }
                }
            }
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/report.json": {
            "sha256": "747da40238aa9dd9875c011a77eb49134fd0cd77cada421d4c6f2c2054a14441",
            "bytes": 14648,
            "value": {
                "artifacts": [
                    {
                        "path": "review/onion-audit/f1-to-f02.png",
                        "sha256": "5f2b9b44d62025adba9cc04edab9834d310c3f5dcddfe14beb9baf934f6dec70"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f01-f02.png",
                        "sha256": "5f2b9b44d62025adba9cc04edab9834d310c3f5dcddfe14beb9baf934f6dec70"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f03.png",
                        "sha256": "9f0d81c5f2e173750bda80499848099696843647b69e97f22a8d35061378a170"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f02-f03.png",
                        "sha256": "c33cacef399ebdd34d7ff28c97748a6cf5c548613942c3e297f59b5491773f4c"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f04.png",
                        "sha256": "32fc6916b5c8e758bd429ec8d8beb3dcd34f9677ae122f41450630193aac7418"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f03-f04.png",
                        "sha256": "7a18e7c8211ef7dd0f01a50ea8c13978133c9b3ab4f652a02ae99b73da233af5"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f05.png",
                        "sha256": "33e8027070fc35391868395e011b5e44433f0c573aaf3bda115556a0f23fff98"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f04-f05.png",
                        "sha256": "730eade21e25a6e314274fe18f0ecd7fc1c4af01010042b8db7a37a8f84c802f"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f06.png",
                        "sha256": "a316f129ff8422714dfec7fed8df26fce2171b6fa278f443aded9d74c682402c"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f05-f06.png",
                        "sha256": "24c470301074a70c25455960147591ecdb60e87cadf7b99fa4412dab8f89c95f"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f07.png",
                        "sha256": "0ca38527932cd574c90d1d8bc813987202bbf94f446ee99dff4726fccd94c669"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f06-f07.png",
                        "sha256": "978fa4757cb6d6014fdb7f258c37e109e2bc47aa188e083d024b45b61c88b03c"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f08.png",
                        "sha256": "a316f129ff8422714dfec7fed8df26fce2171b6fa278f443aded9d74c682402c"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f07-f08.png",
                        "sha256": "8c0be80e05235331bc00580d0d7e1fff671af322cc838105cd220ef96a1cacf4"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f09.png",
                        "sha256": "33e8027070fc35391868395e011b5e44433f0c573aaf3bda115556a0f23fff98"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f08-f09.png",
                        "sha256": "762d9dfcc10c376ac4ccd5a2b8cd173f3b632713c1e666a7f8e525e1298a0da0"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f10.png",
                        "sha256": "32fc6916b5c8e758bd429ec8d8beb3dcd34f9677ae122f41450630193aac7418"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f09-f10.png",
                        "sha256": "30c7f53dd4909a3e7ebd9a7509ffb10e5e092c7214fcc6f75f18f5da5bd75994"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f11.png",
                        "sha256": "9f0d81c5f2e173750bda80499848099696843647b69e97f22a8d35061378a170"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f10-f11.png",
                        "sha256": "2661b555323b4b5081a8eec58d14acc6ea2e5752bcfd1b4ea4edae1e77844b72"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f12.png",
                        "sha256": "5f2b9b44d62025adba9cc04edab9834d310c3f5dcddfe14beb9baf934f6dec70"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f11-f12.png",
                        "sha256": "b316553ff76082cd30f3ea2490a6910ffadc9b0c2cc3accf7bc1b059c3fa1ebc"
                    },
                    {
                        "path": "review/onion-audit/f1-onion-sheet.png",
                        "sha256": "77bcfa051328332c3709b996aed599ebfa861251def889860b20700e938cb01a"
                    }
                ],
                "frames": [
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1,
                        "bodyBandBounds": [
                            462,
                            172,
                            865,
                            961
                        ],
                        "bodyBandCentroid": [
                            677.8609554906342,
                            524.7950850661625
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0,
                            0
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 174570,
                        "bodyBandX": [
                            417,
                            865
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 1,
                        "fullBounds": [
                            462,
                            62,
                            865,
                            961
                        ],
                        "fullCentroid": [
                            676.17,
                            520.4843
                        ],
                        "path": "frames/01/final/sprite.png",
                        "sha256": "06100125347e2b71487076fee2aa74f620b93d70eac1fc05b2019570f54304ee"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.039909,
                        "bodyBandBounds": [
                            437,
                            172,
                            885,
                            961
                        ],
                        "bodyBandCentroid": [
                            678.8845965285313,
                            525.9361948252973
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            1.0236,
                            1.1411
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 181537,
                        "bodyBandX": [
                            437,
                            885
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 2,
                        "fullBounds": [
                            137,
                            172,
                            914,
                            961
                        ],
                        "fullCentroid": [
                            657.0673,
                            512.6515
                        ],
                        "path": "frames/02/final/sprite.png",
                        "sha256": "378ee24fb4ff3fffbb2ef4e7127aa5befeb7e29c10e44e5509155c15389ee47e"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.032296,
                        "bodyBandBounds": [
                            436,
                            172,
                            884,
                            961
                        ],
                        "bodyBandCentroid": [
                            677.8751109828643,
                            531.386631004173
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0.0142,
                            6.5915
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 180208,
                        "bodyBandX": [
                            436,
                            884
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 3,
                        "fullBounds": [
                            85,
                            172,
                            895,
                            961
                        ],
                        "fullCentroid": [
                            656.7504,
                            531.4029
                        ],
                        "path": "frames/03/final/sprite.png",
                        "sha256": "d71f3e014a1548ebeea7b60425f68b1b1a19dcac6f98e38a48f63e4259b19464"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.025623,
                        "bodyBandBounds": [
                            434,
                            172,
                            882,
                            961
                        ],
                        "bodyBandCentroid": [
                            677.8059013756472,
                            531.6740782940411
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -0.0551,
                            6.879
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 179043,
                        "bodyBandX": [
                            434,
                            882
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 4,
                        "fullBounds": [
                            88,
                            172,
                            892,
                            961
                        ],
                        "fullCentroid": [
                            657.2639,
                            532.075
                        ],
                        "path": "frames/04/final/sprite.png",
                        "sha256": "c6db1bb6e541839c44b4c25e1d6ba423a3193f00c7c317bd3ef1600f5eeb4e76"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.042344,
                        "bodyBandBounds": [
                            459,
                            172,
                            907,
                            961
                        ],
                        "bodyBandCentroid": [
                            688.9759675096998,
                            525.7773820907662
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            11.115,
                            0.9823
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 181962,
                        "bodyBandX": [
                            459,
                            907
                        ],
                        "footCentroidX": 729,
                        "footCentroidXDeltaFromF1": -1,
                        "frame": 5,
                        "fullBounds": [
                            48,
                            171,
                            937,
                            961
                        ],
                        "fullCentroid": [
                            664.5205,
                            521.8228
                        ],
                        "path": "frames/05/final/sprite.png",
                        "sha256": "fcee48cc48dbd8b025c0456affaf546d3b4c67fc06ff0cfbae4b72abf119f145"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.050192,
                        "bodyBandBounds": [
                            468,
                            172,
                            916,
                            961
                        ],
                        "bodyBandCentroid": [
                            694.0130746405429,
                            523.1134553705845
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            16.1521,
                            -1.6816
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 183332,
                        "bodyBandX": [
                            468,
                            916
                        ],
                        "footCentroidX": 731,
                        "footCentroidXDeltaFromF1": 1,
                        "frame": 6,
                        "fullBounds": [
                            49,
                            172,
                            976,
                            961
                        ],
                        "fullCentroid": [
                            672.6367,
                            517.7947
                        ],
                        "path": "frames/06/final/sprite.png",
                        "sha256": "191eeccb599adbd0cd611d02d99fd74b5ac9447718619c9ecd6570e11c5840ae"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.051378,
                        "bodyBandBounds": [
                            472,
                            172,
                            920,
                            961
                        ],
                        "bodyBandCentroid": [
                            695.7044115964454,
                            522.3766883332697
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            17.8435,
                            -2.4184
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 183539,
                        "bodyBandX": [
                            472,
                            920
                        ],
                        "footCentroidX": 731,
                        "footCentroidXDeltaFromF1": 1,
                        "frame": 7,
                        "fullBounds": [
                            49,
                            172,
                            976,
                            961
                        ],
                        "fullCentroid": [
                            674.0746,
                            517.5
                        ],
                        "path": "frames/07/final/sprite.png",
                        "sha256": "0e0462b73f63c0e4307cef9137d8ae9334b40f09221d9d5e5d832021d0d2cc5e"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.050192,
                        "bodyBandBounds": [
                            468,
                            172,
                            916,
                            961
                        ],
                        "bodyBandCentroid": [
                            694.0130746405429,
                            523.1134553705845
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            16.1521,
                            -1.6816
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 183332,
                        "bodyBandX": [
                            468,
                            916
                        ],
                        "footCentroidX": 731,
                        "footCentroidXDeltaFromF1": 1,
                        "frame": 8,
                        "fullBounds": [
                            49,
                            172,
                            976,
                            961
                        ],
                        "fullCentroid": [
                            672.6367,
                            517.7947
                        ],
                        "path": "frames/08/final/sprite.png",
                        "sha256": "191eeccb599adbd0cd611d02d99fd74b5ac9447718619c9ecd6570e11c5840ae"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.042344,
                        "bodyBandBounds": [
                            459,
                            172,
                            907,
                            961
                        ],
                        "bodyBandCentroid": [
                            688.9759675096998,
                            525.7773820907662
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            11.115,
                            0.9823
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 181962,
                        "bodyBandX": [
                            459,
                            907
                        ],
                        "footCentroidX": 729,
                        "footCentroidXDeltaFromF1": -1,
                        "frame": 9,
                        "fullBounds": [
                            48,
                            171,
                            937,
                            961
                        ],
                        "fullCentroid": [
                            664.5205,
                            521.8228
                        ],
                        "path": "frames/09/final/sprite.png",
                        "sha256": "fcee48cc48dbd8b025c0456affaf546d3b4c67fc06ff0cfbae4b72abf119f145"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.025623,
                        "bodyBandBounds": [
                            434,
                            172,
                            882,
                            961
                        ],
                        "bodyBandCentroid": [
                            677.8059013756472,
                            531.6740782940411
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -0.0551,
                            6.879
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 179043,
                        "bodyBandX": [
                            434,
                            882
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 10,
                        "fullBounds": [
                            88,
                            172,
                            892,
                            961
                        ],
                        "fullCentroid": [
                            657.2639,
                            532.075
                        ],
                        "path": "frames/10/final/sprite.png",
                        "sha256": "c6db1bb6e541839c44b4c25e1d6ba423a3193f00c7c317bd3ef1600f5eeb4e76"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.032296,
                        "bodyBandBounds": [
                            436,
                            172,
                            884,
                            961
                        ],
                        "bodyBandCentroid": [
                            677.8751109828643,
                            531.386631004173
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0.0142,
                            6.5915
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 180208,
                        "bodyBandX": [
                            436,
                            884
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 11,
                        "fullBounds": [
                            85,
                            172,
                            895,
                            961
                        ],
                        "fullCentroid": [
                            656.7504,
                            531.4029
                        ],
                        "path": "frames/11/final/sprite.png",
                        "sha256": "d71f3e014a1548ebeea7b60425f68b1b1a19dcac6f98e38a48f63e4259b19464"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.039909,
                        "bodyBandBounds": [
                            437,
                            172,
                            885,
                            961
                        ],
                        "bodyBandCentroid": [
                            678.8845965285313,
                            525.9361948252973
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            1.0236,
                            1.1411
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 181537,
                        "bodyBandX": [
                            437,
                            885
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 12,
                        "fullBounds": [
                            137,
                            172,
                            914,
                            961
                        ],
                        "fullCentroid": [
                            657.0673,
                            512.6515
                        ],
                        "path": "frames/12/final/sprite.png",
                        "sha256": "378ee24fb4ff3fffbb2ef4e7127aa5befeb7e29c10e44e5509155c15389ee47e"
                    }
                ],
                "measurement": {
                    "bodyBandDerivedFrom": "per-frame maximum-alpha fixed-width body window with dense-row gating; see measurementPolicy",
                    "canvas": [
                        1024,
                        1024
                    ],
                    "measurementPolicy": {
                        "bodyRowDensityFraction": 0.05,
                        "bodyWindowFraction": 0.4375,
                        "footBandHeightFraction": 0.12
                    },
                    "onionColors": {
                        "background": "#10131d",
                        "comparisonOnly": "#24e0ee",
                        "f1Only": "#ff3399",
                        "shared": "#f6f1e7"
                    }
                },
                "runId": "dense-body-f1-root-lock-v4",
                "schemaVersion": "midgard-pixels.generation-onion-audit.v1",
                "summary": {
                    "baselineRangePx": 0,
                    "maximumAbsoluteBodyCentroidXDriftPx": 17.8435,
                    "maximumAbsoluteFootRootXDriftPx": 1,
                    "minimumBodyAreaRatioToF1": 1,
                    "minimumBodyHeightRatioToF1": 1,
                    "providerLateralDriftDetected": false,
                    "providerScaleDriftDetected": false
                }
            }
        },
        "derived/dense-body-f1-root-lock-v5/report.json": {
            "sha256": "7c8b2f574cbc18451afb4abe8101b8e4bacb979d6fae343b2d11312dd8a1275d",
            "bytes": 28831,
            "value": {
                "frames": [
                    {
                        "after": {
                            "bodyBandX": [
                                417,
                                865
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                462,
                                172,
                                865,
                                961
                            ],
                            "bodyCentroid": [
                                677.8609554906342,
                                524.7950850661625
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 174570,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                462,
                                62,
                                865,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                266,
                                714
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                311,
                                136,
                                714,
                                925
                            ],
                            "bodyCentroid": [
                                526.8609554906342,
                                488.7950850661626
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 174570,
                            "footBandTopY": 829,
                            "footCentroidX": 579,
                            "fullBounds": [
                                311,
                                26,
                                714,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 1,
                        "output": "derived/dense-body-f1-root-lock-v5/frames/01/final/sprite.png",
                        "outputSha256": "06100125347e2b71487076fee2aa74f620b93d70eac1fc05b2019570f54304ee",
                        "source": "frames/01/final/sprite.png",
                        "sourceSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                403,
                                899
                            ],
                            "finalUniformScaleFactor": 1,
                            "integerTranslation": [
                                462,
                                62
                            ],
                            "normalizedPosition": [
                                311,
                                26
                            ],
                            "scaledSize": [
                                403,
                                899
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                311,
                                26,
                                714,
                                925
                            ],
                            "uniformScaleFactor": 1
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                438,
                                886
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                438,
                                172,
                                886,
                                961
                            ],
                            "bodyCentroid": [
                                678.4914231240638,
                                523.461854827727
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 183575,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                133,
                                167,
                                915,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                345,
                                793
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                345,
                                144,
                                793,
                                925
                            ],
                            "bodyCentroid": [
                                587.3784156193398,
                                491.5705181629274
                            ],
                            "bodyHeight": 781,
                            "bodyPixels": 179982,
                            "footBandTopY": 830,
                            "footCentroidX": 639,
                            "fullBounds": [
                                48,
                                139,
                                822,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 2,
                        "output": "derived/dense-body-f1-root-lock-v5/frames/02/final/sprite.png",
                        "outputSha256": "ede2292f77b4af305456cf6f9c9cb063e2d08c94859fb12fe0ed20df7b891586",
                        "source": "frames/02/final/sprite.png",
                        "sourceSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                782,
                                794
                            ],
                            "finalUniformScaleFactor": 1.01024328,
                            "integerTranslation": [
                                133,
                                167
                            ],
                            "normalizedPosition": [
                                -18,
                                131
                            ],
                            "scaledSize": [
                                782,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                48,
                                139,
                                822,
                                925
                            ],
                            "uniformScaleFactor": 1.01024328
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                436,
                                884
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                436,
                                172,
                                884,
                                961
                            ],
                            "bodyCentroid": [
                                678.221588415972,
                                529.0891673979816
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 182320,
                            "footBandTopY": 865,
                            "footCentroidX": 731,
                            "fullBounds": [
                                81,
                                167,
                                897,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                338,
                                786
                            ],
                            "bodyBaselineY": 900,
                            "bodyBounds": [
                                338,
                                166,
                                786,
                                901
                            ],
                            "bodyCentroid": [
                                588.021795891978,
                                498.15211120505296
                            ],
                            "bodyHeight": 735,
                            "bodyPixels": 160856,
                            "footBandTopY": 812,
                            "footCentroidX": 640,
                            "fullBounds": [
                                35,
                                161,
                                795,
                                901
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 3,
                        "output": "derived/dense-body-f1-root-lock-v5/frames/03/final/sprite.png",
                        "outputSha256": "decdd31dcf88d79b5d42d5bab35a1deba68ee0a8621d2408987c78e236d6311e",
                        "source": "frames/03/final/sprite.png",
                        "sourceSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                816,
                                794
                            ],
                            "finalUniformScaleFactor": 1.07346939,
                            "integerTranslation": [
                                81,
                                167
                            ],
                            "normalizedPosition": [
                                -70,
                                131
                            ],
                            "scaledSize": [
                                816,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                35,
                                161,
                                795,
                                901
                            ],
                            "uniformScaleFactor": 1.07346939
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                435,
                                883
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                435,
                                172,
                                883,
                                961
                            ],
                            "bodyCentroid": [
                                677.749002948286,
                                529.1568731573212
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 180783,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                84,
                                167,
                                893,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                338,
                                786
                            ],
                            "bodyBaselineY": 902,
                            "bodyBounds": [
                                338,
                                164,
                                786,
                                903
                            ],
                            "bodyCentroid": [
                                589.1519941905932,
                                498.34723618714236
                            ],
                            "bodyHeight": 739,
                            "bodyPixels": 161118,
                            "footBandTopY": 813,
                            "footCentroidX": 641.5,
                            "fullBounds": [
                                36,
                                159,
                                794,
                                903
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 4,
                        "output": "derived/dense-body-f1-root-lock-v5/frames/04/final/sprite.png",
                        "outputSha256": "ddcf24b70b44956b3a5d9a56b950d6152469be120c4cd85c873f9f064b77f4b0",
                        "source": "frames/04/final/sprite.png",
                        "sourceSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                809,
                                794
                            ],
                            "finalUniformScaleFactor": 1.067659,
                            "integerTranslation": [
                                84,
                                167
                            ],
                            "normalizedPosition": [
                                -67,
                                131
                            ],
                            "scaledSize": [
                                809,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                36,
                                159,
                                794,
                                903
                            ],
                            "uniformScaleFactor": 1.067659
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                460,
                                908
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                460,
                                172,
                                908,
                                961
                            ],
                            "bodyCentroid": [
                                689.6176978237078,
                                523.8034912147924
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 183661,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                45,
                                167,
                                939,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                377,
                                825
                            ],
                            "bodyBaselineY": 901,
                            "bodyBounds": [
                                377,
                                164,
                                825,
                                902
                            ],
                            "bodyCentroid": [
                                620.5555535108543,
                                492.0453064904952
                            ],
                            "bodyHeight": 738,
                            "bodyPixels": 163023,
                            "footBandTopY": 812,
                            "footCentroidX": 663,
                            "fullBounds": [
                                22,
                                159,
                                858,
                                902
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 5,
                        "output": "derived/dense-body-f1-root-lock-v5/frames/05/final/sprite.png",
                        "outputSha256": "e597e98e9ceabb5085577ff1615ebf8b0a6d41f155dd1c270e1a896a7c20140e",
                        "source": "frames/05/final/sprite.png",
                        "sourceSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                894,
                                794
                            ],
                            "finalUniformScaleFactor": 1.06910569,
                            "integerTranslation": [
                                45,
                                167
                            ],
                            "normalizedPosition": [
                                -106,
                                131
                            ],
                            "scaledSize": [
                                894,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                22,
                                159,
                                858,
                                902
                            ],
                            "uniformScaleFactor": 1.06910569
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                469,
                                917
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                469,
                                172,
                                917,
                                961
                            ],
                            "bodyCentroid": [
                                694.8496286861534,
                                520.6024944950564
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 185288,
                            "footBandTopY": 865,
                            "footCentroidX": 732,
                            "fullBounds": [
                                45,
                                167,
                                979,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                395,
                                843
                            ],
                            "bodyBaselineY": 901,
                            "bodyBounds": [
                                395,
                                165,
                                843,
                                902
                            ],
                            "bodyCentroid": [
                                630.7639099484219,
                                489.9954998568967
                            ],
                            "bodyHeight": 737,
                            "bodyPixels": 164217,
                            "footBandTopY": 813,
                            "footCentroidX": 667,
                            "fullBounds": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 6,
                        "output": "derived/dense-body-f1-root-lock-v5/frames/06/final/sprite.png",
                        "outputSha256": "830c1486b278c72537df0b993a7b3e736693f7d93efd61ab52c594411005a58f",
                        "source": "frames/06/final/sprite.png",
                        "sourceSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                934,
                                794
                            ],
                            "finalUniformScaleFactor": 1.07055631,
                            "integerTranslation": [
                                45,
                                167
                            ],
                            "normalizedPosition": [
                                -106,
                                131
                            ],
                            "scaledSize": [
                                934,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "uniformScaleFactor": 1.07055631
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                474,
                                922
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                474,
                                172,
                                922,
                                961
                            ],
                            "bodyCentroid": [
                                696.9037363134753,
                                519.6427224329684
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 185584,
                            "footBandTopY": 865,
                            "footCentroidX": 733,
                            "fullBounds": [
                                45,
                                167,
                                979,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                414,
                                862
                            ],
                            "bodyBaselineY": 901,
                            "bodyBounds": [
                                414,
                                165,
                                862,
                                902
                            ],
                            "bodyCentroid": [
                                635.6041769176097,
                                489.1086569594032
                            ],
                            "bodyHeight": 737,
                            "bodyPixels": 164619,
                            "footBandTopY": 813,
                            "footCentroidX": 667,
                            "fullBounds": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 7,
                        "output": "derived/dense-body-f1-root-lock-v5/frames/07/final/sprite.png",
                        "outputSha256": "49e9bb7a2d53555301b9c24495d64146b0f7bce8613b128107064ced57375cba",
                        "source": "frames/07/final/sprite.png",
                        "sourceSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                934,
                                794
                            ],
                            "finalUniformScaleFactor": 1.07055631,
                            "integerTranslation": [
                                45,
                                167
                            ],
                            "normalizedPosition": [
                                -106,
                                131
                            ],
                            "scaledSize": [
                                934,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "uniformScaleFactor": 1.07055631
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                469,
                                917
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                469,
                                172,
                                917,
                                961
                            ],
                            "bodyCentroid": [
                                694.8496286861534,
                                520.6024944950564
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 185288,
                            "footBandTopY": 865,
                            "footCentroidX": 732,
                            "fullBounds": [
                                45,
                                167,
                                979,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                395,
                                843
                            ],
                            "bodyBaselineY": 901,
                            "bodyBounds": [
                                395,
                                165,
                                843,
                                902
                            ],
                            "bodyCentroid": [
                                630.7639099484219,
                                489.9954998568967
                            ],
                            "bodyHeight": 737,
                            "bodyPixels": 164217,
                            "footBandTopY": 813,
                            "footCentroidX": 667,
                            "fullBounds": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 8,
                        "output": "derived/dense-body-f1-root-lock-v5/frames/08/final/sprite.png",
                        "outputSha256": "830c1486b278c72537df0b993a7b3e736693f7d93efd61ab52c594411005a58f",
                        "source": "frames/08/final/sprite.png",
                        "sourceSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                934,
                                794
                            ],
                            "finalUniformScaleFactor": 1.07055631,
                            "integerTranslation": [
                                45,
                                167
                            ],
                            "normalizedPosition": [
                                -106,
                                131
                            ],
                            "scaledSize": [
                                934,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "uniformScaleFactor": 1.07055631
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                460,
                                908
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                460,
                                172,
                                908,
                                961
                            ],
                            "bodyCentroid": [
                                689.6176978237078,
                                523.8034912147924
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 183661,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                45,
                                167,
                                939,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                377,
                                825
                            ],
                            "bodyBaselineY": 901,
                            "bodyBounds": [
                                377,
                                164,
                                825,
                                902
                            ],
                            "bodyCentroid": [
                                620.5555535108543,
                                492.0453064904952
                            ],
                            "bodyHeight": 738,
                            "bodyPixels": 163023,
                            "footBandTopY": 812,
                            "footCentroidX": 663,
                            "fullBounds": [
                                22,
                                159,
                                858,
                                902
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 9,
                        "output": "derived/dense-body-f1-root-lock-v5/frames/09/final/sprite.png",
                        "outputSha256": "e597e98e9ceabb5085577ff1615ebf8b0a6d41f155dd1c270e1a896a7c20140e",
                        "source": "frames/09/final/sprite.png",
                        "sourceSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                894,
                                794
                            ],
                            "finalUniformScaleFactor": 1.06910569,
                            "integerTranslation": [
                                45,
                                167
                            ],
                            "normalizedPosition": [
                                -106,
                                131
                            ],
                            "scaledSize": [
                                894,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                22,
                                159,
                                858,
                                902
                            ],
                            "uniformScaleFactor": 1.06910569
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                435,
                                883
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                435,
                                172,
                                883,
                                961
                            ],
                            "bodyCentroid": [
                                677.749002948286,
                                529.1568731573212
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 180783,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                84,
                                167,
                                893,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                338,
                                786
                            ],
                            "bodyBaselineY": 902,
                            "bodyBounds": [
                                338,
                                164,
                                786,
                                903
                            ],
                            "bodyCentroid": [
                                589.1519941905932,
                                498.34723618714236
                            ],
                            "bodyHeight": 739,
                            "bodyPixels": 161118,
                            "footBandTopY": 813,
                            "footCentroidX": 641.5,
                            "fullBounds": [
                                36,
                                159,
                                794,
                                903
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 10,
                        "output": "derived/dense-body-f1-root-lock-v5/frames/10/final/sprite.png",
                        "outputSha256": "ddcf24b70b44956b3a5d9a56b950d6152469be120c4cd85c873f9f064b77f4b0",
                        "source": "frames/10/final/sprite.png",
                        "sourceSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                809,
                                794
                            ],
                            "finalUniformScaleFactor": 1.067659,
                            "integerTranslation": [
                                84,
                                167
                            ],
                            "normalizedPosition": [
                                -67,
                                131
                            ],
                            "scaledSize": [
                                809,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                36,
                                159,
                                794,
                                903
                            ],
                            "uniformScaleFactor": 1.067659
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                436,
                                884
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                436,
                                172,
                                884,
                                961
                            ],
                            "bodyCentroid": [
                                678.221588415972,
                                529.0891673979816
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 182320,
                            "footBandTopY": 865,
                            "footCentroidX": 731,
                            "fullBounds": [
                                81,
                                167,
                                897,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                338,
                                786
                            ],
                            "bodyBaselineY": 900,
                            "bodyBounds": [
                                338,
                                166,
                                786,
                                901
                            ],
                            "bodyCentroid": [
                                588.021795891978,
                                498.15211120505296
                            ],
                            "bodyHeight": 735,
                            "bodyPixels": 160856,
                            "footBandTopY": 812,
                            "footCentroidX": 640,
                            "fullBounds": [
                                35,
                                161,
                                795,
                                901
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 11,
                        "output": "derived/dense-body-f1-root-lock-v5/frames/11/final/sprite.png",
                        "outputSha256": "decdd31dcf88d79b5d42d5bab35a1deba68ee0a8621d2408987c78e236d6311e",
                        "source": "frames/11/final/sprite.png",
                        "sourceSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                816,
                                794
                            ],
                            "finalUniformScaleFactor": 1.07346939,
                            "integerTranslation": [
                                81,
                                167
                            ],
                            "normalizedPosition": [
                                -70,
                                131
                            ],
                            "scaledSize": [
                                816,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                35,
                                161,
                                795,
                                901
                            ],
                            "uniformScaleFactor": 1.07346939
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                438,
                                886
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                438,
                                172,
                                886,
                                961
                            ],
                            "bodyCentroid": [
                                678.4914231240638,
                                523.461854827727
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 183575,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                133,
                                167,
                                915,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                345,
                                793
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                345,
                                144,
                                793,
                                925
                            ],
                            "bodyCentroid": [
                                587.3784156193398,
                                491.5705181629274
                            ],
                            "bodyHeight": 781,
                            "bodyPixels": 179982,
                            "footBandTopY": 830,
                            "footCentroidX": 639,
                            "fullBounds": [
                                48,
                                139,
                                822,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 12,
                        "output": "derived/dense-body-f1-root-lock-v5/frames/12/final/sprite.png",
                        "outputSha256": "ede2292f77b4af305456cf6f9c9cb063e2d08c94859fb12fe0ed20df7b891586",
                        "source": "frames/12/final/sprite.png",
                        "sourceSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                782,
                                794
                            ],
                            "finalUniformScaleFactor": 1.01024328,
                            "integerTranslation": [
                                133,
                                167
                            ],
                            "normalizedPosition": [
                                -18,
                                131
                            ],
                            "scaledSize": [
                                782,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                48,
                                139,
                                822,
                                925
                            ],
                            "uniformScaleFactor": 1.01024328
                        }
                    }
                ],
                "policy": {
                    "bodyPartCutting": false,
                    "filter": false,
                    "horizontalRootAuthority": "lower-foot-band median x",
                    "originalFramesPreserved": true,
                    "paletteReduction": false,
                    "perFrameScaleAuthority": "F1 central-body height",
                    "repaint": false,
                    "resampling": "nearest-neighbor",
                    "sequenceEnvelope": "union of normalized full-sprite bounds",
                    "sequenceScale": "one shared fit scale applied equally to every normalized frame",
                    "stretch": false,
                    "translation": "whole-sprite integer x/y only",
                    "uniformScaleOnly": true,
                    "verticalRootAuthority": "opaque baseline"
                },
                "preview": {
                    "path": "derived/dense-body-f1-root-lock-v5/preview/animation.gif",
                    "sha256": "0b3176663493a2450dd0249f428fc6b8cb1b4e086022c70362211615554e4df4"
                },
                "schemaVersion": "midgard-pixels.sequence-envelope-root-lock.v1",
                "sequence": {
                    "canvasSize": [
                        1024,
                        1024
                    ],
                    "normalizedUnionBounds": [
                        -106,
                        26,
                        828,
                        925
                    ],
                    "normalizedUnionSize": [
                        934,
                        899
                    ],
                    "padding": 8,
                    "sharedUniformScaleFactor": 1
                },
                "sourceRunId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "status": "derived-experiment-owner-review-required",
                "target": {
                    "bodyBandX": [
                        266,
                        714
                    ],
                    "bodyBaselineY": 924,
                    "bodyBounds": [
                        311,
                        136,
                        714,
                        925
                    ],
                    "bodyCentroid": [
                        526.8609554906342,
                        488.7950850661626
                    ],
                    "bodyHeight": 789,
                    "bodyPixels": 174570,
                    "footBandTopY": 829,
                    "footCentroidX": 579,
                    "fullBounds": [
                        311,
                        26,
                        714,
                        925
                    ],
                    "measurementPolicy": {
                        "bodyRowDensityFraction": 0.1,
                        "bodyWindowFraction": 0.4375,
                        "footBandHeightFraction": 0.12
                    }
                }
            }
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/report.json": {
            "sha256": "254783000894bfd9b01f12345b65f2dfbe8b869295c3b7b4f179c8a49c1ff682",
            "bytes": 14649,
            "value": {
                "artifacts": [
                    {
                        "path": "review/onion-audit/f1-to-f02.png",
                        "sha256": "90cc4252f61a056da81192e5b405756e9090469868a133771b936dc0660c47ef"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f01-f02.png",
                        "sha256": "90cc4252f61a056da81192e5b405756e9090469868a133771b936dc0660c47ef"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f03.png",
                        "sha256": "0f9a4e002b4bcb3aaab9fbe3bc7ffd15fd751c932398d8c499995bf9602dff6e"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f02-f03.png",
                        "sha256": "0d944ae1db92bacd22fd183ab433b35bca39e46838cdc5393ab91e50603001f9"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f04.png",
                        "sha256": "955f8be1f61b9838b8f8134264ca72db09f7095e8a4fe522cc11eb184d74e09a"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f03-f04.png",
                        "sha256": "7c698e7f4a64c16db55f2b8337e2be5a5ff71249571187d430933395b4b179fd"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f05.png",
                        "sha256": "0422378da27b14e2bdcd75d23084e8d8eb771fd73f4723575ce28f194838caf7"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f04-f05.png",
                        "sha256": "c9ec9f47c38a8720bee2cd5c406494288ff53cd1c3c6241d8c6478d99bb2ad7a"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f06.png",
                        "sha256": "0b160dc61496586f63d84ce995ec948f5861b96886042fe9e2535ef48c1fd379"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f05-f06.png",
                        "sha256": "323be330fe4ed0bc188976fdf9b973c589da04560b23132bdfc1a68526ab4b8d"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f07.png",
                        "sha256": "c6d7486caf5f719469579eb8060a2a4d11a5970df81b96f48155f6de11e6ecc9"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f06-f07.png",
                        "sha256": "f485d1439112f147f71e9d73cff05ee0c42627732a6a316472d80672d46170cb"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f08.png",
                        "sha256": "0b160dc61496586f63d84ce995ec948f5861b96886042fe9e2535ef48c1fd379"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f07-f08.png",
                        "sha256": "f7197ec37a161d0fdeff52050c2c00377b791fddabcda9671e776a65d7fb35d9"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f09.png",
                        "sha256": "0422378da27b14e2bdcd75d23084e8d8eb771fd73f4723575ce28f194838caf7"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f08-f09.png",
                        "sha256": "55a67a16e607fd1ade3b00ec0c57d97df399edeb44a07401a3f7df8dd4664e48"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f10.png",
                        "sha256": "955f8be1f61b9838b8f8134264ca72db09f7095e8a4fe522cc11eb184d74e09a"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f09-f10.png",
                        "sha256": "675e05f18577025c72e4ba454334f53c4bf6d27f7d222110593e84bb53d370e6"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f11.png",
                        "sha256": "0f9a4e002b4bcb3aaab9fbe3bc7ffd15fd751c932398d8c499995bf9602dff6e"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f10-f11.png",
                        "sha256": "f8ea3f02e0c69233bdf2e6ccb0784610f3dba2c0b6e4f36f0392115e8494a73a"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f12.png",
                        "sha256": "90cc4252f61a056da81192e5b405756e9090469868a133771b936dc0660c47ef"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f11-f12.png",
                        "sha256": "762f2df151a6a202e72983ba5fc83597e83575369116ee3a698cea01c7fd07df"
                    },
                    {
                        "path": "review/onion-audit/f1-onion-sheet.png",
                        "sha256": "42f12f26986537a0f827b39f0ed58460ad57e2cebfe2f11424a2c9e3122b89b9"
                    }
                ],
                "frames": [
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1,
                        "bodyBandBounds": [
                            462,
                            172,
                            865,
                            961
                        ],
                        "bodyBandCentroid": [
                            677.8609554906342,
                            524.7950850661625
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0,
                            0
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 174570,
                        "bodyBandX": [
                            417,
                            865
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 1,
                        "fullBounds": [
                            462,
                            62,
                            865,
                            961
                        ],
                        "fullCentroid": [
                            676.17,
                            520.4843
                        ],
                        "path": "frames/01/final/sprite.png",
                        "sha256": "06100125347e2b71487076fee2aa74f620b93d70eac1fc05b2019570f54304ee"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.051584,
                        "bodyBandBounds": [
                            438,
                            172,
                            886,
                            961
                        ],
                        "bodyBandCentroid": [
                            678.4914231240638,
                            523.461854827727
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0.6305,
                            -1.3332
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 183575,
                        "bodyBandX": [
                            438,
                            886
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 2,
                        "fullBounds": [
                            133,
                            167,
                            915,
                            961
                        ],
                        "fullCentroid": [
                            656.1735,
                            509.6381
                        ],
                        "path": "frames/02/final/sprite.png",
                        "sha256": "ede2292f77b4af305456cf6f9c9cb063e2d08c94859fb12fe0ed20df7b891586"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.044395,
                        "bodyBandBounds": [
                            436,
                            172,
                            884,
                            961
                        ],
                        "bodyBandCentroid": [
                            678.221588415972,
                            529.0891673979816
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0.3606,
                            4.2941
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 182320,
                        "bodyBandX": [
                            436,
                            884
                        ],
                        "footCentroidX": 731,
                        "footCentroidXDeltaFromF1": 1,
                        "frame": 3,
                        "fullBounds": [
                            81,
                            167,
                            897,
                            961
                        ],
                        "fullCentroid": [
                            657.0059,
                            528.7284
                        ],
                        "path": "frames/03/final/sprite.png",
                        "sha256": "decdd31dcf88d79b5d42d5bab35a1deba68ee0a8621d2408987c78e236d6311e"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.03559,
                        "bodyBandBounds": [
                            435,
                            172,
                            883,
                            961
                        ],
                        "bodyBandCentroid": [
                            677.749002948286,
                            529.1568731573212
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -0.112,
                            4.3618
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 180783,
                        "bodyBandX": [
                            435,
                            883
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 4,
                        "fullBounds": [
                            84,
                            167,
                            893,
                            961
                        ],
                        "fullCentroid": [
                            656.8584,
                            529.2579
                        ],
                        "path": "frames/04/final/sprite.png",
                        "sha256": "ddcf24b70b44956b3a5d9a56b950d6152469be120c4cd85c873f9f064b77f4b0"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.052077,
                        "bodyBandBounds": [
                            460,
                            172,
                            908,
                            961
                        ],
                        "bodyBandCentroid": [
                            689.6176978237078,
                            523.8034912147924
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            11.7567,
                            -0.9916
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 183661,
                        "bodyBandX": [
                            460,
                            908
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 5,
                        "fullBounds": [
                            45,
                            167,
                            939,
                            961
                        ],
                        "fullCentroid": [
                            664.8246,
                            519.5158
                        ],
                        "path": "frames/05/final/sprite.png",
                        "sha256": "e597e98e9ceabb5085577ff1615ebf8b0a6d41f155dd1c270e1a896a7c20140e"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.061397,
                        "bodyBandBounds": [
                            469,
                            172,
                            917,
                            961
                        ],
                        "bodyBandCentroid": [
                            694.8496286861534,
                            520.6024944950564
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            16.9887,
                            -4.1926
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 185288,
                        "bodyBandX": [
                            469,
                            917
                        ],
                        "footCentroidX": 732,
                        "footCentroidXDeltaFromF1": 2,
                        "frame": 6,
                        "fullBounds": [
                            45,
                            167,
                            979,
                            961
                        ],
                        "fullCentroid": [
                            673.2987,
                            514.8979
                        ],
                        "path": "frames/06/final/sprite.png",
                        "sha256": "830c1486b278c72537df0b993a7b3e736693f7d93efd61ab52c594411005a58f"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.063092,
                        "bodyBandBounds": [
                            474,
                            172,
                            922,
                            961
                        ],
                        "bodyBandCentroid": [
                            696.9037363134753,
                            519.6427224329684
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            19.0428,
                            -5.1524
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 185584,
                        "bodyBandX": [
                            474,
                            922
                        ],
                        "footCentroidX": 733,
                        "footCentroidXDeltaFromF1": 3,
                        "frame": 7,
                        "fullBounds": [
                            45,
                            167,
                            979,
                            961
                        ],
                        "fullCentroid": [
                            674.8366,
                            514.572
                        ],
                        "path": "frames/07/final/sprite.png",
                        "sha256": "49e9bb7a2d53555301b9c24495d64146b0f7bce8613b128107064ced57375cba"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.061397,
                        "bodyBandBounds": [
                            469,
                            172,
                            917,
                            961
                        ],
                        "bodyBandCentroid": [
                            694.8496286861534,
                            520.6024944950564
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            16.9887,
                            -4.1926
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 185288,
                        "bodyBandX": [
                            469,
                            917
                        ],
                        "footCentroidX": 732,
                        "footCentroidXDeltaFromF1": 2,
                        "frame": 8,
                        "fullBounds": [
                            45,
                            167,
                            979,
                            961
                        ],
                        "fullCentroid": [
                            673.2987,
                            514.8979
                        ],
                        "path": "frames/08/final/sprite.png",
                        "sha256": "830c1486b278c72537df0b993a7b3e736693f7d93efd61ab52c594411005a58f"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.052077,
                        "bodyBandBounds": [
                            460,
                            172,
                            908,
                            961
                        ],
                        "bodyBandCentroid": [
                            689.6176978237078,
                            523.8034912147924
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            11.7567,
                            -0.9916
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 183661,
                        "bodyBandX": [
                            460,
                            908
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 9,
                        "fullBounds": [
                            45,
                            167,
                            939,
                            961
                        ],
                        "fullCentroid": [
                            664.8246,
                            519.5158
                        ],
                        "path": "frames/09/final/sprite.png",
                        "sha256": "e597e98e9ceabb5085577ff1615ebf8b0a6d41f155dd1c270e1a896a7c20140e"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.03559,
                        "bodyBandBounds": [
                            435,
                            172,
                            883,
                            961
                        ],
                        "bodyBandCentroid": [
                            677.749002948286,
                            529.1568731573212
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -0.112,
                            4.3618
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 180783,
                        "bodyBandX": [
                            435,
                            883
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 10,
                        "fullBounds": [
                            84,
                            167,
                            893,
                            961
                        ],
                        "fullCentroid": [
                            656.8584,
                            529.2579
                        ],
                        "path": "frames/10/final/sprite.png",
                        "sha256": "ddcf24b70b44956b3a5d9a56b950d6152469be120c4cd85c873f9f064b77f4b0"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.044395,
                        "bodyBandBounds": [
                            436,
                            172,
                            884,
                            961
                        ],
                        "bodyBandCentroid": [
                            678.221588415972,
                            529.0891673979816
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0.3606,
                            4.2941
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 182320,
                        "bodyBandX": [
                            436,
                            884
                        ],
                        "footCentroidX": 731,
                        "footCentroidXDeltaFromF1": 1,
                        "frame": 11,
                        "fullBounds": [
                            81,
                            167,
                            897,
                            961
                        ],
                        "fullCentroid": [
                            657.0059,
                            528.7284
                        ],
                        "path": "frames/11/final/sprite.png",
                        "sha256": "decdd31dcf88d79b5d42d5bab35a1deba68ee0a8621d2408987c78e236d6311e"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.051584,
                        "bodyBandBounds": [
                            438,
                            172,
                            886,
                            961
                        ],
                        "bodyBandCentroid": [
                            678.4914231240638,
                            523.461854827727
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0.6305,
                            -1.3332
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 183575,
                        "bodyBandX": [
                            438,
                            886
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 12,
                        "fullBounds": [
                            133,
                            167,
                            915,
                            961
                        ],
                        "fullCentroid": [
                            656.1735,
                            509.6381
                        ],
                        "path": "frames/12/final/sprite.png",
                        "sha256": "ede2292f77b4af305456cf6f9c9cb063e2d08c94859fb12fe0ed20df7b891586"
                    }
                ],
                "measurement": {
                    "bodyBandDerivedFrom": "per-frame maximum-alpha fixed-width body window with dense-row gating; see measurementPolicy",
                    "canvas": [
                        1024,
                        1024
                    ],
                    "measurementPolicy": {
                        "bodyRowDensityFraction": 0.1,
                        "bodyWindowFraction": 0.4375,
                        "footBandHeightFraction": 0.12
                    },
                    "onionColors": {
                        "background": "#10131d",
                        "comparisonOnly": "#24e0ee",
                        "f1Only": "#ff3399",
                        "shared": "#f6f1e7"
                    }
                },
                "runId": "dense-body-f1-root-lock-v5",
                "schemaVersion": "midgard-pixels.generation-onion-audit.v1",
                "summary": {
                    "baselineRangePx": 0,
                    "maximumAbsoluteBodyCentroidXDriftPx": 19.0428,
                    "maximumAbsoluteFootRootXDriftPx": 3,
                    "minimumBodyAreaRatioToF1": 1,
                    "minimumBodyHeightRatioToF1": 1,
                    "providerLateralDriftDetected": false,
                    "providerScaleDriftDetected": false
                }
            }
        },
        "derived/dense-body-f1-root-lock-v6/report.json": {
            "sha256": "21be3c8da1ae58a4e777555b951683886e1f7b51f92fc41eb9aeacb488e4d9ff",
            "bytes": 29820,
            "value": {
                "frames": [
                    {
                        "after": {
                            "bodyBandX": [
                                417,
                                865
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                462,
                                172,
                                865,
                                961
                            ],
                            "bodyCentroid": [
                                677.8609554906342,
                                524.7950850661625
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 174570,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                462,
                                62,
                                865,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                266,
                                714
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                311,
                                136,
                                714,
                                925
                            ],
                            "bodyCentroid": [
                                526.8609554906342,
                                488.7950850661626
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 174570,
                            "footBandTopY": 829,
                            "footCentroidX": 579,
                            "fullBounds": [
                                311,
                                26,
                                714,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 1,
                        "output": "derived/dense-body-f1-root-lock-v6/frames/01/final/sprite.png",
                        "outputSha256": "06100125347e2b71487076fee2aa74f620b93d70eac1fc05b2019570f54304ee",
                        "source": "frames/01/final/sprite.png",
                        "sourceSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                403,
                                899
                            ],
                            "finalUniformScaleFactor": 1,
                            "integerTranslation": [
                                462,
                                62
                            ],
                            "normalizedPosition": [
                                311,
                                26
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                403,
                                899
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                311,
                                26,
                                714,
                                925
                            ],
                            "uniformScaleFactor": 1
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                438,
                                886
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                438,
                                172,
                                886,
                                961
                            ],
                            "bodyCentroid": [
                                678.4914231240638,
                                523.461854827727
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 183575,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                133,
                                167,
                                915,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                345,
                                793
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                345,
                                144,
                                793,
                                925
                            ],
                            "bodyCentroid": [
                                587.3784156193398,
                                491.5705181629274
                            ],
                            "bodyHeight": 781,
                            "bodyPixels": 179982,
                            "footBandTopY": 830,
                            "footCentroidX": 639,
                            "fullBounds": [
                                48,
                                139,
                                822,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 2,
                        "output": "derived/dense-body-f1-root-lock-v6/frames/02/final/sprite.png",
                        "outputSha256": "ede2292f77b4af305456cf6f9c9cb063e2d08c94859fb12fe0ed20df7b891586",
                        "source": "frames/02/final/sprite.png",
                        "sourceSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                782,
                                794
                            ],
                            "finalUniformScaleFactor": 1.01024328,
                            "integerTranslation": [
                                133,
                                167
                            ],
                            "normalizedPosition": [
                                -18,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                782,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                48,
                                139,
                                822,
                                925
                            ],
                            "uniformScaleFactor": 1.01024328
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                435,
                                883
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                435,
                                172,
                                883,
                                961
                            ],
                            "bodyCentroid": [
                                677.221588415972,
                                529.0891673979816
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 182320,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                80,
                                167,
                                896,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                338,
                                786
                            ],
                            "bodyBaselineY": 900,
                            "bodyBounds": [
                                338,
                                166,
                                786,
                                901
                            ],
                            "bodyCentroid": [
                                588.021795891978,
                                498.15211120505296
                            ],
                            "bodyHeight": 735,
                            "bodyPixels": 160856,
                            "footBandTopY": 812,
                            "footCentroidX": 640,
                            "fullBounds": [
                                35,
                                161,
                                795,
                                901
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 3,
                        "output": "derived/dense-body-f1-root-lock-v6/frames/03/final/sprite.png",
                        "outputSha256": "fe9eb1cd1b05a741aa920c2f1db48b30ac14a668db91757036b577fab94532e8",
                        "source": "frames/03/final/sprite.png",
                        "sourceSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                816,
                                794
                            ],
                            "finalUniformScaleFactor": 1.07346939,
                            "integerTranslation": [
                                81,
                                167
                            ],
                            "normalizedPosition": [
                                -70,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                -1,
                                0
                            ],
                            "scaledSize": [
                                816,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                35,
                                161,
                                795,
                                901
                            ],
                            "uniformScaleFactor": 1.07346939
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                435,
                                883
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                435,
                                172,
                                883,
                                961
                            ],
                            "bodyCentroid": [
                                677.749002948286,
                                529.1568731573212
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 180783,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                84,
                                167,
                                893,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                338,
                                786
                            ],
                            "bodyBaselineY": 902,
                            "bodyBounds": [
                                338,
                                164,
                                786,
                                903
                            ],
                            "bodyCentroid": [
                                589.1519941905932,
                                498.34723618714236
                            ],
                            "bodyHeight": 739,
                            "bodyPixels": 161118,
                            "footBandTopY": 813,
                            "footCentroidX": 641.5,
                            "fullBounds": [
                                36,
                                159,
                                794,
                                903
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 4,
                        "output": "derived/dense-body-f1-root-lock-v6/frames/04/final/sprite.png",
                        "outputSha256": "ddcf24b70b44956b3a5d9a56b950d6152469be120c4cd85c873f9f064b77f4b0",
                        "source": "frames/04/final/sprite.png",
                        "sourceSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                809,
                                794
                            ],
                            "finalUniformScaleFactor": 1.067659,
                            "integerTranslation": [
                                84,
                                167
                            ],
                            "normalizedPosition": [
                                -67,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                809,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                36,
                                159,
                                794,
                                903
                            ],
                            "uniformScaleFactor": 1.067659
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                460,
                                908
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                460,
                                172,
                                908,
                                961
                            ],
                            "bodyCentroid": [
                                689.6176978237078,
                                523.8034912147924
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 183661,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                45,
                                167,
                                939,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                377,
                                825
                            ],
                            "bodyBaselineY": 901,
                            "bodyBounds": [
                                377,
                                164,
                                825,
                                902
                            ],
                            "bodyCentroid": [
                                620.5555535108543,
                                492.0453064904952
                            ],
                            "bodyHeight": 738,
                            "bodyPixels": 163023,
                            "footBandTopY": 812,
                            "footCentroidX": 663,
                            "fullBounds": [
                                22,
                                159,
                                858,
                                902
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 5,
                        "output": "derived/dense-body-f1-root-lock-v6/frames/05/final/sprite.png",
                        "outputSha256": "e597e98e9ceabb5085577ff1615ebf8b0a6d41f155dd1c270e1a896a7c20140e",
                        "source": "frames/05/final/sprite.png",
                        "sourceSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                894,
                                794
                            ],
                            "finalUniformScaleFactor": 1.06910569,
                            "integerTranslation": [
                                45,
                                167
                            ],
                            "normalizedPosition": [
                                -106,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                894,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                22,
                                159,
                                858,
                                902
                            ],
                            "uniformScaleFactor": 1.06910569
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                467,
                                915
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                467,
                                172,
                                915,
                                961
                            ],
                            "bodyCentroid": [
                                692.8496286861534,
                                520.6024944950564
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 185288,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                43,
                                167,
                                977,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                395,
                                843
                            ],
                            "bodyBaselineY": 901,
                            "bodyBounds": [
                                395,
                                165,
                                843,
                                902
                            ],
                            "bodyCentroid": [
                                630.7639099484219,
                                489.9954998568967
                            ],
                            "bodyHeight": 737,
                            "bodyPixels": 164217,
                            "footBandTopY": 813,
                            "footCentroidX": 667,
                            "fullBounds": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 6,
                        "output": "derived/dense-body-f1-root-lock-v6/frames/06/final/sprite.png",
                        "outputSha256": "c8145e50b13b08b37c9a0c10e59b45f998ce6b02951b285a38834731b47bd1f8",
                        "source": "frames/06/final/sprite.png",
                        "sourceSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                934,
                                794
                            ],
                            "finalUniformScaleFactor": 1.07055631,
                            "integerTranslation": [
                                45,
                                167
                            ],
                            "normalizedPosition": [
                                -106,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                -2,
                                0
                            ],
                            "scaledSize": [
                                934,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "uniformScaleFactor": 1.07055631
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                471,
                                919
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                471,
                                172,
                                919,
                                961
                            ],
                            "bodyCentroid": [
                                693.9037363134753,
                                519.6427224329684
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 185584,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                42,
                                167,
                                976,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                414,
                                862
                            ],
                            "bodyBaselineY": 901,
                            "bodyBounds": [
                                414,
                                165,
                                862,
                                902
                            ],
                            "bodyCentroid": [
                                635.6041769176097,
                                489.1086569594032
                            ],
                            "bodyHeight": 737,
                            "bodyPixels": 164619,
                            "footBandTopY": 813,
                            "footCentroidX": 667,
                            "fullBounds": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 7,
                        "output": "derived/dense-body-f1-root-lock-v6/frames/07/final/sprite.png",
                        "outputSha256": "a2b0a65d441f111664ad14cbb02c933f79aef2c4a5b214233e45751091dd336b",
                        "source": "frames/07/final/sprite.png",
                        "sourceSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                934,
                                794
                            ],
                            "finalUniformScaleFactor": 1.07055631,
                            "integerTranslation": [
                                45,
                                167
                            ],
                            "normalizedPosition": [
                                -106,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                -3,
                                0
                            ],
                            "scaledSize": [
                                934,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "uniformScaleFactor": 1.07055631
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                467,
                                915
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                467,
                                172,
                                915,
                                961
                            ],
                            "bodyCentroid": [
                                692.8496286861534,
                                520.6024944950564
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 185288,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                43,
                                167,
                                977,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                395,
                                843
                            ],
                            "bodyBaselineY": 901,
                            "bodyBounds": [
                                395,
                                165,
                                843,
                                902
                            ],
                            "bodyCentroid": [
                                630.7639099484219,
                                489.9954998568967
                            ],
                            "bodyHeight": 737,
                            "bodyPixels": 164217,
                            "footBandTopY": 813,
                            "footCentroidX": 667,
                            "fullBounds": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 8,
                        "output": "derived/dense-body-f1-root-lock-v6/frames/08/final/sprite.png",
                        "outputSha256": "c8145e50b13b08b37c9a0c10e59b45f998ce6b02951b285a38834731b47bd1f8",
                        "source": "frames/08/final/sprite.png",
                        "sourceSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                934,
                                794
                            ],
                            "finalUniformScaleFactor": 1.07055631,
                            "integerTranslation": [
                                45,
                                167
                            ],
                            "normalizedPosition": [
                                -106,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                -2,
                                0
                            ],
                            "scaledSize": [
                                934,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "uniformScaleFactor": 1.07055631
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                460,
                                908
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                460,
                                172,
                                908,
                                961
                            ],
                            "bodyCentroid": [
                                689.6176978237078,
                                523.8034912147924
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 183661,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                45,
                                167,
                                939,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                377,
                                825
                            ],
                            "bodyBaselineY": 901,
                            "bodyBounds": [
                                377,
                                164,
                                825,
                                902
                            ],
                            "bodyCentroid": [
                                620.5555535108543,
                                492.0453064904952
                            ],
                            "bodyHeight": 738,
                            "bodyPixels": 163023,
                            "footBandTopY": 812,
                            "footCentroidX": 663,
                            "fullBounds": [
                                22,
                                159,
                                858,
                                902
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 9,
                        "output": "derived/dense-body-f1-root-lock-v6/frames/09/final/sprite.png",
                        "outputSha256": "e597e98e9ceabb5085577ff1615ebf8b0a6d41f155dd1c270e1a896a7c20140e",
                        "source": "frames/09/final/sprite.png",
                        "sourceSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                894,
                                794
                            ],
                            "finalUniformScaleFactor": 1.06910569,
                            "integerTranslation": [
                                45,
                                167
                            ],
                            "normalizedPosition": [
                                -106,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                894,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                22,
                                159,
                                858,
                                902
                            ],
                            "uniformScaleFactor": 1.06910569
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                435,
                                883
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                435,
                                172,
                                883,
                                961
                            ],
                            "bodyCentroid": [
                                677.749002948286,
                                529.1568731573212
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 180783,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                84,
                                167,
                                893,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                338,
                                786
                            ],
                            "bodyBaselineY": 902,
                            "bodyBounds": [
                                338,
                                164,
                                786,
                                903
                            ],
                            "bodyCentroid": [
                                589.1519941905932,
                                498.34723618714236
                            ],
                            "bodyHeight": 739,
                            "bodyPixels": 161118,
                            "footBandTopY": 813,
                            "footCentroidX": 641.5,
                            "fullBounds": [
                                36,
                                159,
                                794,
                                903
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 10,
                        "output": "derived/dense-body-f1-root-lock-v6/frames/10/final/sprite.png",
                        "outputSha256": "ddcf24b70b44956b3a5d9a56b950d6152469be120c4cd85c873f9f064b77f4b0",
                        "source": "frames/10/final/sprite.png",
                        "sourceSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                809,
                                794
                            ],
                            "finalUniformScaleFactor": 1.067659,
                            "integerTranslation": [
                                84,
                                167
                            ],
                            "normalizedPosition": [
                                -67,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                809,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                36,
                                159,
                                794,
                                903
                            ],
                            "uniformScaleFactor": 1.067659
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                435,
                                883
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                435,
                                172,
                                883,
                                961
                            ],
                            "bodyCentroid": [
                                677.221588415972,
                                529.0891673979816
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 182320,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                80,
                                167,
                                896,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                338,
                                786
                            ],
                            "bodyBaselineY": 900,
                            "bodyBounds": [
                                338,
                                166,
                                786,
                                901
                            ],
                            "bodyCentroid": [
                                588.021795891978,
                                498.15211120505296
                            ],
                            "bodyHeight": 735,
                            "bodyPixels": 160856,
                            "footBandTopY": 812,
                            "footCentroidX": 640,
                            "fullBounds": [
                                35,
                                161,
                                795,
                                901
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 11,
                        "output": "derived/dense-body-f1-root-lock-v6/frames/11/final/sprite.png",
                        "outputSha256": "fe9eb1cd1b05a741aa920c2f1db48b30ac14a668db91757036b577fab94532e8",
                        "source": "frames/11/final/sprite.png",
                        "sourceSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                816,
                                794
                            ],
                            "finalUniformScaleFactor": 1.07346939,
                            "integerTranslation": [
                                81,
                                167
                            ],
                            "normalizedPosition": [
                                -70,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                -1,
                                0
                            ],
                            "scaledSize": [
                                816,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                35,
                                161,
                                795,
                                901
                            ],
                            "uniformScaleFactor": 1.07346939
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                438,
                                886
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                438,
                                172,
                                886,
                                961
                            ],
                            "bodyCentroid": [
                                678.4914231240638,
                                523.461854827727
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 183575,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                133,
                                167,
                                915,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                345,
                                793
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                345,
                                144,
                                793,
                                925
                            ],
                            "bodyCentroid": [
                                587.3784156193398,
                                491.5705181629274
                            ],
                            "bodyHeight": 781,
                            "bodyPixels": 179982,
                            "footBandTopY": 830,
                            "footCentroidX": 639,
                            "fullBounds": [
                                48,
                                139,
                                822,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 12,
                        "output": "derived/dense-body-f1-root-lock-v6/frames/12/final/sprite.png",
                        "outputSha256": "ede2292f77b4af305456cf6f9c9cb063e2d08c94859fb12fe0ed20df7b891586",
                        "source": "frames/12/final/sprite.png",
                        "sourceSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                782,
                                794
                            ],
                            "finalUniformScaleFactor": 1.01024328,
                            "integerTranslation": [
                                133,
                                167
                            ],
                            "normalizedPosition": [
                                -18,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                782,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                48,
                                139,
                                822,
                                925
                            ],
                            "uniformScaleFactor": 1.01024328
                        }
                    }
                ],
                "policy": {
                    "bodyPartCutting": false,
                    "filter": false,
                    "horizontalRootAuthority": "lower-foot-band median x",
                    "originalFramesPreserved": true,
                    "paletteReduction": false,
                    "perFrameScaleAuthority": "F1 central-body height",
                    "repaint": false,
                    "resampling": "nearest-neighbor",
                    "sequenceEnvelope": "union of normalized full-sprite bounds",
                    "sequenceScale": "one shared fit scale applied equally to every normalized frame",
                    "stretch": false,
                    "translation": "whole-sprite integer x/y only",
                    "uniformScaleOnly": true,
                    "verticalRootAuthority": "opaque baseline"
                },
                "preview": {
                    "path": "derived/dense-body-f1-root-lock-v6/preview/animation.gif",
                    "sha256": "de12af6392e85bbadf2eba32e2c63e29a35caf12f8795068c847dc2b789f8bfe"
                },
                "schemaVersion": "midgard-pixels.sequence-envelope-root-lock.v1",
                "sequence": {
                    "canvasSize": [
                        1024,
                        1024
                    ],
                    "normalizedUnionBounds": [
                        -106,
                        26,
                        828,
                        925
                    ],
                    "normalizedUnionSize": [
                        934,
                        899
                    ],
                    "padding": 8,
                    "sharedUniformScaleFactor": 1
                },
                "sourceRunId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "status": "derived-experiment-owner-review-required",
                "target": {
                    "bodyBandX": [
                        266,
                        714
                    ],
                    "bodyBaselineY": 924,
                    "bodyBounds": [
                        311,
                        136,
                        714,
                        925
                    ],
                    "bodyCentroid": [
                        526.8609554906342,
                        488.7950850661626
                    ],
                    "bodyHeight": 789,
                    "bodyPixels": 174570,
                    "footBandTopY": 829,
                    "footCentroidX": 579,
                    "fullBounds": [
                        311,
                        26,
                        714,
                        925
                    ],
                    "measurementPolicy": {
                        "bodyRowDensityFraction": 0.1,
                        "bodyWindowFraction": 0.4375,
                        "footBandHeightFraction": 0.12
                    }
                }
            }
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/report.json": {
            "sha256": "5a2d1f1775fbf51b5666aa4f23ba768d555c4a65a205038928813c2a26aaf492",
            "bytes": 14651,
            "value": {
                "artifacts": [
                    {
                        "path": "review/onion-audit/f1-to-f02.png",
                        "sha256": "90cc4252f61a056da81192e5b405756e9090469868a133771b936dc0660c47ef"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f01-f02.png",
                        "sha256": "90cc4252f61a056da81192e5b405756e9090469868a133771b936dc0660c47ef"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f03.png",
                        "sha256": "c24039c574299c03650863a567bc3d9b5c8e3e09f8cf7d315a5bdc79850fcc7d"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f02-f03.png",
                        "sha256": "ca8bc5e1964ed9088bb687194d9324bbeff9c47d9fefff9a01ff7d4cd4b73c4a"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f04.png",
                        "sha256": "955f8be1f61b9838b8f8134264ca72db09f7095e8a4fe522cc11eb184d74e09a"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f03-f04.png",
                        "sha256": "6444c2d3b23b308d47d1fcf82ff77b730752423b107b66d51f290facfce15cd8"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f05.png",
                        "sha256": "0422378da27b14e2bdcd75d23084e8d8eb771fd73f4723575ce28f194838caf7"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f04-f05.png",
                        "sha256": "c9ec9f47c38a8720bee2cd5c406494288ff53cd1c3c6241d8c6478d99bb2ad7a"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f06.png",
                        "sha256": "0c1c9aa8badcafba2fee1b6c7246bbe61e56df5f9b2b5434c4ee0f393ec68a9f"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f05-f06.png",
                        "sha256": "8c82e4c47a67b182a6ebcdfb224dbbebc914df12e9c456dedee6135b7830dac8"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f07.png",
                        "sha256": "d12893e7cecdd07873dd91b10c9d40eb23e3ca97a01f45e27dd2c6ac9d31152f"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f06-f07.png",
                        "sha256": "11bd20dbf50f896ac2f1a106d6273e7e7ae32e2997ac8a7d22ca22fa02435076"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f08.png",
                        "sha256": "0c1c9aa8badcafba2fee1b6c7246bbe61e56df5f9b2b5434c4ee0f393ec68a9f"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f07-f08.png",
                        "sha256": "a41a3c4d37a01ad89060ef589276968fd8563f3c9533d12a4db49c827a24405b"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f09.png",
                        "sha256": "0422378da27b14e2bdcd75d23084e8d8eb771fd73f4723575ce28f194838caf7"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f08-f09.png",
                        "sha256": "8eab8b8a84fe319b901b5b1b80088ce85065f2f3f0494c42139fe3af69a197fe"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f10.png",
                        "sha256": "955f8be1f61b9838b8f8134264ca72db09f7095e8a4fe522cc11eb184d74e09a"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f09-f10.png",
                        "sha256": "675e05f18577025c72e4ba454334f53c4bf6d27f7d222110593e84bb53d370e6"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f11.png",
                        "sha256": "c24039c574299c03650863a567bc3d9b5c8e3e09f8cf7d315a5bdc79850fcc7d"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f10-f11.png",
                        "sha256": "ddb6c7a2c750412647471df5d01797ed8ce8b3323c7245a521dd44f5dee760ef"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f12.png",
                        "sha256": "90cc4252f61a056da81192e5b405756e9090469868a133771b936dc0660c47ef"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f11-f12.png",
                        "sha256": "29f4499014e6fa9d97919a45b6eaa975a9b30785daa731106daebd53506bacee"
                    },
                    {
                        "path": "review/onion-audit/f1-onion-sheet.png",
                        "sha256": "1f41b0fe23a1b1b39cf384e81897fcff26ecc52537bce1c2bcb6c5fe806c6a4c"
                    }
                ],
                "frames": [
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1,
                        "bodyBandBounds": [
                            462,
                            172,
                            865,
                            961
                        ],
                        "bodyBandCentroid": [
                            677.8609554906342,
                            524.7950850661625
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0,
                            0
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 174570,
                        "bodyBandX": [
                            417,
                            865
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 1,
                        "fullBounds": [
                            462,
                            62,
                            865,
                            961
                        ],
                        "fullCentroid": [
                            676.17,
                            520.4843
                        ],
                        "path": "frames/01/final/sprite.png",
                        "sha256": "06100125347e2b71487076fee2aa74f620b93d70eac1fc05b2019570f54304ee"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.051584,
                        "bodyBandBounds": [
                            438,
                            172,
                            886,
                            961
                        ],
                        "bodyBandCentroid": [
                            678.4914231240638,
                            523.461854827727
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0.6305,
                            -1.3332
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 183575,
                        "bodyBandX": [
                            438,
                            886
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 2,
                        "fullBounds": [
                            133,
                            167,
                            915,
                            961
                        ],
                        "fullCentroid": [
                            656.1735,
                            509.6381
                        ],
                        "path": "frames/02/final/sprite.png",
                        "sha256": "ede2292f77b4af305456cf6f9c9cb063e2d08c94859fb12fe0ed20df7b891586"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.044395,
                        "bodyBandBounds": [
                            435,
                            172,
                            883,
                            961
                        ],
                        "bodyBandCentroid": [
                            677.221588415972,
                            529.0891673979816
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -0.6394,
                            4.2941
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 182320,
                        "bodyBandX": [
                            435,
                            883
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 3,
                        "fullBounds": [
                            80,
                            167,
                            896,
                            961
                        ],
                        "fullCentroid": [
                            656.0059,
                            528.7284
                        ],
                        "path": "frames/03/final/sprite.png",
                        "sha256": "fe9eb1cd1b05a741aa920c2f1db48b30ac14a668db91757036b577fab94532e8"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.03559,
                        "bodyBandBounds": [
                            435,
                            172,
                            883,
                            961
                        ],
                        "bodyBandCentroid": [
                            677.749002948286,
                            529.1568731573212
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -0.112,
                            4.3618
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 180783,
                        "bodyBandX": [
                            435,
                            883
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 4,
                        "fullBounds": [
                            84,
                            167,
                            893,
                            961
                        ],
                        "fullCentroid": [
                            656.8584,
                            529.2579
                        ],
                        "path": "frames/04/final/sprite.png",
                        "sha256": "ddcf24b70b44956b3a5d9a56b950d6152469be120c4cd85c873f9f064b77f4b0"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.052077,
                        "bodyBandBounds": [
                            460,
                            172,
                            908,
                            961
                        ],
                        "bodyBandCentroid": [
                            689.6176978237078,
                            523.8034912147924
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            11.7567,
                            -0.9916
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 183661,
                        "bodyBandX": [
                            460,
                            908
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 5,
                        "fullBounds": [
                            45,
                            167,
                            939,
                            961
                        ],
                        "fullCentroid": [
                            664.8246,
                            519.5158
                        ],
                        "path": "frames/05/final/sprite.png",
                        "sha256": "e597e98e9ceabb5085577ff1615ebf8b0a6d41f155dd1c270e1a896a7c20140e"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.061397,
                        "bodyBandBounds": [
                            467,
                            172,
                            915,
                            961
                        ],
                        "bodyBandCentroid": [
                            692.8496286861534,
                            520.6024944950564
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            14.9887,
                            -4.1926
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 185288,
                        "bodyBandX": [
                            467,
                            915
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 6,
                        "fullBounds": [
                            43,
                            167,
                            977,
                            961
                        ],
                        "fullCentroid": [
                            671.2987,
                            514.8979
                        ],
                        "path": "frames/06/final/sprite.png",
                        "sha256": "c8145e50b13b08b37c9a0c10e59b45f998ce6b02951b285a38834731b47bd1f8"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.063092,
                        "bodyBandBounds": [
                            471,
                            172,
                            919,
                            961
                        ],
                        "bodyBandCentroid": [
                            693.9037363134753,
                            519.6427224329684
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            16.0428,
                            -5.1524
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 185584,
                        "bodyBandX": [
                            471,
                            919
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 7,
                        "fullBounds": [
                            42,
                            167,
                            976,
                            961
                        ],
                        "fullCentroid": [
                            671.8366,
                            514.572
                        ],
                        "path": "frames/07/final/sprite.png",
                        "sha256": "a2b0a65d441f111664ad14cbb02c933f79aef2c4a5b214233e45751091dd336b"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.061397,
                        "bodyBandBounds": [
                            467,
                            172,
                            915,
                            961
                        ],
                        "bodyBandCentroid": [
                            692.8496286861534,
                            520.6024944950564
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            14.9887,
                            -4.1926
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 185288,
                        "bodyBandX": [
                            467,
                            915
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 8,
                        "fullBounds": [
                            43,
                            167,
                            977,
                            961
                        ],
                        "fullCentroid": [
                            671.2987,
                            514.8979
                        ],
                        "path": "frames/08/final/sprite.png",
                        "sha256": "c8145e50b13b08b37c9a0c10e59b45f998ce6b02951b285a38834731b47bd1f8"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.052077,
                        "bodyBandBounds": [
                            460,
                            172,
                            908,
                            961
                        ],
                        "bodyBandCentroid": [
                            689.6176978237078,
                            523.8034912147924
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            11.7567,
                            -0.9916
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 183661,
                        "bodyBandX": [
                            460,
                            908
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 9,
                        "fullBounds": [
                            45,
                            167,
                            939,
                            961
                        ],
                        "fullCentroid": [
                            664.8246,
                            519.5158
                        ],
                        "path": "frames/09/final/sprite.png",
                        "sha256": "e597e98e9ceabb5085577ff1615ebf8b0a6d41f155dd1c270e1a896a7c20140e"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.03559,
                        "bodyBandBounds": [
                            435,
                            172,
                            883,
                            961
                        ],
                        "bodyBandCentroid": [
                            677.749002948286,
                            529.1568731573212
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -0.112,
                            4.3618
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 180783,
                        "bodyBandX": [
                            435,
                            883
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 10,
                        "fullBounds": [
                            84,
                            167,
                            893,
                            961
                        ],
                        "fullCentroid": [
                            656.8584,
                            529.2579
                        ],
                        "path": "frames/10/final/sprite.png",
                        "sha256": "ddcf24b70b44956b3a5d9a56b950d6152469be120c4cd85c873f9f064b77f4b0"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.044395,
                        "bodyBandBounds": [
                            435,
                            172,
                            883,
                            961
                        ],
                        "bodyBandCentroid": [
                            677.221588415972,
                            529.0891673979816
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -0.6394,
                            4.2941
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 182320,
                        "bodyBandX": [
                            435,
                            883
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 11,
                        "fullBounds": [
                            80,
                            167,
                            896,
                            961
                        ],
                        "fullCentroid": [
                            656.0059,
                            528.7284
                        ],
                        "path": "frames/11/final/sprite.png",
                        "sha256": "fe9eb1cd1b05a741aa920c2f1db48b30ac14a668db91757036b577fab94532e8"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.051584,
                        "bodyBandBounds": [
                            438,
                            172,
                            886,
                            961
                        ],
                        "bodyBandCentroid": [
                            678.4914231240638,
                            523.461854827727
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0.6305,
                            -1.3332
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 183575,
                        "bodyBandX": [
                            438,
                            886
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 12,
                        "fullBounds": [
                            133,
                            167,
                            915,
                            961
                        ],
                        "fullCentroid": [
                            656.1735,
                            509.6381
                        ],
                        "path": "frames/12/final/sprite.png",
                        "sha256": "ede2292f77b4af305456cf6f9c9cb063e2d08c94859fb12fe0ed20df7b891586"
                    }
                ],
                "measurement": {
                    "bodyBandDerivedFrom": "per-frame maximum-alpha fixed-width body window with dense-row gating; see measurementPolicy",
                    "canvas": [
                        1024,
                        1024
                    ],
                    "measurementPolicy": {
                        "bodyRowDensityFraction": 0.1,
                        "bodyWindowFraction": 0.4375,
                        "footBandHeightFraction": 0.12
                    },
                    "onionColors": {
                        "background": "#10131d",
                        "comparisonOnly": "#24e0ee",
                        "f1Only": "#ff3399",
                        "shared": "#f6f1e7"
                    }
                },
                "runId": "dense-body-f1-root-lock-v6",
                "schemaVersion": "midgard-pixels.generation-onion-audit.v1",
                "summary": {
                    "baselineRangePx": 0,
                    "maximumAbsoluteBodyCentroidXDriftPx": 16.0428,
                    "maximumAbsoluteFootRootXDriftPx": 0,
                    "minimumBodyAreaRatioToF1": 1,
                    "minimumBodyHeightRatioToF1": 1,
                    "providerLateralDriftDetected": false,
                    "providerScaleDriftDetected": false
                }
            }
        },
        "derived/dense-body-f1-root-lock-v7/report.json": {
            "sha256": "cac92c2ece277ec8e968c1738e5d3b570b2e1645450dcd693a3bbeb7272ebe86",
            "bytes": 31417,
            "value": {
                "frames": [
                    {
                        "after": {
                            "bodyBandX": [
                                417,
                                865
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                462,
                                172,
                                865,
                                961
                            ],
                            "bodyCentroid": [
                                677.8609554906342,
                                524.7950850661625
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 174570,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                462,
                                62,
                                865,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                266,
                                714
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                311,
                                136,
                                714,
                                925
                            ],
                            "bodyCentroid": [
                                526.8609554906342,
                                488.7950850661626
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 174570,
                            "footBandTopY": 829,
                            "footCentroidX": 579,
                            "fullBounds": [
                                311,
                                26,
                                714,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 1,
                        "output": "derived/dense-body-f1-root-lock-v7/frames/01/final/sprite.png",
                        "outputSha256": "06100125347e2b71487076fee2aa74f620b93d70eac1fc05b2019570f54304ee",
                        "source": "frames/01/final/sprite.png",
                        "sourceSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                403,
                                899
                            ],
                            "finalUniformScaleFactor": 1,
                            "integerTranslation": [
                                462,
                                62
                            ],
                            "nominalUniformScaleFactor": 1,
                            "normalizedPosition": [
                                311,
                                26
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                403,
                                899
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                311,
                                26,
                                714,
                                925
                            ],
                            "uniformScaleFactor": 1
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                438,
                                886
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                438,
                                172,
                                886,
                                961
                            ],
                            "bodyCentroid": [
                                678.4914231240638,
                                523.461854827727
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 183575,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                133,
                                167,
                                915,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                345,
                                793
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                345,
                                144,
                                793,
                                925
                            ],
                            "bodyCentroid": [
                                587.3784156193398,
                                491.5705181629274
                            ],
                            "bodyHeight": 781,
                            "bodyPixels": 179982,
                            "footBandTopY": 830,
                            "footCentroidX": 639,
                            "fullBounds": [
                                48,
                                139,
                                822,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 2,
                        "output": "derived/dense-body-f1-root-lock-v7/frames/02/final/sprite.png",
                        "outputSha256": "ede2292f77b4af305456cf6f9c9cb063e2d08c94859fb12fe0ed20df7b891586",
                        "source": "frames/02/final/sprite.png",
                        "sourceSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                782,
                                794
                            ],
                            "finalUniformScaleFactor": 1.01024328,
                            "integerTranslation": [
                                133,
                                167
                            ],
                            "nominalUniformScaleFactor": 1.01024328,
                            "normalizedPosition": [
                                -18,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                782,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                48,
                                139,
                                822,
                                925
                            ],
                            "uniformScaleFactor": 1.01024328
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                435,
                                883
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                435,
                                172,
                                883,
                                961
                            ],
                            "bodyCentroid": [
                                677.221588415972,
                                529.0891673979816
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 182320,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                80,
                                167,
                                896,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                338,
                                786
                            ],
                            "bodyBaselineY": 900,
                            "bodyBounds": [
                                338,
                                166,
                                786,
                                901
                            ],
                            "bodyCentroid": [
                                588.021795891978,
                                498.15211120505296
                            ],
                            "bodyHeight": 735,
                            "bodyPixels": 160856,
                            "footBandTopY": 812,
                            "footCentroidX": 640,
                            "fullBounds": [
                                35,
                                161,
                                795,
                                901
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 3,
                        "output": "derived/dense-body-f1-root-lock-v7/frames/03/final/sprite.png",
                        "outputSha256": "fe9eb1cd1b05a741aa920c2f1db48b30ac14a668db91757036b577fab94532e8",
                        "source": "frames/03/final/sprite.png",
                        "sourceSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                816,
                                794
                            ],
                            "finalUniformScaleFactor": 1.07346939,
                            "integerTranslation": [
                                81,
                                167
                            ],
                            "nominalUniformScaleFactor": 1.07346939,
                            "normalizedPosition": [
                                -70,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                -1,
                                0
                            ],
                            "scaledSize": [
                                816,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                35,
                                161,
                                795,
                                901
                            ],
                            "uniformScaleFactor": 1.07346939
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                435,
                                883
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                435,
                                172,
                                883,
                                961
                            ],
                            "bodyCentroid": [
                                677.749002948286,
                                529.1568731573212
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 180783,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                84,
                                167,
                                893,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                338,
                                786
                            ],
                            "bodyBaselineY": 902,
                            "bodyBounds": [
                                338,
                                164,
                                786,
                                903
                            ],
                            "bodyCentroid": [
                                589.1519941905932,
                                498.34723618714236
                            ],
                            "bodyHeight": 739,
                            "bodyPixels": 161118,
                            "footBandTopY": 813,
                            "footCentroidX": 641.5,
                            "fullBounds": [
                                36,
                                159,
                                794,
                                903
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 4,
                        "output": "derived/dense-body-f1-root-lock-v7/frames/04/final/sprite.png",
                        "outputSha256": "ddcf24b70b44956b3a5d9a56b950d6152469be120c4cd85c873f9f064b77f4b0",
                        "source": "frames/04/final/sprite.png",
                        "sourceSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                809,
                                794
                            ],
                            "finalUniformScaleFactor": 1.067659,
                            "integerTranslation": [
                                84,
                                167
                            ],
                            "nominalUniformScaleFactor": 1.067659,
                            "normalizedPosition": [
                                -67,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                809,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                36,
                                159,
                                794,
                                903
                            ],
                            "uniformScaleFactor": 1.067659
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                460,
                                908
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                460,
                                172,
                                908,
                                961
                            ],
                            "bodyCentroid": [
                                689.6176978237078,
                                523.8034912147924
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 183661,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                45,
                                167,
                                939,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                377,
                                825
                            ],
                            "bodyBaselineY": 901,
                            "bodyBounds": [
                                377,
                                164,
                                825,
                                902
                            ],
                            "bodyCentroid": [
                                620.5555535108543,
                                492.0453064904952
                            ],
                            "bodyHeight": 738,
                            "bodyPixels": 163023,
                            "footBandTopY": 812,
                            "footCentroidX": 663,
                            "fullBounds": [
                                22,
                                159,
                                858,
                                902
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 5,
                        "output": "derived/dense-body-f1-root-lock-v7/frames/05/final/sprite.png",
                        "outputSha256": "e597e98e9ceabb5085577ff1615ebf8b0a6d41f155dd1c270e1a896a7c20140e",
                        "source": "frames/05/final/sprite.png",
                        "sourceSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                894,
                                794
                            ],
                            "finalUniformScaleFactor": 1.06910569,
                            "integerTranslation": [
                                45,
                                167
                            ],
                            "nominalUniformScaleFactor": 1.06910569,
                            "normalizedPosition": [
                                -106,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                894,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                22,
                                159,
                                858,
                                902
                            ],
                            "uniformScaleFactor": 1.06910569
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                468,
                                916
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                468,
                                173,
                                916,
                                961
                            ],
                            "bodyCentroid": [
                                692.9406145707686,
                                521.0517965999015
                            ],
                            "bodyHeight": 788,
                            "bodyPixels": 184877,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                44,
                                168,
                                976,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                395,
                                843
                            ],
                            "bodyBaselineY": 901,
                            "bodyBounds": [
                                395,
                                165,
                                843,
                                902
                            ],
                            "bodyCentroid": [
                                630.7639099484219,
                                489.9954998568967
                            ],
                            "bodyHeight": 737,
                            "bodyPixels": 164217,
                            "footBandTopY": 813,
                            "footCentroidX": 667,
                            "fullBounds": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 6,
                        "output": "derived/dense-body-f1-root-lock-v7/frames/06/final/sprite.png",
                        "outputSha256": "269b79533f558e367b63810cd6e6358044f0a5bb5313483723c5b936d7c29fe9",
                        "source": "frames/06/final/sprite.png",
                        "sourceSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                932,
                                793
                            ],
                            "finalUniformScaleFactor": 1.06930631,
                            "integerTranslation": [
                                46,
                                168
                            ],
                            "nominalUniformScaleFactor": 1.07055631,
                            "normalizedPosition": [
                                -105,
                                132
                            ],
                            "rootCorrectionIntegerTranslation": [
                                -2,
                                0
                            ],
                            "scaledSize": [
                                932,
                                793
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "uniformScaleFactor": 1.06930631
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                471,
                                919
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                471,
                                172,
                                919,
                                961
                            ],
                            "bodyCentroid": [
                                693.9037363134753,
                                519.6427224329684
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 185584,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                42,
                                167,
                                976,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                414,
                                862
                            ],
                            "bodyBaselineY": 901,
                            "bodyBounds": [
                                414,
                                165,
                                862,
                                902
                            ],
                            "bodyCentroid": [
                                635.6041769176097,
                                489.1086569594032
                            ],
                            "bodyHeight": 737,
                            "bodyPixels": 164619,
                            "footBandTopY": 813,
                            "footCentroidX": 667,
                            "fullBounds": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 7,
                        "output": "derived/dense-body-f1-root-lock-v7/frames/07/final/sprite.png",
                        "outputSha256": "a2b0a65d441f111664ad14cbb02c933f79aef2c4a5b214233e45751091dd336b",
                        "source": "frames/07/final/sprite.png",
                        "sourceSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                934,
                                794
                            ],
                            "finalUniformScaleFactor": 1.07055631,
                            "integerTranslation": [
                                45,
                                167
                            ],
                            "nominalUniformScaleFactor": 1.07055631,
                            "normalizedPosition": [
                                -106,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                -3,
                                0
                            ],
                            "scaledSize": [
                                934,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "uniformScaleFactor": 1.07055631
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                468,
                                916
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                468,
                                173,
                                916,
                                961
                            ],
                            "bodyCentroid": [
                                692.9406145707686,
                                521.0517965999015
                            ],
                            "bodyHeight": 788,
                            "bodyPixels": 184877,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                44,
                                168,
                                976,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                395,
                                843
                            ],
                            "bodyBaselineY": 901,
                            "bodyBounds": [
                                395,
                                165,
                                843,
                                902
                            ],
                            "bodyCentroid": [
                                630.7639099484219,
                                489.9954998568967
                            ],
                            "bodyHeight": 737,
                            "bodyPixels": 164217,
                            "footBandTopY": 813,
                            "footCentroidX": 667,
                            "fullBounds": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 8,
                        "output": "derived/dense-body-f1-root-lock-v7/frames/08/final/sprite.png",
                        "outputSha256": "269b79533f558e367b63810cd6e6358044f0a5bb5313483723c5b936d7c29fe9",
                        "source": "frames/08/final/sprite.png",
                        "sourceSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                932,
                                793
                            ],
                            "finalUniformScaleFactor": 1.06930631,
                            "integerTranslation": [
                                46,
                                168
                            ],
                            "nominalUniformScaleFactor": 1.07055631,
                            "normalizedPosition": [
                                -105,
                                132
                            ],
                            "rootCorrectionIntegerTranslation": [
                                -2,
                                0
                            ],
                            "scaledSize": [
                                932,
                                793
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "uniformScaleFactor": 1.06930631
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                460,
                                908
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                460,
                                172,
                                908,
                                961
                            ],
                            "bodyCentroid": [
                                689.6176978237078,
                                523.8034912147924
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 183661,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                45,
                                167,
                                939,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                377,
                                825
                            ],
                            "bodyBaselineY": 901,
                            "bodyBounds": [
                                377,
                                164,
                                825,
                                902
                            ],
                            "bodyCentroid": [
                                620.5555535108543,
                                492.0453064904952
                            ],
                            "bodyHeight": 738,
                            "bodyPixels": 163023,
                            "footBandTopY": 812,
                            "footCentroidX": 663,
                            "fullBounds": [
                                22,
                                159,
                                858,
                                902
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 9,
                        "output": "derived/dense-body-f1-root-lock-v7/frames/09/final/sprite.png",
                        "outputSha256": "e597e98e9ceabb5085577ff1615ebf8b0a6d41f155dd1c270e1a896a7c20140e",
                        "source": "frames/09/final/sprite.png",
                        "sourceSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                894,
                                794
                            ],
                            "finalUniformScaleFactor": 1.06910569,
                            "integerTranslation": [
                                45,
                                167
                            ],
                            "nominalUniformScaleFactor": 1.06910569,
                            "normalizedPosition": [
                                -106,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                894,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                22,
                                159,
                                858,
                                902
                            ],
                            "uniformScaleFactor": 1.06910569
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                435,
                                883
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                435,
                                172,
                                883,
                                961
                            ],
                            "bodyCentroid": [
                                677.749002948286,
                                529.1568731573212
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 180783,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                84,
                                167,
                                893,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                338,
                                786
                            ],
                            "bodyBaselineY": 902,
                            "bodyBounds": [
                                338,
                                164,
                                786,
                                903
                            ],
                            "bodyCentroid": [
                                589.1519941905932,
                                498.34723618714236
                            ],
                            "bodyHeight": 739,
                            "bodyPixels": 161118,
                            "footBandTopY": 813,
                            "footCentroidX": 641.5,
                            "fullBounds": [
                                36,
                                159,
                                794,
                                903
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 10,
                        "output": "derived/dense-body-f1-root-lock-v7/frames/10/final/sprite.png",
                        "outputSha256": "ddcf24b70b44956b3a5d9a56b950d6152469be120c4cd85c873f9f064b77f4b0",
                        "source": "frames/10/final/sprite.png",
                        "sourceSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                809,
                                794
                            ],
                            "finalUniformScaleFactor": 1.067659,
                            "integerTranslation": [
                                84,
                                167
                            ],
                            "nominalUniformScaleFactor": 1.067659,
                            "normalizedPosition": [
                                -67,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                809,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                36,
                                159,
                                794,
                                903
                            ],
                            "uniformScaleFactor": 1.067659
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                435,
                                883
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                435,
                                172,
                                883,
                                961
                            ],
                            "bodyCentroid": [
                                677.221588415972,
                                529.0891673979816
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 182320,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                80,
                                167,
                                896,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                338,
                                786
                            ],
                            "bodyBaselineY": 900,
                            "bodyBounds": [
                                338,
                                166,
                                786,
                                901
                            ],
                            "bodyCentroid": [
                                588.021795891978,
                                498.15211120505296
                            ],
                            "bodyHeight": 735,
                            "bodyPixels": 160856,
                            "footBandTopY": 812,
                            "footCentroidX": 640,
                            "fullBounds": [
                                35,
                                161,
                                795,
                                901
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 11,
                        "output": "derived/dense-body-f1-root-lock-v7/frames/11/final/sprite.png",
                        "outputSha256": "fe9eb1cd1b05a741aa920c2f1db48b30ac14a668db91757036b577fab94532e8",
                        "source": "frames/11/final/sprite.png",
                        "sourceSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                816,
                                794
                            ],
                            "finalUniformScaleFactor": 1.07346939,
                            "integerTranslation": [
                                81,
                                167
                            ],
                            "nominalUniformScaleFactor": 1.07346939,
                            "normalizedPosition": [
                                -70,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                -1,
                                0
                            ],
                            "scaledSize": [
                                816,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                35,
                                161,
                                795,
                                901
                            ],
                            "uniformScaleFactor": 1.07346939
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                438,
                                886
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                438,
                                172,
                                886,
                                961
                            ],
                            "bodyCentroid": [
                                678.4914231240638,
                                523.461854827727
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 183575,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                133,
                                167,
                                915,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                345,
                                793
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                345,
                                144,
                                793,
                                925
                            ],
                            "bodyCentroid": [
                                587.3784156193398,
                                491.5705181629274
                            ],
                            "bodyHeight": 781,
                            "bodyPixels": 179982,
                            "footBandTopY": 830,
                            "footCentroidX": 639,
                            "fullBounds": [
                                48,
                                139,
                                822,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 12,
                        "output": "derived/dense-body-f1-root-lock-v7/frames/12/final/sprite.png",
                        "outputSha256": "ede2292f77b4af305456cf6f9c9cb063e2d08c94859fb12fe0ed20df7b891586",
                        "source": "frames/12/final/sprite.png",
                        "sourceSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                782,
                                794
                            ],
                            "finalUniformScaleFactor": 1.01024328,
                            "integerTranslation": [
                                133,
                                167
                            ],
                            "nominalUniformScaleFactor": 1.01024328,
                            "normalizedPosition": [
                                -18,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                782,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                48,
                                139,
                                822,
                                925
                            ],
                            "uniformScaleFactor": 1.01024328
                        }
                    }
                ],
                "policy": {
                    "bodyPartCutting": false,
                    "filter": false,
                    "horizontalRootAuthority": "lower-foot-band median x",
                    "originalFramesPreserved": true,
                    "paletteReduction": false,
                    "perFrameScaleAuthority": "F1 central-body height",
                    "repaint": false,
                    "resampling": "nearest-neighbor",
                    "sequenceEnvelope": "union of normalized full-sprite bounds",
                    "sequenceScale": "one shared fit scale applied equally to every normalized frame",
                    "stretch": false,
                    "translation": "whole-sprite integer x/y only",
                    "uniformScaleOnly": true,
                    "verticalRootAuthority": "opaque baseline"
                },
                "preview": {
                    "path": "derived/dense-body-f1-root-lock-v7/preview/animation.gif",
                    "sha256": "fbf3f1a9f8bf19a837ea139ecd1b75de913c89bcffa3977156063bf6468906ec"
                },
                "schemaVersion": "midgard-pixels.sequence-envelope-root-lock.v1",
                "sequence": {
                    "canvasSize": [
                        1024,
                        1024
                    ],
                    "normalizedUnionBounds": [
                        -106,
                        26,
                        828,
                        925
                    ],
                    "normalizedUnionSize": [
                        934,
                        899
                    ],
                    "padding": 8,
                    "sharedUniformScaleFactor": 1
                },
                "sourceRunId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "status": "derived-experiment-owner-review-required",
                "target": {
                    "bodyBandX": [
                        266,
                        714
                    ],
                    "bodyBaselineY": 924,
                    "bodyBounds": [
                        311,
                        136,
                        714,
                        925
                    ],
                    "bodyCentroid": [
                        526.8609554906342,
                        488.7950850661626
                    ],
                    "bodyHeight": 789,
                    "bodyPixels": 174570,
                    "footBandTopY": 829,
                    "footCentroidX": 579,
                    "fullBounds": [
                        311,
                        26,
                        714,
                        925
                    ],
                    "measurementPolicy": {
                        "bodyRowDensityFraction": 0.1,
                        "bodyWindowFraction": 0.4375,
                        "footBandHeightFraction": 0.12
                    }
                }
            }
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/report.json": {
            "sha256": "4a193c865d9b1f647693a8c8bfa679f5aafeca254b3c2cb71df08619d7eb5979",
            "bytes": 14666,
            "value": {
                "artifacts": [
                    {
                        "path": "review/onion-audit/f1-to-f02.png",
                        "sha256": "90cc4252f61a056da81192e5b405756e9090469868a133771b936dc0660c47ef"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f01-f02.png",
                        "sha256": "90cc4252f61a056da81192e5b405756e9090469868a133771b936dc0660c47ef"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f03.png",
                        "sha256": "c24039c574299c03650863a567bc3d9b5c8e3e09f8cf7d315a5bdc79850fcc7d"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f02-f03.png",
                        "sha256": "ca8bc5e1964ed9088bb687194d9324bbeff9c47d9fefff9a01ff7d4cd4b73c4a"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f04.png",
                        "sha256": "955f8be1f61b9838b8f8134264ca72db09f7095e8a4fe522cc11eb184d74e09a"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f03-f04.png",
                        "sha256": "6444c2d3b23b308d47d1fcf82ff77b730752423b107b66d51f290facfce15cd8"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f05.png",
                        "sha256": "0422378da27b14e2bdcd75d23084e8d8eb771fd73f4723575ce28f194838caf7"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f04-f05.png",
                        "sha256": "c9ec9f47c38a8720bee2cd5c406494288ff53cd1c3c6241d8c6478d99bb2ad7a"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f06.png",
                        "sha256": "30c38bffafa0595dc0c00a86577b4e55bc91f1515fa152f1f1abba5527c59f71"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f05-f06.png",
                        "sha256": "0d9449ed47a676a7df5ec0e69df1cbfad95036fe3700cc86c00c8140950d8729"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f07.png",
                        "sha256": "d12893e7cecdd07873dd91b10c9d40eb23e3ca97a01f45e27dd2c6ac9d31152f"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f06-f07.png",
                        "sha256": "461ad1bb83084b764525b84e995546b5a49a229b3af33c626d61a0961da3d463"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f08.png",
                        "sha256": "30c38bffafa0595dc0c00a86577b4e55bc91f1515fa152f1f1abba5527c59f71"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f07-f08.png",
                        "sha256": "d564d5c42a5b3b272d5b0fab51ba6dd34bd07bc2d02c9253d04ab3f96853f6cc"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f09.png",
                        "sha256": "0422378da27b14e2bdcd75d23084e8d8eb771fd73f4723575ce28f194838caf7"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f08-f09.png",
                        "sha256": "f9db8db8da284e31eb933397e138cb28abd07413e619de8950a7c8d45f73eab2"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f10.png",
                        "sha256": "955f8be1f61b9838b8f8134264ca72db09f7095e8a4fe522cc11eb184d74e09a"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f09-f10.png",
                        "sha256": "675e05f18577025c72e4ba454334f53c4bf6d27f7d222110593e84bb53d370e6"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f11.png",
                        "sha256": "c24039c574299c03650863a567bc3d9b5c8e3e09f8cf7d315a5bdc79850fcc7d"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f10-f11.png",
                        "sha256": "ddb6c7a2c750412647471df5d01797ed8ce8b3323c7245a521dd44f5dee760ef"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f12.png",
                        "sha256": "90cc4252f61a056da81192e5b405756e9090469868a133771b936dc0660c47ef"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f11-f12.png",
                        "sha256": "29f4499014e6fa9d97919a45b6eaa975a9b30785daa731106daebd53506bacee"
                    },
                    {
                        "path": "review/onion-audit/f1-onion-sheet.png",
                        "sha256": "37d7cdc776192449a46455ac84059e35c53c12f66fc22a63a79a54c33a77a8d2"
                    }
                ],
                "frames": [
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1,
                        "bodyBandBounds": [
                            462,
                            172,
                            865,
                            961
                        ],
                        "bodyBandCentroid": [
                            677.8609554906342,
                            524.7950850661625
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0,
                            0
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 174570,
                        "bodyBandX": [
                            417,
                            865
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 1,
                        "fullBounds": [
                            462,
                            62,
                            865,
                            961
                        ],
                        "fullCentroid": [
                            676.17,
                            520.4843
                        ],
                        "path": "frames/01/final/sprite.png",
                        "sha256": "06100125347e2b71487076fee2aa74f620b93d70eac1fc05b2019570f54304ee"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.051584,
                        "bodyBandBounds": [
                            438,
                            172,
                            886,
                            961
                        ],
                        "bodyBandCentroid": [
                            678.4914231240638,
                            523.461854827727
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0.6305,
                            -1.3332
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 183575,
                        "bodyBandX": [
                            438,
                            886
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 2,
                        "fullBounds": [
                            133,
                            167,
                            915,
                            961
                        ],
                        "fullCentroid": [
                            656.1735,
                            509.6381
                        ],
                        "path": "frames/02/final/sprite.png",
                        "sha256": "ede2292f77b4af305456cf6f9c9cb063e2d08c94859fb12fe0ed20df7b891586"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.044395,
                        "bodyBandBounds": [
                            435,
                            172,
                            883,
                            961
                        ],
                        "bodyBandCentroid": [
                            677.221588415972,
                            529.0891673979816
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -0.6394,
                            4.2941
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 182320,
                        "bodyBandX": [
                            435,
                            883
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 3,
                        "fullBounds": [
                            80,
                            167,
                            896,
                            961
                        ],
                        "fullCentroid": [
                            656.0059,
                            528.7284
                        ],
                        "path": "frames/03/final/sprite.png",
                        "sha256": "fe9eb1cd1b05a741aa920c2f1db48b30ac14a668db91757036b577fab94532e8"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.03559,
                        "bodyBandBounds": [
                            435,
                            172,
                            883,
                            961
                        ],
                        "bodyBandCentroid": [
                            677.749002948286,
                            529.1568731573212
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -0.112,
                            4.3618
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 180783,
                        "bodyBandX": [
                            435,
                            883
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 4,
                        "fullBounds": [
                            84,
                            167,
                            893,
                            961
                        ],
                        "fullCentroid": [
                            656.8584,
                            529.2579
                        ],
                        "path": "frames/04/final/sprite.png",
                        "sha256": "ddcf24b70b44956b3a5d9a56b950d6152469be120c4cd85c873f9f064b77f4b0"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.052077,
                        "bodyBandBounds": [
                            460,
                            172,
                            908,
                            961
                        ],
                        "bodyBandCentroid": [
                            689.6176978237078,
                            523.8034912147924
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            11.7567,
                            -0.9916
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 183661,
                        "bodyBandX": [
                            460,
                            908
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 5,
                        "fullBounds": [
                            45,
                            167,
                            939,
                            961
                        ],
                        "fullCentroid": [
                            664.8246,
                            519.5158
                        ],
                        "path": "frames/05/final/sprite.png",
                        "sha256": "e597e98e9ceabb5085577ff1615ebf8b0a6d41f155dd1c270e1a896a7c20140e"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.059042,
                        "bodyBandBounds": [
                            468,
                            173,
                            916,
                            961
                        ],
                        "bodyBandCentroid": [
                            692.9406145707686,
                            521.0517965999015
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            15.0797,
                            -3.7433
                        ],
                        "bodyBandHeight": 788,
                        "bodyBandHeightRatioToF1": 0.998733,
                        "bodyBandVisiblePixels": 184877,
                        "bodyBandX": [
                            468,
                            916
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 6,
                        "fullBounds": [
                            44,
                            168,
                            976,
                            961
                        ],
                        "fullCentroid": [
                            671.1557,
                            515.5457
                        ],
                        "path": "frames/06/final/sprite.png",
                        "sha256": "269b79533f558e367b63810cd6e6358044f0a5bb5313483723c5b936d7c29fe9"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.063092,
                        "bodyBandBounds": [
                            471,
                            172,
                            919,
                            961
                        ],
                        "bodyBandCentroid": [
                            693.9037363134753,
                            519.6427224329684
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            16.0428,
                            -5.1524
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 185584,
                        "bodyBandX": [
                            471,
                            919
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 7,
                        "fullBounds": [
                            42,
                            167,
                            976,
                            961
                        ],
                        "fullCentroid": [
                            671.8366,
                            514.572
                        ],
                        "path": "frames/07/final/sprite.png",
                        "sha256": "a2b0a65d441f111664ad14cbb02c933f79aef2c4a5b214233e45751091dd336b"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.059042,
                        "bodyBandBounds": [
                            468,
                            173,
                            916,
                            961
                        ],
                        "bodyBandCentroid": [
                            692.9406145707686,
                            521.0517965999015
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            15.0797,
                            -3.7433
                        ],
                        "bodyBandHeight": 788,
                        "bodyBandHeightRatioToF1": 0.998733,
                        "bodyBandVisiblePixels": 184877,
                        "bodyBandX": [
                            468,
                            916
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 8,
                        "fullBounds": [
                            44,
                            168,
                            976,
                            961
                        ],
                        "fullCentroid": [
                            671.1557,
                            515.5457
                        ],
                        "path": "frames/08/final/sprite.png",
                        "sha256": "269b79533f558e367b63810cd6e6358044f0a5bb5313483723c5b936d7c29fe9"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.052077,
                        "bodyBandBounds": [
                            460,
                            172,
                            908,
                            961
                        ],
                        "bodyBandCentroid": [
                            689.6176978237078,
                            523.8034912147924
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            11.7567,
                            -0.9916
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 183661,
                        "bodyBandX": [
                            460,
                            908
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 9,
                        "fullBounds": [
                            45,
                            167,
                            939,
                            961
                        ],
                        "fullCentroid": [
                            664.8246,
                            519.5158
                        ],
                        "path": "frames/09/final/sprite.png",
                        "sha256": "e597e98e9ceabb5085577ff1615ebf8b0a6d41f155dd1c270e1a896a7c20140e"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.03559,
                        "bodyBandBounds": [
                            435,
                            172,
                            883,
                            961
                        ],
                        "bodyBandCentroid": [
                            677.749002948286,
                            529.1568731573212
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -0.112,
                            4.3618
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 180783,
                        "bodyBandX": [
                            435,
                            883
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 10,
                        "fullBounds": [
                            84,
                            167,
                            893,
                            961
                        ],
                        "fullCentroid": [
                            656.8584,
                            529.2579
                        ],
                        "path": "frames/10/final/sprite.png",
                        "sha256": "ddcf24b70b44956b3a5d9a56b950d6152469be120c4cd85c873f9f064b77f4b0"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.044395,
                        "bodyBandBounds": [
                            435,
                            172,
                            883,
                            961
                        ],
                        "bodyBandCentroid": [
                            677.221588415972,
                            529.0891673979816
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -0.6394,
                            4.2941
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 182320,
                        "bodyBandX": [
                            435,
                            883
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 11,
                        "fullBounds": [
                            80,
                            167,
                            896,
                            961
                        ],
                        "fullCentroid": [
                            656.0059,
                            528.7284
                        ],
                        "path": "frames/11/final/sprite.png",
                        "sha256": "fe9eb1cd1b05a741aa920c2f1db48b30ac14a668db91757036b577fab94532e8"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.051584,
                        "bodyBandBounds": [
                            438,
                            172,
                            886,
                            961
                        ],
                        "bodyBandCentroid": [
                            678.4914231240638,
                            523.461854827727
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0.6305,
                            -1.3332
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 183575,
                        "bodyBandX": [
                            438,
                            886
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 12,
                        "fullBounds": [
                            133,
                            167,
                            915,
                            961
                        ],
                        "fullCentroid": [
                            656.1735,
                            509.6381
                        ],
                        "path": "frames/12/final/sprite.png",
                        "sha256": "ede2292f77b4af305456cf6f9c9cb063e2d08c94859fb12fe0ed20df7b891586"
                    }
                ],
                "measurement": {
                    "bodyBandDerivedFrom": "per-frame maximum-alpha fixed-width body window with dense-row gating; see measurementPolicy",
                    "canvas": [
                        1024,
                        1024
                    ],
                    "measurementPolicy": {
                        "bodyRowDensityFraction": 0.1,
                        "bodyWindowFraction": 0.4375,
                        "footBandHeightFraction": 0.12
                    },
                    "onionColors": {
                        "background": "#10131d",
                        "comparisonOnly": "#24e0ee",
                        "f1Only": "#ff3399",
                        "shared": "#f6f1e7"
                    }
                },
                "runId": "dense-body-f1-root-lock-v7",
                "schemaVersion": "midgard-pixels.generation-onion-audit.v1",
                "summary": {
                    "baselineRangePx": 0,
                    "maximumAbsoluteBodyCentroidXDriftPx": 16.0428,
                    "maximumAbsoluteFootRootXDriftPx": 0,
                    "minimumBodyAreaRatioToF1": 1,
                    "minimumBodyHeightRatioToF1": 0.998733,
                    "providerLateralDriftDetected": false,
                    "providerScaleDriftDetected": false
                }
            }
        },
        "derived/dense-body-f1-root-lock-v8/report.json": {
            "sha256": "927fdd79c602e550377b9805657e21c1093c603817fbe3668d06453da53f6f8c",
            "bytes": 31417,
            "value": {
                "frames": [
                    {
                        "after": {
                            "bodyBandX": [
                                417,
                                865
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                462,
                                172,
                                865,
                                961
                            ],
                            "bodyCentroid": [
                                677.8609554906342,
                                524.7950850661625
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 174570,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                462,
                                62,
                                865,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                266,
                                714
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                311,
                                136,
                                714,
                                925
                            ],
                            "bodyCentroid": [
                                526.8609554906342,
                                488.7950850661626
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 174570,
                            "footBandTopY": 829,
                            "footCentroidX": 579,
                            "fullBounds": [
                                311,
                                26,
                                714,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 1,
                        "output": "derived/dense-body-f1-root-lock-v8/frames/01/final/sprite.png",
                        "outputSha256": "06100125347e2b71487076fee2aa74f620b93d70eac1fc05b2019570f54304ee",
                        "source": "frames/01/final/sprite.png",
                        "sourceSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                403,
                                899
                            ],
                            "finalUniformScaleFactor": 1,
                            "integerTranslation": [
                                462,
                                62
                            ],
                            "nominalUniformScaleFactor": 1,
                            "normalizedPosition": [
                                311,
                                26
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                403,
                                899
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                311,
                                26,
                                714,
                                925
                            ],
                            "uniformScaleFactor": 1
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                438,
                                886
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                438,
                                172,
                                886,
                                961
                            ],
                            "bodyCentroid": [
                                678.4914231240638,
                                523.461854827727
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 183575,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                133,
                                167,
                                915,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                345,
                                793
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                345,
                                144,
                                793,
                                925
                            ],
                            "bodyCentroid": [
                                587.3784156193398,
                                491.5705181629274
                            ],
                            "bodyHeight": 781,
                            "bodyPixels": 179982,
                            "footBandTopY": 830,
                            "footCentroidX": 639,
                            "fullBounds": [
                                48,
                                139,
                                822,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 2,
                        "output": "derived/dense-body-f1-root-lock-v8/frames/02/final/sprite.png",
                        "outputSha256": "ede2292f77b4af305456cf6f9c9cb063e2d08c94859fb12fe0ed20df7b891586",
                        "source": "frames/02/final/sprite.png",
                        "sourceSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                782,
                                794
                            ],
                            "finalUniformScaleFactor": 1.01024328,
                            "integerTranslation": [
                                133,
                                167
                            ],
                            "nominalUniformScaleFactor": 1.01024328,
                            "normalizedPosition": [
                                -18,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                782,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                48,
                                139,
                                822,
                                925
                            ],
                            "uniformScaleFactor": 1.01024328
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                435,
                                883
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                435,
                                172,
                                883,
                                961
                            ],
                            "bodyCentroid": [
                                677.221588415972,
                                529.0891673979816
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 182320,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                80,
                                167,
                                896,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                338,
                                786
                            ],
                            "bodyBaselineY": 900,
                            "bodyBounds": [
                                338,
                                166,
                                786,
                                901
                            ],
                            "bodyCentroid": [
                                588.021795891978,
                                498.15211120505296
                            ],
                            "bodyHeight": 735,
                            "bodyPixels": 160856,
                            "footBandTopY": 812,
                            "footCentroidX": 640,
                            "fullBounds": [
                                35,
                                161,
                                795,
                                901
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 3,
                        "output": "derived/dense-body-f1-root-lock-v8/frames/03/final/sprite.png",
                        "outputSha256": "fe9eb1cd1b05a741aa920c2f1db48b30ac14a668db91757036b577fab94532e8",
                        "source": "frames/03/final/sprite.png",
                        "sourceSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                816,
                                794
                            ],
                            "finalUniformScaleFactor": 1.07346939,
                            "integerTranslation": [
                                81,
                                167
                            ],
                            "nominalUniformScaleFactor": 1.07346939,
                            "normalizedPosition": [
                                -70,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                -1,
                                0
                            ],
                            "scaledSize": [
                                816,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                35,
                                161,
                                795,
                                901
                            ],
                            "uniformScaleFactor": 1.07346939
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                435,
                                883
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                435,
                                172,
                                883,
                                961
                            ],
                            "bodyCentroid": [
                                677.749002948286,
                                529.1568731573212
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 180783,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                84,
                                167,
                                893,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                338,
                                786
                            ],
                            "bodyBaselineY": 902,
                            "bodyBounds": [
                                338,
                                164,
                                786,
                                903
                            ],
                            "bodyCentroid": [
                                589.1519941905932,
                                498.34723618714236
                            ],
                            "bodyHeight": 739,
                            "bodyPixels": 161118,
                            "footBandTopY": 813,
                            "footCentroidX": 641.5,
                            "fullBounds": [
                                36,
                                159,
                                794,
                                903
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 4,
                        "output": "derived/dense-body-f1-root-lock-v8/frames/04/final/sprite.png",
                        "outputSha256": "ddcf24b70b44956b3a5d9a56b950d6152469be120c4cd85c873f9f064b77f4b0",
                        "source": "frames/04/final/sprite.png",
                        "sourceSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                809,
                                794
                            ],
                            "finalUniformScaleFactor": 1.067659,
                            "integerTranslation": [
                                84,
                                167
                            ],
                            "nominalUniformScaleFactor": 1.067659,
                            "normalizedPosition": [
                                -67,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                809,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                36,
                                159,
                                794,
                                903
                            ],
                            "uniformScaleFactor": 1.067659
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                460,
                                908
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                460,
                                172,
                                908,
                                961
                            ],
                            "bodyCentroid": [
                                689.6176978237078,
                                523.8034912147924
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 183661,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                45,
                                167,
                                939,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                377,
                                825
                            ],
                            "bodyBaselineY": 901,
                            "bodyBounds": [
                                377,
                                164,
                                825,
                                902
                            ],
                            "bodyCentroid": [
                                620.5555535108543,
                                492.0453064904952
                            ],
                            "bodyHeight": 738,
                            "bodyPixels": 163023,
                            "footBandTopY": 812,
                            "footCentroidX": 663,
                            "fullBounds": [
                                22,
                                159,
                                858,
                                902
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 5,
                        "output": "derived/dense-body-f1-root-lock-v8/frames/05/final/sprite.png",
                        "outputSha256": "e597e98e9ceabb5085577ff1615ebf8b0a6d41f155dd1c270e1a896a7c20140e",
                        "source": "frames/05/final/sprite.png",
                        "sourceSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                894,
                                794
                            ],
                            "finalUniformScaleFactor": 1.06910569,
                            "integerTranslation": [
                                45,
                                167
                            ],
                            "nominalUniformScaleFactor": 1.06910569,
                            "normalizedPosition": [
                                -106,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                894,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                22,
                                159,
                                858,
                                902
                            ],
                            "uniformScaleFactor": 1.06910569
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                467,
                                915
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                467,
                                172,
                                915,
                                961
                            ],
                            "bodyCentroid": [
                                692.8496286861534,
                                520.6024944950564
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 185288,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                43,
                                167,
                                977,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                395,
                                843
                            ],
                            "bodyBaselineY": 901,
                            "bodyBounds": [
                                395,
                                165,
                                843,
                                902
                            ],
                            "bodyCentroid": [
                                630.7639099484219,
                                489.9954998568967
                            ],
                            "bodyHeight": 737,
                            "bodyPixels": 164217,
                            "footBandTopY": 813,
                            "footCentroidX": 667,
                            "fullBounds": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 6,
                        "output": "derived/dense-body-f1-root-lock-v8/frames/06/final/sprite.png",
                        "outputSha256": "c8145e50b13b08b37c9a0c10e59b45f998ce6b02951b285a38834731b47bd1f8",
                        "source": "frames/06/final/sprite.png",
                        "sourceSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                934,
                                794
                            ],
                            "finalUniformScaleFactor": 1.07055631,
                            "integerTranslation": [
                                45,
                                167
                            ],
                            "nominalUniformScaleFactor": 1.07055631,
                            "normalizedPosition": [
                                -106,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                -2,
                                0
                            ],
                            "scaledSize": [
                                934,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "uniformScaleFactor": 1.07055631
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                471,
                                919
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                471,
                                172,
                                919,
                                961
                            ],
                            "bodyCentroid": [
                                693.9037363134753,
                                519.6427224329684
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 185584,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                42,
                                167,
                                976,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                414,
                                862
                            ],
                            "bodyBaselineY": 901,
                            "bodyBounds": [
                                414,
                                165,
                                862,
                                902
                            ],
                            "bodyCentroid": [
                                635.6041769176097,
                                489.1086569594032
                            ],
                            "bodyHeight": 737,
                            "bodyPixels": 164619,
                            "footBandTopY": 813,
                            "footCentroidX": 667,
                            "fullBounds": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 7,
                        "output": "derived/dense-body-f1-root-lock-v8/frames/07/final/sprite.png",
                        "outputSha256": "a2b0a65d441f111664ad14cbb02c933f79aef2c4a5b214233e45751091dd336b",
                        "source": "frames/07/final/sprite.png",
                        "sourceSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                934,
                                794
                            ],
                            "finalUniformScaleFactor": 1.07055631,
                            "integerTranslation": [
                                45,
                                167
                            ],
                            "nominalUniformScaleFactor": 1.07055631,
                            "normalizedPosition": [
                                -106,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                -3,
                                0
                            ],
                            "scaledSize": [
                                934,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "uniformScaleFactor": 1.07055631
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                467,
                                915
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                467,
                                172,
                                915,
                                961
                            ],
                            "bodyCentroid": [
                                692.8496286861534,
                                520.6024944950564
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 185288,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                43,
                                167,
                                977,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                395,
                                843
                            ],
                            "bodyBaselineY": 901,
                            "bodyBounds": [
                                395,
                                165,
                                843,
                                902
                            ],
                            "bodyCentroid": [
                                630.7639099484219,
                                489.9954998568967
                            ],
                            "bodyHeight": 737,
                            "bodyPixels": 164217,
                            "footBandTopY": 813,
                            "footCentroidX": 667,
                            "fullBounds": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 8,
                        "output": "derived/dense-body-f1-root-lock-v8/frames/08/final/sprite.png",
                        "outputSha256": "c8145e50b13b08b37c9a0c10e59b45f998ce6b02951b285a38834731b47bd1f8",
                        "source": "frames/08/final/sprite.png",
                        "sourceSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                934,
                                794
                            ],
                            "finalUniformScaleFactor": 1.07055631,
                            "integerTranslation": [
                                45,
                                167
                            ],
                            "nominalUniformScaleFactor": 1.07055631,
                            "normalizedPosition": [
                                -106,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                -2,
                                0
                            ],
                            "scaledSize": [
                                934,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "uniformScaleFactor": 1.07055631
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                460,
                                908
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                460,
                                172,
                                908,
                                961
                            ],
                            "bodyCentroid": [
                                689.6176978237078,
                                523.8034912147924
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 183661,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                45,
                                167,
                                939,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                377,
                                825
                            ],
                            "bodyBaselineY": 901,
                            "bodyBounds": [
                                377,
                                164,
                                825,
                                902
                            ],
                            "bodyCentroid": [
                                620.5555535108543,
                                492.0453064904952
                            ],
                            "bodyHeight": 738,
                            "bodyPixels": 163023,
                            "footBandTopY": 812,
                            "footCentroidX": 663,
                            "fullBounds": [
                                22,
                                159,
                                858,
                                902
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 9,
                        "output": "derived/dense-body-f1-root-lock-v8/frames/09/final/sprite.png",
                        "outputSha256": "e597e98e9ceabb5085577ff1615ebf8b0a6d41f155dd1c270e1a896a7c20140e",
                        "source": "frames/09/final/sprite.png",
                        "sourceSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                894,
                                794
                            ],
                            "finalUniformScaleFactor": 1.06910569,
                            "integerTranslation": [
                                45,
                                167
                            ],
                            "nominalUniformScaleFactor": 1.06910569,
                            "normalizedPosition": [
                                -106,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                894,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                22,
                                159,
                                858,
                                902
                            ],
                            "uniformScaleFactor": 1.06910569
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                435,
                                883
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                435,
                                172,
                                883,
                                961
                            ],
                            "bodyCentroid": [
                                677.749002948286,
                                529.1568731573212
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 180783,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                84,
                                167,
                                893,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                338,
                                786
                            ],
                            "bodyBaselineY": 902,
                            "bodyBounds": [
                                338,
                                164,
                                786,
                                903
                            ],
                            "bodyCentroid": [
                                589.1519941905932,
                                498.34723618714236
                            ],
                            "bodyHeight": 739,
                            "bodyPixels": 161118,
                            "footBandTopY": 813,
                            "footCentroidX": 641.5,
                            "fullBounds": [
                                36,
                                159,
                                794,
                                903
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 10,
                        "output": "derived/dense-body-f1-root-lock-v8/frames/10/final/sprite.png",
                        "outputSha256": "ddcf24b70b44956b3a5d9a56b950d6152469be120c4cd85c873f9f064b77f4b0",
                        "source": "frames/10/final/sprite.png",
                        "sourceSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                809,
                                794
                            ],
                            "finalUniformScaleFactor": 1.067659,
                            "integerTranslation": [
                                84,
                                167
                            ],
                            "nominalUniformScaleFactor": 1.067659,
                            "normalizedPosition": [
                                -67,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                809,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                36,
                                159,
                                794,
                                903
                            ],
                            "uniformScaleFactor": 1.067659
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                435,
                                883
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                435,
                                172,
                                883,
                                961
                            ],
                            "bodyCentroid": [
                                677.221588415972,
                                529.0891673979816
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 182320,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                80,
                                167,
                                896,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                338,
                                786
                            ],
                            "bodyBaselineY": 900,
                            "bodyBounds": [
                                338,
                                166,
                                786,
                                901
                            ],
                            "bodyCentroid": [
                                588.021795891978,
                                498.15211120505296
                            ],
                            "bodyHeight": 735,
                            "bodyPixels": 160856,
                            "footBandTopY": 812,
                            "footCentroidX": 640,
                            "fullBounds": [
                                35,
                                161,
                                795,
                                901
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 11,
                        "output": "derived/dense-body-f1-root-lock-v8/frames/11/final/sprite.png",
                        "outputSha256": "fe9eb1cd1b05a741aa920c2f1db48b30ac14a668db91757036b577fab94532e8",
                        "source": "frames/11/final/sprite.png",
                        "sourceSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                816,
                                794
                            ],
                            "finalUniformScaleFactor": 1.07346939,
                            "integerTranslation": [
                                81,
                                167
                            ],
                            "nominalUniformScaleFactor": 1.07346939,
                            "normalizedPosition": [
                                -70,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                -1,
                                0
                            ],
                            "scaledSize": [
                                816,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                35,
                                161,
                                795,
                                901
                            ],
                            "uniformScaleFactor": 1.07346939
                        }
                    },
                    {
                        "after": {
                            "bodyBandX": [
                                438,
                                886
                            ],
                            "bodyBaselineY": 960,
                            "bodyBounds": [
                                438,
                                172,
                                886,
                                961
                            ],
                            "bodyCentroid": [
                                678.4914231240638,
                                523.461854827727
                            ],
                            "bodyHeight": 789,
                            "bodyPixels": 183575,
                            "footBandTopY": 865,
                            "footCentroidX": 730,
                            "fullBounds": [
                                133,
                                167,
                                915,
                                961
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "before": {
                            "bodyBandX": [
                                345,
                                793
                            ],
                            "bodyBaselineY": 924,
                            "bodyBounds": [
                                345,
                                144,
                                793,
                                925
                            ],
                            "bodyCentroid": [
                                587.3784156193398,
                                491.5705181629274
                            ],
                            "bodyHeight": 781,
                            "bodyPixels": 179982,
                            "footBandTopY": 830,
                            "footCentroidX": 639,
                            "fullBounds": [
                                48,
                                139,
                                822,
                                925
                            ],
                            "measurementPolicy": {
                                "bodyRowDensityFraction": 0.1,
                                "bodyWindowFraction": 0.4375,
                                "footBandHeightFraction": 0.12
                            }
                        },
                        "frame": 12,
                        "output": "derived/dense-body-f1-root-lock-v8/frames/12/final/sprite.png",
                        "outputSha256": "ede2292f77b4af305456cf6f9c9cb063e2d08c94859fb12fe0ed20df7b891586",
                        "source": "frames/12/final/sprite.png",
                        "sourceSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                        "transform": {
                            "boundedScaleSearchRadius": 0.01,
                            "boundedScaleSearchStep": 0.00025,
                            "clipped": false,
                            "finalSize": [
                                782,
                                794
                            ],
                            "finalUniformScaleFactor": 1.01024328,
                            "integerTranslation": [
                                133,
                                167
                            ],
                            "nominalUniformScaleFactor": 1.01024328,
                            "normalizedPosition": [
                                -18,
                                131
                            ],
                            "rootCorrectionIntegerTranslation": [
                                0,
                                0
                            ],
                            "scaledSize": [
                                782,
                                794
                            ],
                            "sequenceUniformScaleFactor": 1,
                            "sourceCrop": [
                                48,
                                139,
                                822,
                                925
                            ],
                            "uniformScaleFactor": 1.01024328
                        }
                    }
                ],
                "policy": {
                    "bodyPartCutting": false,
                    "filter": false,
                    "horizontalRootAuthority": "lower-foot-band median x",
                    "originalFramesPreserved": true,
                    "paletteReduction": false,
                    "perFrameScaleAuthority": "F1 central-body height",
                    "repaint": false,
                    "resampling": "nearest-neighbor",
                    "sequenceEnvelope": "union of normalized full-sprite bounds",
                    "sequenceScale": "one shared fit scale applied equally to every normalized frame",
                    "stretch": false,
                    "translation": "whole-sprite integer x/y only",
                    "uniformScaleOnly": true,
                    "verticalRootAuthority": "opaque baseline"
                },
                "preview": {
                    "path": "derived/dense-body-f1-root-lock-v8/preview/animation.gif",
                    "sha256": "de12af6392e85bbadf2eba32e2c63e29a35caf12f8795068c847dc2b789f8bfe"
                },
                "schemaVersion": "midgard-pixels.sequence-envelope-root-lock.v1",
                "sequence": {
                    "canvasSize": [
                        1024,
                        1024
                    ],
                    "normalizedUnionBounds": [
                        -106,
                        26,
                        828,
                        925
                    ],
                    "normalizedUnionSize": [
                        934,
                        899
                    ],
                    "padding": 8,
                    "sharedUniformScaleFactor": 1
                },
                "sourceRunId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "status": "derived-experiment-owner-review-required",
                "target": {
                    "bodyBandX": [
                        266,
                        714
                    ],
                    "bodyBaselineY": 924,
                    "bodyBounds": [
                        311,
                        136,
                        714,
                        925
                    ],
                    "bodyCentroid": [
                        526.8609554906342,
                        488.7950850661626
                    ],
                    "bodyHeight": 789,
                    "bodyPixels": 174570,
                    "footBandTopY": 829,
                    "footCentroidX": 579,
                    "fullBounds": [
                        311,
                        26,
                        714,
                        925
                    ],
                    "measurementPolicy": {
                        "bodyRowDensityFraction": 0.1,
                        "bodyWindowFraction": 0.4375,
                        "footBandHeightFraction": 0.12
                    }
                }
            }
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/report.json": {
            "sha256": "07b4af4beab84860a6faf86cddbc1985573e56e3546860f99f0825256ef7b30c",
            "bytes": 14651,
            "value": {
                "artifacts": [
                    {
                        "path": "review/onion-audit/f1-to-f02.png",
                        "sha256": "90cc4252f61a056da81192e5b405756e9090469868a133771b936dc0660c47ef"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f01-f02.png",
                        "sha256": "90cc4252f61a056da81192e5b405756e9090469868a133771b936dc0660c47ef"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f03.png",
                        "sha256": "c24039c574299c03650863a567bc3d9b5c8e3e09f8cf7d315a5bdc79850fcc7d"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f02-f03.png",
                        "sha256": "ca8bc5e1964ed9088bb687194d9324bbeff9c47d9fefff9a01ff7d4cd4b73c4a"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f04.png",
                        "sha256": "955f8be1f61b9838b8f8134264ca72db09f7095e8a4fe522cc11eb184d74e09a"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f03-f04.png",
                        "sha256": "6444c2d3b23b308d47d1fcf82ff77b730752423b107b66d51f290facfce15cd8"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f05.png",
                        "sha256": "0422378da27b14e2bdcd75d23084e8d8eb771fd73f4723575ce28f194838caf7"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f04-f05.png",
                        "sha256": "c9ec9f47c38a8720bee2cd5c406494288ff53cd1c3c6241d8c6478d99bb2ad7a"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f06.png",
                        "sha256": "0c1c9aa8badcafba2fee1b6c7246bbe61e56df5f9b2b5434c4ee0f393ec68a9f"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f05-f06.png",
                        "sha256": "8c82e4c47a67b182a6ebcdfb224dbbebc914df12e9c456dedee6135b7830dac8"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f07.png",
                        "sha256": "d12893e7cecdd07873dd91b10c9d40eb23e3ca97a01f45e27dd2c6ac9d31152f"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f06-f07.png",
                        "sha256": "11bd20dbf50f896ac2f1a106d6273e7e7ae32e2997ac8a7d22ca22fa02435076"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f08.png",
                        "sha256": "0c1c9aa8badcafba2fee1b6c7246bbe61e56df5f9b2b5434c4ee0f393ec68a9f"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f07-f08.png",
                        "sha256": "a41a3c4d37a01ad89060ef589276968fd8563f3c9533d12a4db49c827a24405b"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f09.png",
                        "sha256": "0422378da27b14e2bdcd75d23084e8d8eb771fd73f4723575ce28f194838caf7"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f08-f09.png",
                        "sha256": "8eab8b8a84fe319b901b5b1b80088ce85065f2f3f0494c42139fe3af69a197fe"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f10.png",
                        "sha256": "955f8be1f61b9838b8f8134264ca72db09f7095e8a4fe522cc11eb184d74e09a"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f09-f10.png",
                        "sha256": "675e05f18577025c72e4ba454334f53c4bf6d27f7d222110593e84bb53d370e6"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f11.png",
                        "sha256": "c24039c574299c03650863a567bc3d9b5c8e3e09f8cf7d315a5bdc79850fcc7d"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f10-f11.png",
                        "sha256": "ddb6c7a2c750412647471df5d01797ed8ce8b3323c7245a521dd44f5dee760ef"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f12.png",
                        "sha256": "90cc4252f61a056da81192e5b405756e9090469868a133771b936dc0660c47ef"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f11-f12.png",
                        "sha256": "29f4499014e6fa9d97919a45b6eaa975a9b30785daa731106daebd53506bacee"
                    },
                    {
                        "path": "review/onion-audit/f1-onion-sheet.png",
                        "sha256": "1f41b0fe23a1b1b39cf384e81897fcff26ecc52537bce1c2bcb6c5fe806c6a4c"
                    }
                ],
                "frames": [
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1,
                        "bodyBandBounds": [
                            462,
                            172,
                            865,
                            961
                        ],
                        "bodyBandCentroid": [
                            677.8609554906342,
                            524.7950850661625
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0,
                            0
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 174570,
                        "bodyBandX": [
                            417,
                            865
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 1,
                        "fullBounds": [
                            462,
                            62,
                            865,
                            961
                        ],
                        "fullCentroid": [
                            676.17,
                            520.4843
                        ],
                        "path": "frames/01/final/sprite.png",
                        "sha256": "06100125347e2b71487076fee2aa74f620b93d70eac1fc05b2019570f54304ee"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.051584,
                        "bodyBandBounds": [
                            438,
                            172,
                            886,
                            961
                        ],
                        "bodyBandCentroid": [
                            678.4914231240638,
                            523.461854827727
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0.6305,
                            -1.3332
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 183575,
                        "bodyBandX": [
                            438,
                            886
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 2,
                        "fullBounds": [
                            133,
                            167,
                            915,
                            961
                        ],
                        "fullCentroid": [
                            656.1735,
                            509.6381
                        ],
                        "path": "frames/02/final/sprite.png",
                        "sha256": "ede2292f77b4af305456cf6f9c9cb063e2d08c94859fb12fe0ed20df7b891586"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.044395,
                        "bodyBandBounds": [
                            435,
                            172,
                            883,
                            961
                        ],
                        "bodyBandCentroid": [
                            677.221588415972,
                            529.0891673979816
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -0.6394,
                            4.2941
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 182320,
                        "bodyBandX": [
                            435,
                            883
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 3,
                        "fullBounds": [
                            80,
                            167,
                            896,
                            961
                        ],
                        "fullCentroid": [
                            656.0059,
                            528.7284
                        ],
                        "path": "frames/03/final/sprite.png",
                        "sha256": "fe9eb1cd1b05a741aa920c2f1db48b30ac14a668db91757036b577fab94532e8"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.03559,
                        "bodyBandBounds": [
                            435,
                            172,
                            883,
                            961
                        ],
                        "bodyBandCentroid": [
                            677.749002948286,
                            529.1568731573212
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -0.112,
                            4.3618
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 180783,
                        "bodyBandX": [
                            435,
                            883
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 4,
                        "fullBounds": [
                            84,
                            167,
                            893,
                            961
                        ],
                        "fullCentroid": [
                            656.8584,
                            529.2579
                        ],
                        "path": "frames/04/final/sprite.png",
                        "sha256": "ddcf24b70b44956b3a5d9a56b950d6152469be120c4cd85c873f9f064b77f4b0"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.052077,
                        "bodyBandBounds": [
                            460,
                            172,
                            908,
                            961
                        ],
                        "bodyBandCentroid": [
                            689.6176978237078,
                            523.8034912147924
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            11.7567,
                            -0.9916
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 183661,
                        "bodyBandX": [
                            460,
                            908
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 5,
                        "fullBounds": [
                            45,
                            167,
                            939,
                            961
                        ],
                        "fullCentroid": [
                            664.8246,
                            519.5158
                        ],
                        "path": "frames/05/final/sprite.png",
                        "sha256": "e597e98e9ceabb5085577ff1615ebf8b0a6d41f155dd1c270e1a896a7c20140e"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.061397,
                        "bodyBandBounds": [
                            467,
                            172,
                            915,
                            961
                        ],
                        "bodyBandCentroid": [
                            692.8496286861534,
                            520.6024944950564
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            14.9887,
                            -4.1926
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 185288,
                        "bodyBandX": [
                            467,
                            915
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 6,
                        "fullBounds": [
                            43,
                            167,
                            977,
                            961
                        ],
                        "fullCentroid": [
                            671.2987,
                            514.8979
                        ],
                        "path": "frames/06/final/sprite.png",
                        "sha256": "c8145e50b13b08b37c9a0c10e59b45f998ce6b02951b285a38834731b47bd1f8"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.063092,
                        "bodyBandBounds": [
                            471,
                            172,
                            919,
                            961
                        ],
                        "bodyBandCentroid": [
                            693.9037363134753,
                            519.6427224329684
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            16.0428,
                            -5.1524
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 185584,
                        "bodyBandX": [
                            471,
                            919
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 7,
                        "fullBounds": [
                            42,
                            167,
                            976,
                            961
                        ],
                        "fullCentroid": [
                            671.8366,
                            514.572
                        ],
                        "path": "frames/07/final/sprite.png",
                        "sha256": "a2b0a65d441f111664ad14cbb02c933f79aef2c4a5b214233e45751091dd336b"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.061397,
                        "bodyBandBounds": [
                            467,
                            172,
                            915,
                            961
                        ],
                        "bodyBandCentroid": [
                            692.8496286861534,
                            520.6024944950564
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            14.9887,
                            -4.1926
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 185288,
                        "bodyBandX": [
                            467,
                            915
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 8,
                        "fullBounds": [
                            43,
                            167,
                            977,
                            961
                        ],
                        "fullCentroid": [
                            671.2987,
                            514.8979
                        ],
                        "path": "frames/08/final/sprite.png",
                        "sha256": "c8145e50b13b08b37c9a0c10e59b45f998ce6b02951b285a38834731b47bd1f8"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.052077,
                        "bodyBandBounds": [
                            460,
                            172,
                            908,
                            961
                        ],
                        "bodyBandCentroid": [
                            689.6176978237078,
                            523.8034912147924
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            11.7567,
                            -0.9916
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 183661,
                        "bodyBandX": [
                            460,
                            908
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 9,
                        "fullBounds": [
                            45,
                            167,
                            939,
                            961
                        ],
                        "fullCentroid": [
                            664.8246,
                            519.5158
                        ],
                        "path": "frames/09/final/sprite.png",
                        "sha256": "e597e98e9ceabb5085577ff1615ebf8b0a6d41f155dd1c270e1a896a7c20140e"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.03559,
                        "bodyBandBounds": [
                            435,
                            172,
                            883,
                            961
                        ],
                        "bodyBandCentroid": [
                            677.749002948286,
                            529.1568731573212
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -0.112,
                            4.3618
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 180783,
                        "bodyBandX": [
                            435,
                            883
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 10,
                        "fullBounds": [
                            84,
                            167,
                            893,
                            961
                        ],
                        "fullCentroid": [
                            656.8584,
                            529.2579
                        ],
                        "path": "frames/10/final/sprite.png",
                        "sha256": "ddcf24b70b44956b3a5d9a56b950d6152469be120c4cd85c873f9f064b77f4b0"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.044395,
                        "bodyBandBounds": [
                            435,
                            172,
                            883,
                            961
                        ],
                        "bodyBandCentroid": [
                            677.221588415972,
                            529.0891673979816
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -0.6394,
                            4.2941
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 182320,
                        "bodyBandX": [
                            435,
                            883
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 11,
                        "fullBounds": [
                            80,
                            167,
                            896,
                            961
                        ],
                        "fullCentroid": [
                            656.0059,
                            528.7284
                        ],
                        "path": "frames/11/final/sprite.png",
                        "sha256": "fe9eb1cd1b05a741aa920c2f1db48b30ac14a668db91757036b577fab94532e8"
                    },
                    {
                        "baselineY": 960,
                        "bodyBandAreaRatioToF1": 1.051584,
                        "bodyBandBounds": [
                            438,
                            172,
                            886,
                            961
                        ],
                        "bodyBandCentroid": [
                            678.4914231240638,
                            523.461854827727
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0.6305,
                            -1.3332
                        ],
                        "bodyBandHeight": 789,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 183575,
                        "bodyBandX": [
                            438,
                            886
                        ],
                        "footCentroidX": 730,
                        "footCentroidXDeltaFromF1": 0,
                        "frame": 12,
                        "fullBounds": [
                            133,
                            167,
                            915,
                            961
                        ],
                        "fullCentroid": [
                            656.1735,
                            509.6381
                        ],
                        "path": "frames/12/final/sprite.png",
                        "sha256": "ede2292f77b4af305456cf6f9c9cb063e2d08c94859fb12fe0ed20df7b891586"
                    }
                ],
                "measurement": {
                    "bodyBandDerivedFrom": "per-frame maximum-alpha fixed-width body window with dense-row gating; see measurementPolicy",
                    "canvas": [
                        1024,
                        1024
                    ],
                    "measurementPolicy": {
                        "bodyRowDensityFraction": 0.1,
                        "bodyWindowFraction": 0.4375,
                        "footBandHeightFraction": 0.12
                    },
                    "onionColors": {
                        "background": "#10131d",
                        "comparisonOnly": "#24e0ee",
                        "f1Only": "#ff3399",
                        "shared": "#f6f1e7"
                    }
                },
                "runId": "dense-body-f1-root-lock-v8",
                "schemaVersion": "midgard-pixels.generation-onion-audit.v1",
                "summary": {
                    "baselineRangePx": 0,
                    "maximumAbsoluteBodyCentroidXDriftPx": 16.0428,
                    "maximumAbsoluteFootRootXDriftPx": 0,
                    "minimumBodyAreaRatioToF1": 1,
                    "minimumBodyHeightRatioToF1": 1,
                    "providerLateralDriftDetected": false,
                    "providerScaleDriftDetected": false
                }
            }
        },
        "derived/sequence-envelope-foot-root-lock-v3/report.json": {
            "sha256": "6cc3e3019d482de2175d50f2234b16d4380a6fcff1cf1d76153bff04256354df",
            "bytes": 24857,
            "value": {
                "frames": [
                    {
                        "after": {
                            "baselineY": 939,
                            "bodyBandX": [
                                545,
                                853
                            ],
                            "bodyBounds": [
                                545,
                                84,
                                853,
                                940
                            ],
                            "bodyCentroid": [
                                702.3149383848978,
                                525.1583311484006
                            ],
                            "bodyHeight": 856,
                            "bodyPixels": 152560,
                            "footBandTopY": 836,
                            "footCentroidX": 748,
                            "fullBounds": [
                                495,
                                84,
                                879,
                                940
                            ]
                        },
                        "before": {
                            "baselineY": 924,
                            "bodyBandX": [
                                364,
                                686
                            ],
                            "bodyBounds": [
                                364,
                                26,
                                686,
                                925
                            ],
                            "bodyCentroid": [
                                528.7741404502758,
                                489.8503175786492
                            ],
                            "bodyHeight": 899,
                            "bodyPixels": 167675,
                            "footBandTopY": 816,
                            "footCentroidX": 576,
                            "fullBounds": [
                                311,
                                26,
                                714,
                                925
                            ]
                        },
                        "frame": 1,
                        "output": "derived/sequence-envelope-foot-root-lock-v3/frames/01/final/sprite.png",
                        "outputSha256": "8e99710bcf88c65e474fd0081d5ada5ae03d6bd5fe772ad330886b1ff2425dbf",
                        "source": "frames/01/final/sprite.png",
                        "sourceSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                384,
                                856
                            ],
                            "finalUniformScaleFactor": 0.95184136,
                            "integerTranslation": [
                                495,
                                84
                            ],
                            "normalizedPosition": [
                                311,
                                26
                            ],
                            "scaledSize": [
                                403,
                                899
                            ],
                            "sequenceUniformScaleFactor": 0.95184136,
                            "sourceCrop": [
                                311,
                                26,
                                714,
                                925
                            ],
                            "uniformScaleFactor": 1
                        }
                    },
                    {
                        "after": {
                            "baselineY": 939,
                            "bodyBandX": [
                                330,
                                1004
                            ],
                            "bodyBounds": [
                                330,
                                84,
                                946,
                                940
                            ],
                            "bodyCentroid": [
                                680.1076383817731,
                                460.9766365273887
                            ],
                            "bodyHeight": 856,
                            "bodyPixels": 225951,
                            "footBandTopY": 836,
                            "footCentroidX": 746,
                            "fullBounds": [
                                104,
                                84,
                                946,
                                940
                            ]
                        },
                        "before": {
                            "baselineY": 924,
                            "bodyBandX": [
                                364,
                                686
                            ],
                            "bodyBounds": [
                                364,
                                139,
                                686,
                                925
                            ],
                            "bodyCentroid": [
                                560.9454765038741,
                                504.0326761022078
                            ],
                            "bodyHeight": 786,
                            "bodyPixels": 147386,
                            "footBandTopY": 830,
                            "footCentroidX": 639,
                            "fullBounds": [
                                48,
                                139,
                                822,
                                925
                            ]
                        },
                        "frame": 2,
                        "output": "derived/sequence-envelope-foot-root-lock-v3/frames/02/final/sprite.png",
                        "outputSha256": "b1ba3031fae43cdef40b32e6968fd16722a4cdfec103efad5e5abd8d9c77acef",
                        "source": "frames/02/final/sprite.png",
                        "sourceSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                842,
                                856
                            ],
                            "finalUniformScaleFactor": 1.08868369,
                            "integerTranslation": [
                                104,
                                84
                            ],
                            "normalizedPosition": [
                                -100,
                                26
                            ],
                            "scaledSize": [
                                885,
                                899
                            ],
                            "sequenceUniformScaleFactor": 0.95184136,
                            "sourceCrop": [
                                48,
                                139,
                                822,
                                925
                            ],
                            "uniformScaleFactor": 1.1437659
                        }
                    },
                    {
                        "after": {
                            "baselineY": 939,
                            "bodyBandX": [
                                317,
                                1021
                            ],
                            "bodyBounds": [
                                317,
                                84,
                                927,
                                940
                            ],
                            "bodyCentroid": [
                                681.0955996267338,
                                473.47568786975546
                            ],
                            "bodyHeight": 856,
                            "bodyPixels": 220754,
                            "footBandTopY": 836,
                            "footCentroidX": 748,
                            "fullBounds": [
                                48,
                                84,
                                927,
                                940
                            ]
                        },
                        "before": {
                            "baselineY": 900,
                            "bodyBandX": [
                                364,
                                686
                            ],
                            "bodyBounds": [
                                364,
                                161,
                                686,
                                901
                            ],
                            "bodyCentroid": [
                                564.8075852311624,
                                506.99114599972614
                            ],
                            "bodyHeight": 740,
                            "bodyPixels": 131466,
                            "footBandTopY": 811,
                            "footCentroidX": 640,
                            "fullBounds": [
                                35,
                                161,
                                795,
                                901
                            ]
                        },
                        "frame": 3,
                        "output": "derived/sequence-envelope-foot-root-lock-v3/frames/03/final/sprite.png",
                        "outputSha256": "034c8d87b5248a659f737ad2505b8a35d54235dd47e5b422a5efed96f980695c",
                        "source": "frames/03/final/sprite.png",
                        "sourceSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                879,
                                856
                            ],
                            "finalUniformScaleFactor": 1.15635862,
                            "integerTranslation": [
                                48,
                                84
                            ],
                            "normalizedPosition": [
                                -159,
                                26
                            ],
                            "scaledSize": [
                                923,
                                899
                            ],
                            "sequenceUniformScaleFactor": 0.95184136,
                            "sourceCrop": [
                                35,
                                161,
                                795,
                                901
                            ],
                            "uniformScaleFactor": 1.21486486
                        }
                    },
                    {
                        "after": {
                            "baselineY": 939,
                            "bodyBandX": [
                                319,
                                1017
                            ],
                            "bodyBounds": [
                                319,
                                84,
                                923,
                                940
                            ],
                            "bodyCentroid": [
                                680.9105380888992,
                                473.9373304605982
                            ],
                            "bodyHeight": 856,
                            "bodyPixels": 218607,
                            "footBandTopY": 836,
                            "footCentroidX": 748,
                            "fullBounds": [
                                51,
                                84,
                                923,
                                940
                            ]
                        },
                        "before": {
                            "baselineY": 902,
                            "bodyBandX": [
                                364,
                                686
                            ],
                            "bodyBounds": [
                                364,
                                159,
                                686,
                                903
                            ],
                            "bodyCentroid": [
                                565.5417870290623,
                                507.0239860976669
                            ],
                            "bodyHeight": 744,
                            "bodyPixels": 131201,
                            "footBandTopY": 813,
                            "footCentroidX": 641.5,
                            "fullBounds": [
                                36,
                                159,
                                794,
                                903
                            ]
                        },
                        "frame": 4,
                        "output": "derived/sequence-envelope-foot-root-lock-v3/frames/04/final/sprite.png",
                        "outputSha256": "3db10f98b48025d212868324a46d5c66efc1bbf1ffd5152a5b9c0fd1c9baa47d",
                        "source": "frames/04/final/sprite.png",
                        "sourceSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                872,
                                856
                            ],
                            "finalUniformScaleFactor": 1.15014164,
                            "integerTranslation": [
                                51,
                                84
                            ],
                            "normalizedPosition": [
                                -156,
                                26
                            ],
                            "scaledSize": [
                                916,
                                899
                            ],
                            "sequenceUniformScaleFactor": 0.95184136,
                            "sourceCrop": [
                                36,
                                159,
                                794,
                                903
                            ],
                            "uniformScaleFactor": 1.20833333
                        }
                    },
                    {
                        "after": {
                            "baselineY": 939,
                            "bodyBandX": [
                                291,
                                1024
                            ],
                            "bodyBounds": [
                                291,
                                83,
                                972,
                                940
                            ],
                            "bodyCentroid": [
                                688.715747194122,
                                464.0431186774361
                            ],
                            "bodyHeight": 857,
                            "bodyPixels": 227558,
                            "footBandTopY": 836,
                            "footCentroidX": 747,
                            "fullBounds": [
                                8,
                                83,
                                972,
                                940
                            ]
                        },
                        "before": {
                            "baselineY": 901,
                            "bodyBandX": [
                                364,
                                686
                            ],
                            "bodyBounds": [
                                364,
                                160,
                                686,
                                902
                            ],
                            "bodyCentroid": [
                                572.7421481792693,
                                501.42202196709223
                            ],
                            "bodyHeight": 742,
                            "bodyPixels": 116629,
                            "footBandTopY": 812,
                            "footCentroidX": 663,
                            "fullBounds": [
                                22,
                                159,
                                858,
                                902
                            ]
                        },
                        "frame": 5,
                        "output": "derived/sequence-envelope-foot-root-lock-v3/frames/05/final/sprite.png",
                        "outputSha256": "e5dd36e894ed20254ff8e9a070e45ace544957a2e409612adab6f95ec3416b66",
                        "source": "frames/05/final/sprite.png",
                        "sourceSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                964,
                                857
                            ],
                            "finalUniformScaleFactor": 1.15324176,
                            "integerTranslation": [
                                8,
                                83
                            ],
                            "normalizedPosition": [
                                -201,
                                25
                            ],
                            "scaledSize": [
                                1013,
                                900
                            ],
                            "sequenceUniformScaleFactor": 0.95184136,
                            "sourceCrop": [
                                22,
                                159,
                                858,
                                902
                            ],
                            "uniformScaleFactor": 1.2115903
                        }
                    },
                    {
                        "after": {
                            "baselineY": 939,
                            "bodyBandX": [
                                285,
                                1024
                            ],
                            "bodyBounds": [
                                285,
                                84,
                                1016,
                                940
                            ],
                            "bodyCentroid": [
                                698.2844051625943,
                                459.7454159279909
                            ],
                            "bodyHeight": 856,
                            "bodyPixels": 233526,
                            "footBandTopY": 836,
                            "footCentroidX": 748,
                            "fullBounds": [
                                10,
                                84,
                                1016,
                                940
                            ]
                        },
                        "before": {
                            "baselineY": 901,
                            "bodyBandX": [
                                364,
                                686
                            ],
                            "bodyBounds": [
                                364,
                                160,
                                686,
                                902
                            ],
                            "bodyCentroid": [
                                573.7350001323323,
                                500.97427459837144
                            ],
                            "bodyHeight": 742,
                            "bodyPixels": 113351,
                            "footBandTopY": 812,
                            "footCentroidX": 667,
                            "fullBounds": [
                                27,
                                160,
                                899,
                                902
                            ]
                        },
                        "frame": 6,
                        "output": "derived/sequence-envelope-foot-root-lock-v3/frames/06/final/sprite.png",
                        "outputSha256": "dd92222a2c43c1dbfc77d979d1cc8836c07324a5766ebb2a6d9342b92f3fa042",
                        "source": "frames/06/final/sprite.png",
                        "sourceSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                1006,
                                856
                            ],
                            "finalUniformScaleFactor": 1.15324176,
                            "integerTranslation": [
                                10,
                                84
                            ],
                            "normalizedPosition": [
                                -199,
                                26
                            ],
                            "scaledSize": [
                                1057,
                                899
                            ],
                            "sequenceUniformScaleFactor": 0.95184136,
                            "sourceCrop": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "uniformScaleFactor": 1.2115903
                        }
                    },
                    {
                        "after": {
                            "baselineY": 939,
                            "bodyBandX": [
                                287,
                                1024
                            ],
                            "bodyBounds": [
                                287,
                                84,
                                1016,
                                940
                            ],
                            "bodyCentroid": [
                                699.6828477997302,
                                459.3578021208654
                            ],
                            "bodyHeight": 856,
                            "bodyPixels": 234244,
                            "footBandTopY": 836,
                            "footCentroidX": 748,
                            "fullBounds": [
                                10,
                                84,
                                1016,
                                940
                            ]
                        },
                        "before": {
                            "baselineY": 901,
                            "bodyBandX": [
                                364,
                                686
                            ],
                            "bodyBounds": [
                                364,
                                160,
                                686,
                                902
                            ],
                            "bodyCentroid": [
                                573.790408055114,
                                501.1102102102102
                            ],
                            "bodyHeight": 742,
                            "bodyPixels": 113220,
                            "footBandTopY": 812,
                            "footCentroidX": 667,
                            "fullBounds": [
                                27,
                                160,
                                899,
                                902
                            ]
                        },
                        "frame": 7,
                        "output": "derived/sequence-envelope-foot-root-lock-v3/frames/07/final/sprite.png",
                        "outputSha256": "0a34659797069dc40fa64890e53313d2e3047361f9ebdae6f4308a382c9e27fc",
                        "source": "frames/07/final/sprite.png",
                        "sourceSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                1006,
                                856
                            ],
                            "finalUniformScaleFactor": 1.15324176,
                            "integerTranslation": [
                                10,
                                84
                            ],
                            "normalizedPosition": [
                                -199,
                                26
                            ],
                            "scaledSize": [
                                1057,
                                899
                            ],
                            "sequenceUniformScaleFactor": 0.95184136,
                            "sourceCrop": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "uniformScaleFactor": 1.2115903
                        }
                    },
                    {
                        "after": {
                            "baselineY": 939,
                            "bodyBandX": [
                                285,
                                1024
                            ],
                            "bodyBounds": [
                                285,
                                84,
                                1016,
                                940
                            ],
                            "bodyCentroid": [
                                698.2844051625943,
                                459.7454159279909
                            ],
                            "bodyHeight": 856,
                            "bodyPixels": 233526,
                            "footBandTopY": 836,
                            "footCentroidX": 748,
                            "fullBounds": [
                                10,
                                84,
                                1016,
                                940
                            ]
                        },
                        "before": {
                            "baselineY": 901,
                            "bodyBandX": [
                                364,
                                686
                            ],
                            "bodyBounds": [
                                364,
                                160,
                                686,
                                902
                            ],
                            "bodyCentroid": [
                                573.7350001323323,
                                500.97427459837144
                            ],
                            "bodyHeight": 742,
                            "bodyPixels": 113351,
                            "footBandTopY": 812,
                            "footCentroidX": 667,
                            "fullBounds": [
                                27,
                                160,
                                899,
                                902
                            ]
                        },
                        "frame": 8,
                        "output": "derived/sequence-envelope-foot-root-lock-v3/frames/08/final/sprite.png",
                        "outputSha256": "dd92222a2c43c1dbfc77d979d1cc8836c07324a5766ebb2a6d9342b92f3fa042",
                        "source": "frames/08/final/sprite.png",
                        "sourceSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                1006,
                                856
                            ],
                            "finalUniformScaleFactor": 1.15324176,
                            "integerTranslation": [
                                10,
                                84
                            ],
                            "normalizedPosition": [
                                -199,
                                26
                            ],
                            "scaledSize": [
                                1057,
                                899
                            ],
                            "sequenceUniformScaleFactor": 0.95184136,
                            "sourceCrop": [
                                27,
                                160,
                                899,
                                902
                            ],
                            "uniformScaleFactor": 1.2115903
                        }
                    },
                    {
                        "after": {
                            "baselineY": 939,
                            "bodyBandX": [
                                291,
                                1024
                            ],
                            "bodyBounds": [
                                291,
                                83,
                                972,
                                940
                            ],
                            "bodyCentroid": [
                                688.715747194122,
                                464.0431186774361
                            ],
                            "bodyHeight": 857,
                            "bodyPixels": 227558,
                            "footBandTopY": 836,
                            "footCentroidX": 747,
                            "fullBounds": [
                                8,
                                83,
                                972,
                                940
                            ]
                        },
                        "before": {
                            "baselineY": 901,
                            "bodyBandX": [
                                364,
                                686
                            ],
                            "bodyBounds": [
                                364,
                                160,
                                686,
                                902
                            ],
                            "bodyCentroid": [
                                572.7421481792693,
                                501.42202196709223
                            ],
                            "bodyHeight": 742,
                            "bodyPixels": 116629,
                            "footBandTopY": 812,
                            "footCentroidX": 663,
                            "fullBounds": [
                                22,
                                159,
                                858,
                                902
                            ]
                        },
                        "frame": 9,
                        "output": "derived/sequence-envelope-foot-root-lock-v3/frames/09/final/sprite.png",
                        "outputSha256": "e5dd36e894ed20254ff8e9a070e45ace544957a2e409612adab6f95ec3416b66",
                        "source": "frames/09/final/sprite.png",
                        "sourceSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                964,
                                857
                            ],
                            "finalUniformScaleFactor": 1.15324176,
                            "integerTranslation": [
                                8,
                                83
                            ],
                            "normalizedPosition": [
                                -201,
                                25
                            ],
                            "scaledSize": [
                                1013,
                                900
                            ],
                            "sequenceUniformScaleFactor": 0.95184136,
                            "sourceCrop": [
                                22,
                                159,
                                858,
                                902
                            ],
                            "uniformScaleFactor": 1.2115903
                        }
                    },
                    {
                        "after": {
                            "baselineY": 939,
                            "bodyBandX": [
                                319,
                                1017
                            ],
                            "bodyBounds": [
                                319,
                                84,
                                923,
                                940
                            ],
                            "bodyCentroid": [
                                680.9105380888992,
                                473.9373304605982
                            ],
                            "bodyHeight": 856,
                            "bodyPixels": 218607,
                            "footBandTopY": 836,
                            "footCentroidX": 748,
                            "fullBounds": [
                                51,
                                84,
                                923,
                                940
                            ]
                        },
                        "before": {
                            "baselineY": 902,
                            "bodyBandX": [
                                364,
                                686
                            ],
                            "bodyBounds": [
                                364,
                                159,
                                686,
                                903
                            ],
                            "bodyCentroid": [
                                565.5417870290623,
                                507.0239860976669
                            ],
                            "bodyHeight": 744,
                            "bodyPixels": 131201,
                            "footBandTopY": 813,
                            "footCentroidX": 641.5,
                            "fullBounds": [
                                36,
                                159,
                                794,
                                903
                            ]
                        },
                        "frame": 10,
                        "output": "derived/sequence-envelope-foot-root-lock-v3/frames/10/final/sprite.png",
                        "outputSha256": "3db10f98b48025d212868324a46d5c66efc1bbf1ffd5152a5b9c0fd1c9baa47d",
                        "source": "frames/10/final/sprite.png",
                        "sourceSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                872,
                                856
                            ],
                            "finalUniformScaleFactor": 1.15014164,
                            "integerTranslation": [
                                51,
                                84
                            ],
                            "normalizedPosition": [
                                -156,
                                26
                            ],
                            "scaledSize": [
                                916,
                                899
                            ],
                            "sequenceUniformScaleFactor": 0.95184136,
                            "sourceCrop": [
                                36,
                                159,
                                794,
                                903
                            ],
                            "uniformScaleFactor": 1.20833333
                        }
                    },
                    {
                        "after": {
                            "baselineY": 939,
                            "bodyBandX": [
                                317,
                                1021
                            ],
                            "bodyBounds": [
                                317,
                                84,
                                927,
                                940
                            ],
                            "bodyCentroid": [
                                681.0955996267338,
                                473.47568786975546
                            ],
                            "bodyHeight": 856,
                            "bodyPixels": 220754,
                            "footBandTopY": 836,
                            "footCentroidX": 748,
                            "fullBounds": [
                                48,
                                84,
                                927,
                                940
                            ]
                        },
                        "before": {
                            "baselineY": 900,
                            "bodyBandX": [
                                364,
                                686
                            ],
                            "bodyBounds": [
                                364,
                                161,
                                686,
                                901
                            ],
                            "bodyCentroid": [
                                564.8075852311624,
                                506.99114599972614
                            ],
                            "bodyHeight": 740,
                            "bodyPixels": 131466,
                            "footBandTopY": 811,
                            "footCentroidX": 640,
                            "fullBounds": [
                                35,
                                161,
                                795,
                                901
                            ]
                        },
                        "frame": 11,
                        "output": "derived/sequence-envelope-foot-root-lock-v3/frames/11/final/sprite.png",
                        "outputSha256": "034c8d87b5248a659f737ad2505b8a35d54235dd47e5b422a5efed96f980695c",
                        "source": "frames/11/final/sprite.png",
                        "sourceSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                879,
                                856
                            ],
                            "finalUniformScaleFactor": 1.15635862,
                            "integerTranslation": [
                                48,
                                84
                            ],
                            "normalizedPosition": [
                                -159,
                                26
                            ],
                            "scaledSize": [
                                923,
                                899
                            ],
                            "sequenceUniformScaleFactor": 0.95184136,
                            "sourceCrop": [
                                35,
                                161,
                                795,
                                901
                            ],
                            "uniformScaleFactor": 1.21486486
                        }
                    },
                    {
                        "after": {
                            "baselineY": 939,
                            "bodyBandX": [
                                330,
                                1004
                            ],
                            "bodyBounds": [
                                330,
                                84,
                                946,
                                940
                            ],
                            "bodyCentroid": [
                                680.1076383817731,
                                460.9766365273887
                            ],
                            "bodyHeight": 856,
                            "bodyPixels": 225951,
                            "footBandTopY": 836,
                            "footCentroidX": 746,
                            "fullBounds": [
                                104,
                                84,
                                946,
                                940
                            ]
                        },
                        "before": {
                            "baselineY": 924,
                            "bodyBandX": [
                                364,
                                686
                            ],
                            "bodyBounds": [
                                364,
                                139,
                                686,
                                925
                            ],
                            "bodyCentroid": [
                                560.9454765038741,
                                504.0326761022078
                            ],
                            "bodyHeight": 786,
                            "bodyPixels": 147386,
                            "footBandTopY": 830,
                            "footCentroidX": 639,
                            "fullBounds": [
                                48,
                                139,
                                822,
                                925
                            ]
                        },
                        "frame": 12,
                        "output": "derived/sequence-envelope-foot-root-lock-v3/frames/12/final/sprite.png",
                        "outputSha256": "b1ba3031fae43cdef40b32e6968fd16722a4cdfec103efad5e5abd8d9c77acef",
                        "source": "frames/12/final/sprite.png",
                        "sourceSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                        "transform": {
                            "clipped": false,
                            "finalSize": [
                                842,
                                856
                            ],
                            "finalUniformScaleFactor": 1.08868369,
                            "integerTranslation": [
                                104,
                                84
                            ],
                            "normalizedPosition": [
                                -100,
                                26
                            ],
                            "scaledSize": [
                                885,
                                899
                            ],
                            "sequenceUniformScaleFactor": 0.95184136,
                            "sourceCrop": [
                                48,
                                139,
                                822,
                                925
                            ],
                            "uniformScaleFactor": 1.1437659
                        }
                    }
                ],
                "policy": {
                    "bodyPartCutting": false,
                    "filter": false,
                    "horizontalRootAuthority": "lower-foot-band median x",
                    "originalFramesPreserved": true,
                    "paletteReduction": false,
                    "perFrameScaleAuthority": "F1 central-body height",
                    "repaint": false,
                    "resampling": "nearest-neighbor",
                    "sequenceEnvelope": "union of normalized full-sprite bounds",
                    "sequenceScale": "one shared fit scale applied equally to every normalized frame",
                    "stretch": false,
                    "translation": "whole-sprite integer x/y only",
                    "uniformScaleOnly": true,
                    "verticalRootAuthority": "opaque baseline"
                },
                "preview": {
                    "path": "derived/sequence-envelope-foot-root-lock-v3/preview/animation.gif",
                    "sha256": "f8563da27ce8539248ded762e4bcd8c080d103daaf6183e054ab99d8f262d1cb"
                },
                "schemaVersion": "midgard-pixels.sequence-envelope-root-lock.v1",
                "sequence": {
                    "canvasSize": [
                        1024,
                        1024
                    ],
                    "normalizedUnionBounds": [
                        -201,
                        25,
                        858,
                        925
                    ],
                    "normalizedUnionSize": [
                        1059,
                        900
                    ],
                    "padding": 8,
                    "sharedUniformScaleFactor": 0.95184136
                },
                "sourceRunId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "status": "derived-experiment-owner-review-required",
                "target": {
                    "baselineY": 924,
                    "bodyBandX": [
                        364,
                        686
                    ],
                    "bodyBounds": [
                        364,
                        26,
                        686,
                        925
                    ],
                    "bodyCentroid": [
                        528.7741404502758,
                        489.8503175786492
                    ],
                    "bodyHeight": 899,
                    "bodyPixels": 167675,
                    "footBandTopY": 816,
                    "footCentroidX": 576,
                    "fullBounds": [
                        311,
                        26,
                        714,
                        925
                    ]
                }
            }
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/report.json": {
            "sha256": "0a7e3da690e27d7c34abaa7d7f98339afafca035f3be168df3f429a015190a55",
            "bytes": 12766,
            "value": {
                "artifacts": [
                    {
                        "path": "review/onion-audit/f1-to-f02.png",
                        "sha256": "fc33f146bd4da713fc3cc722efbe2c4be002953ac3a26509f5cd9c4d2b6b0d47"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f01-f02.png",
                        "sha256": "fc33f146bd4da713fc3cc722efbe2c4be002953ac3a26509f5cd9c4d2b6b0d47"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f03.png",
                        "sha256": "91366189364e4ccddc2c86f7e704ca2f4181ca8c2474316f3ad80a81d200b392"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f02-f03.png",
                        "sha256": "c3ab072d37723e6fdbfff2bff6d53c1308947974a9307ec4e31e0f5b78b96291"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f04.png",
                        "sha256": "1ea334a0dac5e51e8b32363cb7903eca247e9c708c92e98c8876c00d3eaf1a94"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f03-f04.png",
                        "sha256": "bbcfd6127a833ddeb12ce243f3f0ca4eadf9e624a8df7e339f2d729e170140b4"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f05.png",
                        "sha256": "c3edfea9d73eedb747b33f620f15cf24d8234c5583be28614d30a15f60108321"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f04-f05.png",
                        "sha256": "04c39429ec3101b139b6a26a1fd32bf7d6122082da3e83245e0610ab42f0719e"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f06.png",
                        "sha256": "74734c50aecfdf403f211441984ae4f701768166a3d576979ab623cdb5bd2305"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f05-f06.png",
                        "sha256": "7ee05b6ec9939e47f60fdfbcb101a3b3785cbaf7d1119136f500407d4638c80d"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f07.png",
                        "sha256": "c62aa9aec39649d3435608b4d6dca8db2410763cbc990fadc62560bb0a4a2a2d"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f06-f07.png",
                        "sha256": "f5db6478828aa072c7fbfc82d93910ed3652c6e2bf6036ae2a9d18f96e7469b4"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f08.png",
                        "sha256": "74734c50aecfdf403f211441984ae4f701768166a3d576979ab623cdb5bd2305"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f07-f08.png",
                        "sha256": "e95522c34bb4001e2b37659f294c595491e66b37a29dca49876e95e01ece9b99"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f09.png",
                        "sha256": "c3edfea9d73eedb747b33f620f15cf24d8234c5583be28614d30a15f60108321"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f08-f09.png",
                        "sha256": "d2703d0e4d502a32247c3f2bb21688ba25203502f10958008249c56e0d0fc0d1"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f10.png",
                        "sha256": "1ea334a0dac5e51e8b32363cb7903eca247e9c708c92e98c8876c00d3eaf1a94"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f09-f10.png",
                        "sha256": "1c7b2bc5519a02f620e00b60e739486bb1e62a5830317d90aa2e106d2ce96fd3"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f11.png",
                        "sha256": "91366189364e4ccddc2c86f7e704ca2f4181ca8c2474316f3ad80a81d200b392"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f10-f11.png",
                        "sha256": "53121cfde2404ad422046cfe349f92c0fd36145ef6a5d2ddb2c73725d93db695"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f12.png",
                        "sha256": "fc33f146bd4da713fc3cc722efbe2c4be002953ac3a26509f5cd9c4d2b6b0d47"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f11-f12.png",
                        "sha256": "896e91ad4777599b8079868683b6894c317a5f70ff5a08e361fe0e8c2ff10b19"
                    },
                    {
                        "path": "review/onion-audit/f1-onion-sheet.png",
                        "sha256": "6147c1f71158a2b03b60a9e08a416b1b83bd374261bba0b43e7aa862730d9f5e"
                    }
                ],
                "frames": [
                    {
                        "baselineY": 939,
                        "bodyBandAreaRatioToF1": 1,
                        "bodyBandBounds": [
                            545,
                            84,
                            853,
                            940
                        ],
                        "bodyBandCentroid": [
                            702.3149,
                            525.1583
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0,
                            0
                        ],
                        "bodyBandHeight": 856,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 152560,
                        "frame": 1,
                        "fullBounds": [
                            495,
                            84,
                            879,
                            940
                        ],
                        "fullCentroid": [
                            699.0914,
                            520.571
                        ],
                        "path": "frames/01/final/sprite.png",
                        "sha256": "8e99710bcf88c65e474fd0081d5ada5ae03d6bd5fe772ad330886b1ff2425dbf"
                    },
                    {
                        "baselineY": 939,
                        "bodyBandAreaRatioToF1": 1.177248,
                        "bodyBandBounds": [
                            545,
                            84,
                            853,
                            940
                        ],
                        "bodyBandCentroid": [
                            700.4964,
                            455.8436
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -1.8185,
                            -69.3147
                        ],
                        "bodyBandHeight": 856,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 179601,
                        "frame": 2,
                        "fullBounds": [
                            104,
                            84,
                            946,
                            940
                        ],
                        "fullCentroid": [
                            667.4793,
                            453.5746
                        ],
                        "path": "frames/02/final/sprite.png",
                        "sha256": "b1ba3031fae43cdef40b32e6968fd16722a4cdfec103efad5e5abd8d9c77acef"
                    },
                    {
                        "baselineY": 939,
                        "bodyBandAreaRatioToF1": 1.163247,
                        "bodyBandBounds": [
                            545,
                            84,
                            853,
                            940
                        ],
                        "bodyBandCentroid": [
                            705.216,
                            457.0459
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            2.9011,
                            -68.1124
                        ],
                        "bodyBandHeight": 856,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 177465,
                        "frame": 3,
                        "fullBounds": [
                            48,
                            84,
                            927,
                            940
                        ],
                        "fullCentroid": [
                            668.5276,
                            473.9986
                        ],
                        "path": "frames/03/final/sprite.png",
                        "sha256": "034c8d87b5248a659f737ad2505b8a35d54235dd47e5b422a5efed96f980695c"
                    },
                    {
                        "baselineY": 939,
                        "bodyBandAreaRatioToF1": 1.159937,
                        "bodyBandBounds": [
                            545,
                            84,
                            853,
                            940
                        ],
                        "bodyBandCentroid": [
                            704.9952,
                            457.5649
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            2.6803,
                            -67.5934
                        ],
                        "bodyBandHeight": 856,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 176960,
                        "frame": 4,
                        "fullBounds": [
                            51,
                            84,
                            923,
                            940
                        ],
                        "fullCentroid": [
                            668.4128,
                            474.5974
                        ],
                        "path": "frames/04/final/sprite.png",
                        "sha256": "3db10f98b48025d212868324a46d5c66efc1bbf1ffd5152a5b9c0fd1c9baa47d"
                    },
                    {
                        "baselineY": 939,
                        "bodyBandAreaRatioToF1": 1.181889,
                        "bodyBandBounds": [
                            545,
                            83,
                            853,
                            940
                        ],
                        "bodyBandCentroid": [
                            703.3212,
                            459.4256
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            1.0063,
                            -65.7327
                        ],
                        "bodyBandHeight": 857,
                        "bodyBandHeightRatioToF1": 1.001168,
                        "bodyBandVisiblePixels": 180309,
                        "frame": 5,
                        "fullBounds": [
                            8,
                            83,
                            972,
                            940
                        ],
                        "fullCentroid": [
                            676.5897,
                            463.3384
                        ],
                        "path": "frames/05/final/sprite.png",
                        "sha256": "e5dd36e894ed20254ff8e9a070e45ace544957a2e409612adab6f95ec3416b66"
                    },
                    {
                        "baselineY": 939,
                        "bodyBandAreaRatioToF1": 1.176842,
                        "bodyBandBounds": [
                            545,
                            84,
                            853,
                            940
                        ],
                        "bodyBandCentroid": [
                            704.2933,
                            460.528
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            1.9784,
                            -64.6303
                        ],
                        "bodyBandHeight": 856,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 179539,
                        "frame": 6,
                        "fullBounds": [
                            10,
                            84,
                            1016,
                            940
                        ],
                        "fullCentroid": [
                            686.95,
                            459.1988
                        ],
                        "path": "frames/06/final/sprite.png",
                        "sha256": "dd92222a2c43c1dbfc77d979d1cc8836c07324a5766ebb2a6d9342b92f3fa042"
                    },
                    {
                        "baselineY": 939,
                        "bodyBandAreaRatioToF1": 1.17597,
                        "bodyBandBounds": [
                            545,
                            84,
                            853,
                            940
                        ],
                        "bodyBandCentroid": [
                            704.2677,
                            460.5922
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            1.9528,
                            -64.5661
                        ],
                        "bodyBandHeight": 856,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 179406,
                        "frame": 7,
                        "fullBounds": [
                            10,
                            84,
                            1016,
                            940
                        ],
                        "fullCentroid": [
                            688.5583,
                            458.8263
                        ],
                        "path": "frames/07/final/sprite.png",
                        "sha256": "0a34659797069dc40fa64890e53313d2e3047361f9ebdae6f4308a382c9e27fc"
                    },
                    {
                        "baselineY": 939,
                        "bodyBandAreaRatioToF1": 1.176842,
                        "bodyBandBounds": [
                            545,
                            84,
                            853,
                            940
                        ],
                        "bodyBandCentroid": [
                            704.2933,
                            460.528
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            1.9784,
                            -64.6303
                        ],
                        "bodyBandHeight": 856,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 179539,
                        "frame": 8,
                        "fullBounds": [
                            10,
                            84,
                            1016,
                            940
                        ],
                        "fullCentroid": [
                            686.95,
                            459.1988
                        ],
                        "path": "frames/08/final/sprite.png",
                        "sha256": "dd92222a2c43c1dbfc77d979d1cc8836c07324a5766ebb2a6d9342b92f3fa042"
                    },
                    {
                        "baselineY": 939,
                        "bodyBandAreaRatioToF1": 1.181889,
                        "bodyBandBounds": [
                            545,
                            83,
                            853,
                            940
                        ],
                        "bodyBandCentroid": [
                            703.3212,
                            459.4256
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            1.0063,
                            -65.7327
                        ],
                        "bodyBandHeight": 857,
                        "bodyBandHeightRatioToF1": 1.001168,
                        "bodyBandVisiblePixels": 180309,
                        "frame": 9,
                        "fullBounds": [
                            8,
                            83,
                            972,
                            940
                        ],
                        "fullCentroid": [
                            676.5897,
                            463.3384
                        ],
                        "path": "frames/09/final/sprite.png",
                        "sha256": "e5dd36e894ed20254ff8e9a070e45ace544957a2e409612adab6f95ec3416b66"
                    },
                    {
                        "baselineY": 939,
                        "bodyBandAreaRatioToF1": 1.159937,
                        "bodyBandBounds": [
                            545,
                            84,
                            853,
                            940
                        ],
                        "bodyBandCentroid": [
                            704.9952,
                            457.5649
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            2.6803,
                            -67.5934
                        ],
                        "bodyBandHeight": 856,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 176960,
                        "frame": 10,
                        "fullBounds": [
                            51,
                            84,
                            923,
                            940
                        ],
                        "fullCentroid": [
                            668.4128,
                            474.5974
                        ],
                        "path": "frames/10/final/sprite.png",
                        "sha256": "3db10f98b48025d212868324a46d5c66efc1bbf1ffd5152a5b9c0fd1c9baa47d"
                    },
                    {
                        "baselineY": 939,
                        "bodyBandAreaRatioToF1": 1.163247,
                        "bodyBandBounds": [
                            545,
                            84,
                            853,
                            940
                        ],
                        "bodyBandCentroid": [
                            705.216,
                            457.0459
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            2.9011,
                            -68.1124
                        ],
                        "bodyBandHeight": 856,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 177465,
                        "frame": 11,
                        "fullBounds": [
                            48,
                            84,
                            927,
                            940
                        ],
                        "fullCentroid": [
                            668.5276,
                            473.9986
                        ],
                        "path": "frames/11/final/sprite.png",
                        "sha256": "034c8d87b5248a659f737ad2505b8a35d54235dd47e5b422a5efed96f980695c"
                    },
                    {
                        "baselineY": 939,
                        "bodyBandAreaRatioToF1": 1.177248,
                        "bodyBandBounds": [
                            545,
                            84,
                            853,
                            940
                        ],
                        "bodyBandCentroid": [
                            700.4964,
                            455.8436
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            -1.8185,
                            -69.3147
                        ],
                        "bodyBandHeight": 856,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 179601,
                        "frame": 12,
                        "fullBounds": [
                            104,
                            84,
                            946,
                            940
                        ],
                        "fullCentroid": [
                            667.4793,
                            453.5746
                        ],
                        "path": "frames/12/final/sprite.png",
                        "sha256": "b1ba3031fae43cdef40b32e6968fd16722a4cdfec103efad5e5abd8d9c77acef"
                    }
                ],
                "measurement": {
                    "bodyBandDerivedFrom": "F1 alpha centroid and 80% of F1 visible width",
                    "bodyBandX": [
                        545,
                        853
                    ],
                    "canvas": [
                        1024,
                        1024
                    ],
                    "onionColors": {
                        "background": "#10131d",
                        "comparisonOnly": "#24e0ee",
                        "f1Only": "#ff3399",
                        "shared": "#f6f1e7"
                    }
                },
                "runId": "sequence-envelope-foot-root-lock-v3",
                "schemaVersion": "midgard-pixels.generation-onion-audit.v1",
                "summary": {
                    "baselineRangePx": 0,
                    "maximumAbsoluteBodyCentroidXDriftPx": 2.9011,
                    "minimumBodyAreaRatioToF1": 1,
                    "minimumBodyHeightRatioToF1": 1,
                    "providerLateralDriftDetected": false,
                    "providerScaleDriftDetected": false
                }
            }
        },
        "frames/01/receipt.json": {
            "sha256": "6413e655cb1ac15783c81abc377f8425eef4e3ac968cb494fcd63ebbaeaeb420",
            "bytes": 4865,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 33.63034344160047,
                "borderColorMedian": [
                    249,
                    4,
                    248
                ],
                "borderConnectedChromaPixels": 868172,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 658,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Aerwyn Academy Wind Duelist",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:48:26.638621Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 583,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 659,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 2049,
                "enclosedComponentCount": 7,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-final-sprite-png",
                "frameCount": 12,
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01",
                "frameIndex": 1,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 924,
                "identityRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                "inputSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                "keyCoreBorderConnectedPixels": 868172,
                "keyCorePixels": 870221,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.90965108733542,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                "paletteReduced": false,
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 1636,
                "preservedSmallKeyColorPixels": 1,
                "promptArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "removedChromaPixels": 872121,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman academy wind duelist wearing a fitted teal-and-navy academy jacket, short practical skirt, small shoulder cape, long tied ponytail, and holding a slender rapier upright in a formal salute.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 1,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/02/receipt.json": {
            "sha256": "ad296c83605d2f16a302015c50370aeb1b1370b81f5db8f88ddf77c52696539b",
            "bytes": 5787,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 33.49626844888845,
                "borderColorMedian": [
                    246,
                    4,
                    248
                ],
                "borderConnectedChromaPixels": 848068,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 738,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Aerwyn Academy Wind Duelist",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:48:26.638621Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 541,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 1100,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 2082,
                "enclosedComponentCount": 6,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                "frameCount": 12,
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                "frameIndex": 2,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 924,
                "identityRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                "inputSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                "keyCoreBorderConnectedPixels": 848068,
                "keyCorePixels": 850150,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.98709623707387,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                "paletteReduced": false,
                "parentFrameIndex": 1,
                "parentRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 17% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 17,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 712,
                "preservedSmallKeyColorPixels": 0,
                "promptArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                "referenceSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                    }
                ],
                "removedChromaPixels": 852529,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman academy wind duelist wearing a fitted teal-and-navy academy jacket, short practical skirt, small shoulder cape, long tied ponytail, and holding a slender rapier upright in a formal salute.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 2,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/03/receipt.json": {
            "sha256": "fb40d13f1f5478766423ae4c1743cbf3898d38886b5e70cad9f96e827d8f6019",
            "bytes": 5982,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 30.789608636681304,
                "borderColorMedian": [
                    241,
                    6,
                    244
                ],
                "borderConnectedChromaPixels": 874331,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 696,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Aerwyn Academy Wind Duelist",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:48:26.638621Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 621,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 865,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 2652,
                "enclosedComponentCount": 7,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                "frameCount": 12,
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                "frameIndex": 3,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 924,
                "identityRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                "inputSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                "keyCoreBorderConnectedPixels": 874331,
                "keyCorePixels": 876983,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.97419139972953,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                "paletteReduced": false,
                "parentFrameIndex": 2,
                "parentRawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 33% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 33,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 649,
                "preservedSmallKeyColorPixels": 2,
                "promptArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                    }
                ],
                "removedChromaPixels": 879165,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman academy wind duelist wearing a fitted teal-and-navy academy jacket, short practical skirt, small shoulder cape, long tied ponytail, and holding a slender rapier upright in a formal salute.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 3,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/04/receipt.json": {
            "sha256": "ecaf87a4245aac6e2426d25404ce2c1955582408523edb9eb2146d76daf4eed8",
            "bytes": 5982,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 32.264531609803356,
                "borderColorMedian": [
                    239,
                    6,
                    235
                ],
                "borderConnectedChromaPixels": 874124,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 755,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Aerwyn Academy Wind Duelist",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:48:26.638621Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 734,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 854,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 2610,
                "enclosedComponentCount": 8,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                "frameCount": 12,
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                "frameIndex": 4,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 924,
                "identityRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                "inputSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                "keyCoreBorderConnectedPixels": 874124,
                "keyCorePixels": 876734,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.97741770980699,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                "paletteReduced": false,
                "parentFrameIndex": 3,
                "parentRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 50% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 50,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 467,
                "preservedSmallKeyColorPixels": 6,
                "promptArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                    }
                ],
                "removedChromaPixels": 879077,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman academy wind duelist wearing a fitted teal-and-navy academy jacket, short practical skirt, small shoulder cape, long tied ponytail, and holding a slender rapier upright in a formal salute.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 4,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/05/receipt.json": {
            "sha256": "44e0f7d353b2f8bca2167ca8557fed3c7e94cd28041aa063182ad11d2cf0cf81",
            "bytes": 5982,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 34.828149534535996,
                "borderColorMedian": [
                    237,
                    6,
                    232
                ],
                "borderConnectedChromaPixels": 868900,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 644,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Aerwyn Academy Wind Duelist",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:48:26.638621Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 612,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 954,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 2236,
                "enclosedComponentCount": 7,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                "frameCount": 12,
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                "frameIndex": 5,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 924,
                "identityRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                "inputSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                "keyCoreBorderConnectedPixels": 868900,
                "keyCorePixels": 871136,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.93547043850222,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                "paletteReduced": false,
                "parentFrameIndex": 4,
                "parentRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 67% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 67,
                "playbackSourceFrameIndex": 5,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 416,
                "preservedSmallKeyColorPixels": 3,
                "promptArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 5,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                    }
                ],
                "removedChromaPixels": 873346,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman academy wind duelist wearing a fitted teal-and-navy academy jacket, short practical skirt, small shoulder cape, long tied ponytail, and holding a slender rapier upright in a formal salute.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 5,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/06/receipt.json": {
            "sha256": "6021e18a076221598626b692f66bfa9f50e9362ea1afc22ac8cbfad98e2f4f48",
            "bytes": 5982,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 37.14835124201342,
                "borderColorMedian": [
                    235,
                    5,
                    233
                ],
                "borderConnectedChromaPixels": 862717,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 878,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Aerwyn Academy Wind Duelist",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:48:26.638621Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 732,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 1051,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 3807,
                "enclosedComponentCount": 7,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                "frameCount": 12,
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                "frameIndex": 6,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 924,
                "identityRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                "inputSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                "keyCoreBorderConnectedPixels": 862717,
                "keyCorePixels": 866524,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.98064395272075,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                "paletteReduced": false,
                "parentFrameIndex": 5,
                "parentRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 83% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 83,
                "playbackSourceFrameIndex": 6,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 441,
                "preservedSmallKeyColorPixels": 0,
                "promptArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 6,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                    }
                ],
                "removedChromaPixels": 869185,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman academy wind duelist wearing a fitted teal-and-navy academy jacket, short practical skirt, small shoulder cape, long tied ponytail, and holding a slender rapier upright in a formal salute.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 6,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/07/receipt.json": {
            "sha256": "9edfb117c38d38f8ddab9692d973d3576bd3b388239d7a3b3fd88551cc8c8a2a",
            "bytes": 6089,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 37.389838191679836,
                "borderColorMedian": [
                    236,
                    6,
                    236
                ],
                "borderConnectedChromaPixels": 862961,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 679,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Aerwyn Academy Wind Duelist",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:48:26.638621Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 611,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 858,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 3732,
                "enclosedComponentCount": 9,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-final-sprite-png",
                "frameCount": 12,
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07",
                "frameIndex": 7,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 924,
                "identityRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/raw/source.png",
                "inputSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                "keyCoreBorderConnectedPixels": 862961,
                "keyCorePixels": 866693,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.98064395272075,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                "paletteReduced": false,
                "parentFrameIndex": 6,
                "parentRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: continue from Image 2 by one natural adjacent increment into the endpoint of the same motion. Do not treat 100% as permission to jump into a much wider, deeper, or more dramatic action pose. The transition from Image 2 into this peak must be visually comparable to the preceding adjacent transition. Both arms and hands, torso and hips, knees and stance, head and hair, sleeves, scarf, sash, coat, or hem finish the same connected motion together; do not introduce a new gesture. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 7,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 434,
                "preservedSmallKeyColorPixels": 6,
                "promptArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 7,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                    }
                ],
                "removedChromaPixels": 868841,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman academy wind duelist wearing a fitted teal-and-navy academy jacket, short practical skirt, small shoulder cape, long tied ponytail, and holding a slender rapier upright in a formal salute.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 7,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/08/receipt.json": {
            "sha256": "f932bac12c1359385a3d666d4412276e02e6c57a6ec5f9d952d0937fe0323f8d",
            "bytes": 4995,
            "value": {
                "action": "idle",
                "anchorGuide": null,
                "byteIdentityVerified": true,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Aerwyn Academy Wind Duelist",
                "classSource": "request-title",
                "createdAt": "2026-07-24T22:48:26.638621Z",
                "durationMs": 120,
                "exactByteReuse": true,
                "finalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-final-sprite-png",
                "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                "frameCount": 12,
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08",
                "frameIndex": 8,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 924,
                "identityRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                "loopMode": "ping-pong",
                "operation": "exact-byte-ping-pong-reuse",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; return transition with exactly 83% of the peak displacement still remaining: move every declared part about 17% of the distance from its Image 2 position toward its Image 1 position, leaving 83% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 83,
                "playbackPreviousFrameIndex": 7,
                "playbackPreviousRawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                "playbackSourceFrameIndex": 6,
                "posePolicy": "natural-relational",
                "promptArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-prompt-txt",
                "providerCall": false,
                "providerFrameIndex": 6,
                "providerGenerated": false,
                "rawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-raw-source-png",
                "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                "receiptArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                    }
                ],
                "request": "Create a white adult human woman academy wind duelist wearing a fitted teal-and-navy academy jacket, short practical skirt, small shoulder cape, long tied ponytail, and holding a slender rapier upright in a formal salute.",
                "runId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFinal": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/final/sprite.png",
                "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                "sourceFinalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                "sourceFrameIndex": 6,
                "sourceProvided": false,
                "sourceRaw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                "sourceRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
            }
        },
        "frames/09/receipt.json": {
            "sha256": "f07de6407325fb3794451d8b950a051fbe9ef6ca62e0fff211bc90589cffe650",
            "bytes": 4995,
            "value": {
                "action": "idle",
                "anchorGuide": null,
                "byteIdentityVerified": true,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Aerwyn Academy Wind Duelist",
                "classSource": "request-title",
                "createdAt": "2026-07-24T22:48:26.638621Z",
                "durationMs": 120,
                "exactByteReuse": true,
                "finalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-final-sprite-png",
                "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                "frameCount": 12,
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09",
                "frameIndex": 9,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 924,
                "identityRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                "loopMode": "ping-pong",
                "operation": "exact-byte-ping-pong-reuse",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; return transition with exactly 67% of the peak displacement still remaining: move every declared part about 19% of the distance from its Image 2 position toward its Image 1 position, leaving 67% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 67,
                "playbackPreviousFrameIndex": 8,
                "playbackPreviousRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                "playbackSourceFrameIndex": 5,
                "posePolicy": "natural-relational",
                "promptArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-prompt-txt",
                "providerCall": false,
                "providerFrameIndex": 5,
                "providerGenerated": false,
                "rawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-raw-source-png",
                "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                "receiptArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                    }
                ],
                "request": "Create a white adult human woman academy wind duelist wearing a fitted teal-and-navy academy jacket, short practical skirt, small shoulder cape, long tied ponytail, and holding a slender rapier upright in a formal salute.",
                "runId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFinal": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/final/sprite.png",
                "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                "sourceFinalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                "sourceFrameIndex": 5,
                "sourceProvided": false,
                "sourceRaw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                "sourceRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
            }
        },
        "frames/10/receipt.json": {
            "sha256": "36002111d252ae3838f35e47e810926bd710e747c7266304b27dc7ed4e39e306",
            "bytes": 4996,
            "value": {
                "action": "idle",
                "anchorGuide": null,
                "byteIdentityVerified": true,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Aerwyn Academy Wind Duelist",
                "classSource": "request-title",
                "createdAt": "2026-07-24T22:48:26.638621Z",
                "durationMs": 120,
                "exactByteReuse": true,
                "finalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-final-sprite-png",
                "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                "frameCount": 12,
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10",
                "frameIndex": 10,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 924,
                "identityRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                "loopMode": "ping-pong",
                "operation": "exact-byte-ping-pong-reuse",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; return transition with exactly 50% of the peak displacement still remaining: move every declared part about 25% of the distance from its Image 2 position toward its Image 1 position, leaving 50% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 50,
                "playbackPreviousFrameIndex": 9,
                "playbackPreviousRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                "playbackSourceFrameIndex": 4,
                "posePolicy": "natural-relational",
                "promptArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-prompt-txt",
                "providerCall": false,
                "providerFrameIndex": 4,
                "providerGenerated": false,
                "rawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-raw-source-png",
                "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                "receiptArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                    }
                ],
                "request": "Create a white adult human woman academy wind duelist wearing a fitted teal-and-navy academy jacket, short practical skirt, small shoulder cape, long tied ponytail, and holding a slender rapier upright in a formal salute.",
                "runId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFinal": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/final/sprite.png",
                "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                "sourceFinalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                "sourceFrameIndex": 4,
                "sourceProvided": false,
                "sourceRaw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                "sourceRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
            }
        },
        "frames/11/receipt.json": {
            "sha256": "e51fc221d118890bd628780869af19e34a280edb5f0a08eb499166f3e8dde303",
            "bytes": 4997,
            "value": {
                "action": "idle",
                "anchorGuide": null,
                "byteIdentityVerified": true,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Aerwyn Academy Wind Duelist",
                "classSource": "request-title",
                "createdAt": "2026-07-24T22:48:26.638621Z",
                "durationMs": 120,
                "exactByteReuse": true,
                "finalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-final-sprite-png",
                "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                "frameCount": 12,
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11",
                "frameIndex": 11,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 924,
                "identityRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                "loopMode": "ping-pong",
                "operation": "exact-byte-ping-pong-reuse",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; return transition with exactly 33% of the peak displacement still remaining: move every declared part about 34% of the distance from its Image 2 position toward its Image 1 position, leaving 33% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 33,
                "playbackPreviousFrameIndex": 10,
                "playbackPreviousRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "promptArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-prompt-txt",
                "providerCall": false,
                "providerFrameIndex": 3,
                "providerGenerated": false,
                "rawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-raw-source-png",
                "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                "receiptArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                    }
                ],
                "request": "Create a white adult human woman academy wind duelist wearing a fitted teal-and-navy academy jacket, short practical skirt, small shoulder cape, long tied ponytail, and holding a slender rapier upright in a formal salute.",
                "runId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFinal": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/final/sprite.png",
                "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                "sourceFinalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                "sourceFrameIndex": 3,
                "sourceProvided": false,
                "sourceRaw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                "sourceRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
            }
        },
        "frames/12/receipt.json": {
            "sha256": "7eaf636b857663a3e65ca56e1b05b58115dca908a9fe64f6101d350801247980",
            "bytes": 5586,
            "value": {
                "action": "idle",
                "anchorGuide": null,
                "byteIdentityVerified": true,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Aerwyn Academy Wind Duelist",
                "classSource": "request-title",
                "createdAt": "2026-07-24T22:48:26.638621Z",
                "durationMs": 120,
                "exactByteReuse": true,
                "finalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-final-sprite-png",
                "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                "frameCount": 12,
                "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12",
                "frameIndex": 12,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 924,
                "identityRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                "loopMode": "ping-pong",
                "operation": "exact-byte-ping-pong-reuse",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 17% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 17% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 48% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 17% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 17,
                "playbackPreviousFrameIndex": 11,
                "playbackPreviousRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "promptArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-prompt-txt",
                "providerCall": false,
                "providerFrameIndex": 2,
                "providerGenerated": false,
                "rawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-raw-source-png",
                "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                "receiptArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                    }
                ],
                "request": "Create a white adult human woman academy wind duelist wearing a fitted teal-and-navy academy jacket, short practical skirt, small shoulder cape, long tied ponytail, and holding a slender rapier upright in a formal salute.",
                "runId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFinal": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/final/sprite.png",
                "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                "sourceFinalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                "sourceFrameIndex": 2,
                "sourceProvided": false,
                "sourceRaw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                "sourceRawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
            }
        },
        "manifest.json": {
            "sha256": "db6d512fe72b955a147dc6f2ac85048455feefea3f8a7503772074d057a7d585",
            "bytes": 240477,
            "value": {
                "animation": {
                    "action": "idle",
                    "anchorGuide": null,
                    "anchorGuidePolicy": "none",
                    "durationMs": 120,
                    "f1ProviderModel": "gpt-image-2-2026-04-21",
                    "frameCount": 12,
                    "frames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/final/sprite.png",
                            "finalSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01",
                            "identityBaselineY": 924,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/prompt.txt",
                            "promptSha256": "0965e7f9251ef424fa12e0d85a95f88c65d770c6a904278ccb99333074e29435",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "rawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/final/sprite.png",
                            "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                            "identityBaselineY": 924,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 17% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 17,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/prompt.txt",
                            "promptSha256": "2fc74d175a1c191486544d51451648e485a8e00216bdb87082d5e3cab7a8f992",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                            "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "referenceSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/final/sprite.png",
                            "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                            "identityBaselineY": 924,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 33% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 33,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/prompt.txt",
                            "promptSha256": "c6530e35c577c19544706df38ee235f4537e8d198737ed227ae631c3af4fb29d",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                            "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                            "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                                    "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/final/sprite.png",
                            "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                            "identityBaselineY": 924,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 50% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 50,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/prompt.txt",
                            "promptSha256": "53bc2204d52464cecd7fdfa91596ae93b43facdbe0d5303215b18db813048a80",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                            "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                            "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                                    "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/final/sprite.png",
                            "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                            "identityBaselineY": 924,
                            "index": 5,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 4,
                            "parentRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 67% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 67,
                            "playbackSourceFrameIndex": 5,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/prompt.txt",
                            "promptSha256": "ec2b156390613356d0744e0ff9b0933a2a962ec3ba4a590c603c2b855a5ce8de",
                            "providerCall": true,
                            "providerFrameIndex": 5,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                            "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                            "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                                    "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                                }
                            ],
                            "sourceFrameIndex": 5,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/final/sprite.png",
                            "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                            "identityBaselineY": 924,
                            "index": 6,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 5,
                            "parentRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 83% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 83,
                            "playbackSourceFrameIndex": 6,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/prompt.txt",
                            "promptSha256": "d3914bf1f5248ab4b61eff9c0dc998eacfca8de85002d5b33e45e6baf0006172",
                            "providerCall": true,
                            "providerFrameIndex": 6,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                            "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                            "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                                    "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                                }
                            ],
                            "sourceFrameIndex": 6,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/final/sprite.png",
                            "finalSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07",
                            "identityBaselineY": 924,
                            "index": 7,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 6,
                            "parentRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: continue from Image 2 by one natural adjacent increment into the endpoint of the same motion. Do not treat 100% as permission to jump into a much wider, deeper, or more dramatic action pose. The transition from Image 2 into this peak must be visually comparable to the preceding adjacent transition. Both arms and hands, torso and hips, knees and stance, head and hair, sleeves, scarf, sash, coat, or hem finish the same connected motion together; do not introduce a new gesture. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 7,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/prompt.txt",
                            "promptSha256": "a52d32ad82ff9482b028699bb9799bf1737d6f7a43fa22ed5919f45800cf190e",
                            "providerCall": true,
                            "providerFrameIndex": 7,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/raw/source.png",
                            "rawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                            "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                                    "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                                }
                            ],
                            "sourceFrameIndex": 7,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/final/sprite.png",
                            "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08",
                            "identityBaselineY": 924,
                            "index": 8,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; return transition with exactly 83% of the peak displacement still remaining: move every declared part about 17% of the distance from its Image 2 position toward its Image 1 position, leaving 83% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 83,
                            "playbackPreviousFrameIndex": 7,
                            "playbackPreviousRawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                            "playbackSourceFrameIndex": 6,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/prompt.txt",
                            "promptSha256": "856b4f7599ec3c28bc5593fa2e6eda4b6277489ec877e5a45172dcd2286aba47",
                            "providerCall": false,
                            "providerFrameIndex": 6,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/raw/source.png",
                            "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                            "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                                    "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                            "sourceFrameIndex": 6,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png"
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/final/sprite.png",
                            "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09",
                            "identityBaselineY": 924,
                            "index": 9,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; return transition with exactly 67% of the peak displacement still remaining: move every declared part about 19% of the distance from its Image 2 position toward its Image 1 position, leaving 67% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 67,
                            "playbackPreviousFrameIndex": 8,
                            "playbackPreviousRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                            "playbackSourceFrameIndex": 5,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/prompt.txt",
                            "promptSha256": "341901cc1f831ac651a5f500a24fc09d7bb2115c9ad121a0095d6eab590a8f7a",
                            "providerCall": false,
                            "providerFrameIndex": 5,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/raw/source.png",
                            "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                            "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                                    "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                            "sourceFrameIndex": 5,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png"
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/final/sprite.png",
                            "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10",
                            "identityBaselineY": 924,
                            "index": 10,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; return transition with exactly 50% of the peak displacement still remaining: move every declared part about 25% of the distance from its Image 2 position toward its Image 1 position, leaving 50% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 50,
                            "playbackPreviousFrameIndex": 9,
                            "playbackPreviousRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/prompt.txt",
                            "promptSha256": "641efe33e9ea0bd02e051c893736f706c75c4a9f818e149ffddb785d0a895a59",
                            "providerCall": false,
                            "providerFrameIndex": 4,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/raw/source.png",
                            "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                            "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                                    "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                            "sourceFrameIndex": 4,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png"
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/final/sprite.png",
                            "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11",
                            "identityBaselineY": 924,
                            "index": 11,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; return transition with exactly 33% of the peak displacement still remaining: move every declared part about 34% of the distance from its Image 2 position toward its Image 1 position, leaving 33% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 33,
                            "playbackPreviousFrameIndex": 10,
                            "playbackPreviousRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/prompt.txt",
                            "promptSha256": "1c14e2dae0b7edc86ece544e5680d0c2f0ff5a31d77756f0111a9fa0c70a1177",
                            "providerCall": false,
                            "providerFrameIndex": 3,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/raw/source.png",
                            "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                            "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                                    "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                            "sourceFrameIndex": 3,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png"
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/final/sprite.png",
                            "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12",
                            "identityBaselineY": 924,
                            "index": 12,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 17% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 17% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 48% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 17% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 17,
                            "playbackPreviousFrameIndex": 11,
                            "playbackPreviousRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/prompt.txt",
                            "promptSha256": "043d4f53deda55a5b5f094f998b589a0a177d33ba1112c4284629acd43191a05",
                            "providerCall": false,
                            "providerFrameIndex": 2,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/raw/source.png",
                            "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                            "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                                    "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                            "sourceFrameIndex": 2,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png"
                        }
                    ],
                    "generationId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                    "ideaIdleBehaviorDeferred": null,
                    "identityBaselineY": 924,
                    "identityPolicy": "immutable-f1-raw-master",
                    "idleBehavior": "Only the rapier, rapier hand, forearm, upper arm, ponytail tips, and short cape move. Begin with the rapier held upright in a formal fencing salute. Through smooth adjacent phases, lower and extend the rapier toward screen-left into a controlled guard at the peak. The ponytail tips and short cape make one restrained delayed follow-through. Freeze the face, head, torso, shoulders, free arm and hand, jacket, skirt, legs, boots, feet, camera, scale, and background.",
                    "idleBehaviorSource": "explicit-command",
                    "lockedParts": [
                        "recognizable face and identity",
                        "costume and equipment design",
                        "fine motifs, trim, fasteners, gems, and prop markings",
                        "palette family and pixel rendering language",
                        "body proportions and overall scale band",
                        "screen-left three-quarter facing",
                        "1024x1024 canvas and flat #ff00ff background"
                    ],
                    "loop": true,
                    "loopMode": "ping-pong",
                    "movingParts": [
                        "whole pose silhouette",
                        "center of mass",
                        "torso and hips",
                        "both arms and hands",
                        "knees, legs, boots, and stance",
                        "hair and sleeves",
                        "coat tails, dress, cape, and hem",
                        "held equipment following the hands"
                    ],
                    "parentPolicy": "f1-plus-previous",
                    "phaseProgressPercent": [
                        0,
                        17,
                        33,
                        50,
                        67,
                        83,
                        100,
                        83,
                        67,
                        50,
                        33,
                        17
                    ],
                    "phases": [
                        "settled identity pose; motion has not started",
                        "one continuous whole-body out-and-back loop; first early anticipation at 17% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; outbound transition at 33% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; outbound transition at 50% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; outbound transition at 67% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; outbound transition at 83% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; single motion peak at 100%: continue from Image 2 by one natural adjacent increment into the endpoint of the same motion. Do not treat 100% as permission to jump into a much wider, deeper, or more dramatic action pose. The transition from Image 2 into this peak must be visually comparable to the preceding adjacent transition. Both arms and hands, torso and hips, knees and stance, head and hair, sleeves, scarf, sash, coat, or hem finish the same connected motion together; do not introduce a new gesture. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; return transition with exactly 83% of the peak displacement still remaining: move every declared part about 17% of the distance from its Image 2 position toward its Image 1 position, leaving 83% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; return transition with exactly 67% of the peak displacement still remaining: move every declared part about 19% of the distance from its Image 2 position toward its Image 1 position, leaving 67% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; return transition with exactly 50% of the peak displacement still remaining: move every declared part about 25% of the distance from its Image 2 position toward its Image 1 position, leaving 50% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; return transition with exactly 33% of the peak displacement still remaining: move every declared part about 34% of the distance from its Image 2 position toward its Image 1 position, leaving 33% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; final loop-closing return with exactly 17% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 17% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 48% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 17% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
                    ],
                    "playbackSourceFrameIndices": [
                        1,
                        2,
                        3,
                        4,
                        5,
                        6,
                        7,
                        6,
                        5,
                        4,
                        3,
                        2
                    ],
                    "posePolicy": "natural-relational",
                    "preview": {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--preview-animation-gif",
                        "format": "derived-gif-preview",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/preview/animation.gif",
                        "sha256": "19e58d4a26d5684d2e821ed3937ca2f5c0257acc07ae39092426c13c96c60ddd",
                        "sourcePolicy": "final-frame-pngs-unchanged"
                    },
                    "providerCallCount": 7,
                    "providerFrameCount": 7,
                    "providerFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/final/sprite.png",
                            "finalSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01",
                            "identityBaselineY": 924,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/prompt.txt",
                            "promptSha256": "0965e7f9251ef424fa12e0d85a95f88c65d770c6a904278ccb99333074e29435",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "rawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/final/sprite.png",
                            "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                            "identityBaselineY": 924,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 17% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 17,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/prompt.txt",
                            "promptSha256": "2fc74d175a1c191486544d51451648e485a8e00216bdb87082d5e3cab7a8f992",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                            "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "referenceSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/final/sprite.png",
                            "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                            "identityBaselineY": 924,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 33% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 33,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/prompt.txt",
                            "promptSha256": "c6530e35c577c19544706df38ee235f4537e8d198737ed227ae631c3af4fb29d",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                            "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                            "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                                    "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/final/sprite.png",
                            "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                            "identityBaselineY": 924,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 50% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 50,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/prompt.txt",
                            "promptSha256": "53bc2204d52464cecd7fdfa91596ae93b43facdbe0d5303215b18db813048a80",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                            "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                            "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                                    "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/final/sprite.png",
                            "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                            "identityBaselineY": 924,
                            "index": 5,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 4,
                            "parentRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 67% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 67,
                            "playbackSourceFrameIndex": 5,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/prompt.txt",
                            "promptSha256": "ec2b156390613356d0744e0ff9b0933a2a962ec3ba4a590c603c2b855a5ce8de",
                            "providerCall": true,
                            "providerFrameIndex": 5,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                            "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                            "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                                    "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                                }
                            ],
                            "sourceFrameIndex": 5,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/final/sprite.png",
                            "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                            "identityBaselineY": 924,
                            "index": 6,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 5,
                            "parentRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 83% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 83,
                            "playbackSourceFrameIndex": 6,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/prompt.txt",
                            "promptSha256": "d3914bf1f5248ab4b61eff9c0dc998eacfca8de85002d5b33e45e6baf0006172",
                            "providerCall": true,
                            "providerFrameIndex": 6,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                            "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                            "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                                    "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                                }
                            ],
                            "sourceFrameIndex": 6,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/final/sprite.png",
                            "finalSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07",
                            "identityBaselineY": 924,
                            "index": 7,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 6,
                            "parentRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: continue from Image 2 by one natural adjacent increment into the endpoint of the same motion. Do not treat 100% as permission to jump into a much wider, deeper, or more dramatic action pose. The transition from Image 2 into this peak must be visually comparable to the preceding adjacent transition. Both arms and hands, torso and hips, knees and stance, head and hair, sleeves, scarf, sash, coat, or hem finish the same connected motion together; do not introduce a new gesture. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 7,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/prompt.txt",
                            "promptSha256": "a52d32ad82ff9482b028699bb9799bf1737d6f7a43fa22ed5919f45800cf190e",
                            "providerCall": true,
                            "providerFrameIndex": 7,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/raw/source.png",
                            "rawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                            "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                                    "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                                }
                            ],
                            "sourceFrameIndex": 7,
                            "sourceProvided": false
                        }
                    ],
                    "providerModel": "gpt-image-2-2026-04-21",
                    "rootPolicy": {
                        "allowedCorrection": "lossless whole-canvas integer translation only",
                        "exactProviderRootRequired": false,
                        "measuredAfterGeneration": true,
                        "poseDependentHorizontalFootMotionPreserved": true,
                        "providerConstraint": "at least one boot sole within 16px of F1 baseline"
                    },
                    "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                    "sourceFrameCount": 7,
                    "sourceFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/final/sprite.png",
                            "finalSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01",
                            "identityBaselineY": 924,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/prompt.txt",
                            "promptSha256": "0965e7f9251ef424fa12e0d85a95f88c65d770c6a904278ccb99333074e29435",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "rawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/final/sprite.png",
                            "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                            "identityBaselineY": 924,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 17% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 17,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/prompt.txt",
                            "promptSha256": "2fc74d175a1c191486544d51451648e485a8e00216bdb87082d5e3cab7a8f992",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                            "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "referenceSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/final/sprite.png",
                            "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                            "identityBaselineY": 924,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 33% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 33,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/prompt.txt",
                            "promptSha256": "c6530e35c577c19544706df38ee235f4537e8d198737ed227ae631c3af4fb29d",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                            "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                            "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                                    "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/final/sprite.png",
                            "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                            "identityBaselineY": 924,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 50% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 50,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/prompt.txt",
                            "promptSha256": "53bc2204d52464cecd7fdfa91596ae93b43facdbe0d5303215b18db813048a80",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                            "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                            "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                                    "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/final/sprite.png",
                            "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                            "identityBaselineY": 924,
                            "index": 5,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 4,
                            "parentRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 67% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 67,
                            "playbackSourceFrameIndex": 5,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/prompt.txt",
                            "promptSha256": "ec2b156390613356d0744e0ff9b0933a2a962ec3ba4a590c603c2b855a5ce8de",
                            "providerCall": true,
                            "providerFrameIndex": 5,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                            "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                            "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                                    "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                                }
                            ],
                            "sourceFrameIndex": 5,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/final/sprite.png",
                            "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                            "identityBaselineY": 924,
                            "index": 6,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 5,
                            "parentRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 83% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 83,
                            "playbackSourceFrameIndex": 6,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/prompt.txt",
                            "promptSha256": "d3914bf1f5248ab4b61eff9c0dc998eacfca8de85002d5b33e45e6baf0006172",
                            "providerCall": true,
                            "providerFrameIndex": 6,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                            "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                            "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                                    "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                                }
                            ],
                            "sourceFrameIndex": 6,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/final/sprite.png",
                            "finalSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07",
                            "identityBaselineY": 924,
                            "index": 7,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 6,
                            "parentRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: continue from Image 2 by one natural adjacent increment into the endpoint of the same motion. Do not treat 100% as permission to jump into a much wider, deeper, or more dramatic action pose. The transition from Image 2 into this peak must be visually comparable to the preceding adjacent transition. Both arms and hands, torso and hips, knees and stance, head and hair, sleeves, scarf, sash, coat, or hem finish the same connected motion together; do not introduce a new gesture. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 7,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/prompt.txt",
                            "promptSha256": "a52d32ad82ff9482b028699bb9799bf1737d6f7a43fa22ed5919f45800cf190e",
                            "providerCall": true,
                            "providerFrameIndex": 7,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/raw/source.png",
                            "rawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                            "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                                    "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                                }
                            ],
                            "sourceFrameIndex": 7,
                            "sourceProvided": false
                        }
                    ],
                    "stylePolicy": "elder-a-master"
                },
                "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--manifest-json",
                "artifactIndex": {
                    "artifactCount": 55,
                    "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--artifact-index-json",
                    "exclusions": [
                        "manifest.json",
                        "artifact-index.json"
                    ],
                    "path": "artifact-index.json",
                    "sha256": "0a44982e424692244f18b67ca7ece726a1663abb479e58344778c0081e34ecc4"
                },
                "artifacts": {
                    "animation": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--animation-json",
                    "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--final-sprite-png",
                    "generationId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                    "manifest": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--manifest-json",
                    "preview": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--preview-animation-gif",
                    "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--prompt-txt",
                    "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--raw-source-png",
                    "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--receipt-json",
                    "request": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--request-json"
                },
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Aerwyn Academy Wind Duelist",
                "classSource": "request-title",
                "createdAt": "2026-07-24T22:48:26.638621Z",
                "final": "final/sprite.png",
                "finalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--final-sprite-png",
                "finalSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                "frames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/final/sprite.png",
                        "finalSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01",
                        "identityBaselineY": 924,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/prompt.txt",
                        "promptSha256": "0965e7f9251ef424fa12e0d85a95f88c65d770c6a904278ccb99333074e29435",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "rawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/final/sprite.png",
                        "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                        "identityBaselineY": 924,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 17% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 17,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/prompt.txt",
                        "promptSha256": "2fc74d175a1c191486544d51451648e485a8e00216bdb87082d5e3cab7a8f992",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "referenceSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/final/sprite.png",
                        "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                        "identityBaselineY": 924,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 33% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 33,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/prompt.txt",
                        "promptSha256": "c6530e35c577c19544706df38ee235f4537e8d198737ed227ae631c3af4fb29d",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                                "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/final/sprite.png",
                        "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                        "identityBaselineY": 924,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 50% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 50,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/prompt.txt",
                        "promptSha256": "53bc2204d52464cecd7fdfa91596ae93b43facdbe0d5303215b18db813048a80",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                                "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/final/sprite.png",
                        "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                        "identityBaselineY": 924,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 4,
                        "parentRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 67% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 67,
                        "playbackSourceFrameIndex": 5,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/prompt.txt",
                        "promptSha256": "ec2b156390613356d0744e0ff9b0933a2a962ec3ba4a590c603c2b855a5ce8de",
                        "providerCall": true,
                        "providerFrameIndex": 5,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                                "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                            }
                        ],
                        "sourceFrameIndex": 5,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/final/sprite.png",
                        "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                        "identityBaselineY": 924,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 5,
                        "parentRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 83% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 83,
                        "playbackSourceFrameIndex": 6,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/prompt.txt",
                        "promptSha256": "d3914bf1f5248ab4b61eff9c0dc998eacfca8de85002d5b33e45e6baf0006172",
                        "providerCall": true,
                        "providerFrameIndex": 6,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                                "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                            }
                        ],
                        "sourceFrameIndex": 6,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/final/sprite.png",
                        "finalSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07",
                        "identityBaselineY": 924,
                        "index": 7,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 6,
                        "parentRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: continue from Image 2 by one natural adjacent increment into the endpoint of the same motion. Do not treat 100% as permission to jump into a much wider, deeper, or more dramatic action pose. The transition from Image 2 into this peak must be visually comparable to the preceding adjacent transition. Both arms and hands, torso and hips, knees and stance, head and hair, sleeves, scarf, sash, coat, or hem finish the same connected motion together; do not introduce a new gesture. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 7,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/prompt.txt",
                        "promptSha256": "a52d32ad82ff9482b028699bb9799bf1737d6f7a43fa22ed5919f45800cf190e",
                        "providerCall": true,
                        "providerFrameIndex": 7,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/raw/source.png",
                        "rawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                                "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                            }
                        ],
                        "sourceFrameIndex": 7,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/final/sprite.png",
                        "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08",
                        "identityBaselineY": 924,
                        "index": 8,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 83% of the peak displacement still remaining: move every declared part about 17% of the distance from its Image 2 position toward its Image 1 position, leaving 83% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 83,
                        "playbackPreviousFrameIndex": 7,
                        "playbackPreviousRawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                        "playbackSourceFrameIndex": 6,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/prompt.txt",
                        "promptSha256": "856b4f7599ec3c28bc5593fa2e6eda4b6277489ec877e5a45172dcd2286aba47",
                        "providerCall": false,
                        "providerFrameIndex": 6,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/raw/source.png",
                        "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                                "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                        "sourceFrameIndex": 6,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/final/sprite.png",
                        "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09",
                        "identityBaselineY": 924,
                        "index": 9,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 67% of the peak displacement still remaining: move every declared part about 19% of the distance from its Image 2 position toward its Image 1 position, leaving 67% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 67,
                        "playbackPreviousFrameIndex": 8,
                        "playbackPreviousRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "playbackSourceFrameIndex": 5,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/prompt.txt",
                        "promptSha256": "341901cc1f831ac651a5f500a24fc09d7bb2115c9ad121a0095d6eab590a8f7a",
                        "providerCall": false,
                        "providerFrameIndex": 5,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/raw/source.png",
                        "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                                "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                        "sourceFrameIndex": 5,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/final/sprite.png",
                        "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10",
                        "identityBaselineY": 924,
                        "index": 10,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 50% of the peak displacement still remaining: move every declared part about 25% of the distance from its Image 2 position toward its Image 1 position, leaving 50% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 50,
                        "playbackPreviousFrameIndex": 9,
                        "playbackPreviousRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/prompt.txt",
                        "promptSha256": "641efe33e9ea0bd02e051c893736f706c75c4a9f818e149ffddb785d0a895a59",
                        "providerCall": false,
                        "providerFrameIndex": 4,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/raw/source.png",
                        "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                                "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                        "sourceFrameIndex": 4,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/final/sprite.png",
                        "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11",
                        "identityBaselineY": 924,
                        "index": 11,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 33% of the peak displacement still remaining: move every declared part about 34% of the distance from its Image 2 position toward its Image 1 position, leaving 33% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 33,
                        "playbackPreviousFrameIndex": 10,
                        "playbackPreviousRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/prompt.txt",
                        "promptSha256": "1c14e2dae0b7edc86ece544e5680d0c2f0ff5a31d77756f0111a9fa0c70a1177",
                        "providerCall": false,
                        "providerFrameIndex": 3,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/raw/source.png",
                        "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                                "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                        "sourceFrameIndex": 3,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/final/sprite.png",
                        "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12",
                        "identityBaselineY": 924,
                        "index": 12,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 17% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 17% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 48% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 17% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 17,
                        "playbackPreviousFrameIndex": 11,
                        "playbackPreviousRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/prompt.txt",
                        "promptSha256": "043d4f53deda55a5b5f094f998b589a0a177d33ba1112c4284629acd43191a05",
                        "providerCall": false,
                        "providerFrameIndex": 2,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/raw/source.png",
                        "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                                "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                        "sourceFrameIndex": 2,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png"
                    }
                ],
                "gender": "woman",
                "genderSource": "request-text",
                "generation": {
                    "anchorGuidePolicy": "none",
                    "animationImageCount": 6,
                    "animationModel": "gpt-image-2-2026-04-21",
                    "attemptedCalls": 7,
                    "completedCalls": 7,
                    "f1ImageCount": 1,
                    "f1Model": "gpt-image-2-2026-04-21",
                    "imageCount": 7,
                    "inputFidelity": "unsupported-omitted",
                    "inputFidelityRequested": false,
                    "loopMode": "ping-pong",
                    "maximumReferenceCount": 2,
                    "model": "gpt-image-2-2026-04-21",
                    "operation": "chained-image-edit-plus-exact-ping-pong-reuse",
                    "playbackFrameCount": 12,
                    "playbackSourceFrameIndices": [
                        1,
                        2,
                        3,
                        4,
                        5,
                        6,
                        7,
                        6,
                        5,
                        4,
                        3,
                        2
                    ],
                    "posePolicy": "natural-relational",
                    "providerFrameCount": 7,
                    "quality": "medium",
                    "referenceCountsBySourceFrame": {
                        "1": 1,
                        "2": 1,
                        "3": 2,
                        "4": 2,
                        "5": 2,
                        "6": 2,
                        "7": 2
                    },
                    "referenceOrderPolicy": [
                        "f1RawIdentity",
                        "previousRawOpaque"
                    ],
                    "size": "1024x1024",
                    "sourceFrameCount": 7,
                    "tool": "openai-image"
                },
                "generationId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "postProcessing": {
                    "alphaOnly": true,
                    "despilled": false,
                    "feathered": false,
                    "filtered": false,
                    "paletteReduced": false,
                    "resampled": false,
                    "resized": false,
                    "translated": false
                },
                "prompt": "prompt.txt",
                "promptSha256": "0965e7f9251ef424fa12e0d85a95f88c65d770c6a904278ccb99333074e29435",
                "providerCallCount": 7,
                "providerFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/final/sprite.png",
                        "finalSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01",
                        "identityBaselineY": 924,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/prompt.txt",
                        "promptSha256": "0965e7f9251ef424fa12e0d85a95f88c65d770c6a904278ccb99333074e29435",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "rawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/final/sprite.png",
                        "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                        "identityBaselineY": 924,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 17% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 17,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/prompt.txt",
                        "promptSha256": "2fc74d175a1c191486544d51451648e485a8e00216bdb87082d5e3cab7a8f992",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "referenceSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/final/sprite.png",
                        "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                        "identityBaselineY": 924,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 33% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 33,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/prompt.txt",
                        "promptSha256": "c6530e35c577c19544706df38ee235f4537e8d198737ed227ae631c3af4fb29d",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                                "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/final/sprite.png",
                        "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                        "identityBaselineY": 924,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 50% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 50,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/prompt.txt",
                        "promptSha256": "53bc2204d52464cecd7fdfa91596ae93b43facdbe0d5303215b18db813048a80",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                                "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/final/sprite.png",
                        "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                        "identityBaselineY": 924,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 4,
                        "parentRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 67% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 67,
                        "playbackSourceFrameIndex": 5,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/prompt.txt",
                        "promptSha256": "ec2b156390613356d0744e0ff9b0933a2a962ec3ba4a590c603c2b855a5ce8de",
                        "providerCall": true,
                        "providerFrameIndex": 5,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                                "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                            }
                        ],
                        "sourceFrameIndex": 5,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/final/sprite.png",
                        "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                        "identityBaselineY": 924,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 5,
                        "parentRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 83% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 83,
                        "playbackSourceFrameIndex": 6,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/prompt.txt",
                        "promptSha256": "d3914bf1f5248ab4b61eff9c0dc998eacfca8de85002d5b33e45e6baf0006172",
                        "providerCall": true,
                        "providerFrameIndex": 6,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                                "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                            }
                        ],
                        "sourceFrameIndex": 6,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/final/sprite.png",
                        "finalSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07",
                        "identityBaselineY": 924,
                        "index": 7,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 6,
                        "parentRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: continue from Image 2 by one natural adjacent increment into the endpoint of the same motion. Do not treat 100% as permission to jump into a much wider, deeper, or more dramatic action pose. The transition from Image 2 into this peak must be visually comparable to the preceding adjacent transition. Both arms and hands, torso and hips, knees and stance, head and hair, sleeves, scarf, sash, coat, or hem finish the same connected motion together; do not introduce a new gesture. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 7,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/prompt.txt",
                        "promptSha256": "a52d32ad82ff9482b028699bb9799bf1737d6f7a43fa22ed5919f45800cf190e",
                        "providerCall": true,
                        "providerFrameIndex": 7,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/raw/source.png",
                        "rawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                                "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                            }
                        ],
                        "sourceFrameIndex": 7,
                        "sourceProvided": false
                    }
                ],
                "raw": "raw/source.png",
                "rawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--raw-source-png",
                "rawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "representative": "final/sprite.png",
                "runId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/final/sprite.png",
                        "finalSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01",
                        "identityBaselineY": 924,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/prompt.txt",
                        "promptSha256": "0965e7f9251ef424fa12e0d85a95f88c65d770c6a904278ccb99333074e29435",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "rawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/final/sprite.png",
                        "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                        "identityBaselineY": 924,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 17% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 17,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/prompt.txt",
                        "promptSha256": "2fc74d175a1c191486544d51451648e485a8e00216bdb87082d5e3cab7a8f992",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "referenceSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/final/sprite.png",
                        "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                        "identityBaselineY": 924,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 33% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 33,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/prompt.txt",
                        "promptSha256": "c6530e35c577c19544706df38ee235f4537e8d198737ed227ae631c3af4fb29d",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                                "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/final/sprite.png",
                        "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                        "identityBaselineY": 924,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 50% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 50,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/prompt.txt",
                        "promptSha256": "53bc2204d52464cecd7fdfa91596ae93b43facdbe0d5303215b18db813048a80",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                                "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/final/sprite.png",
                        "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                        "identityBaselineY": 924,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 4,
                        "parentRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 67% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 67,
                        "playbackSourceFrameIndex": 5,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/prompt.txt",
                        "promptSha256": "ec2b156390613356d0744e0ff9b0933a2a962ec3ba4a590c603c2b855a5ce8de",
                        "providerCall": true,
                        "providerFrameIndex": 5,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                                "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                            }
                        ],
                        "sourceFrameIndex": 5,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/final/sprite.png",
                        "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                        "identityBaselineY": 924,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 5,
                        "parentRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 83% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 83,
                        "playbackSourceFrameIndex": 6,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/prompt.txt",
                        "promptSha256": "d3914bf1f5248ab4b61eff9c0dc998eacfca8de85002d5b33e45e6baf0006172",
                        "providerCall": true,
                        "providerFrameIndex": 6,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                                "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                            }
                        ],
                        "sourceFrameIndex": 6,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/final/sprite.png",
                        "finalSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07",
                        "identityBaselineY": 924,
                        "index": 7,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 6,
                        "parentRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: continue from Image 2 by one natural adjacent increment into the endpoint of the same motion. Do not treat 100% as permission to jump into a much wider, deeper, or more dramatic action pose. The transition from Image 2 into this peak must be visually comparable to the preceding adjacent transition. Both arms and hands, torso and hips, knees and stance, head and hair, sleeves, scarf, sash, coat, or hem finish the same connected motion together; do not introduce a new gesture. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 7,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/prompt.txt",
                        "promptSha256": "a52d32ad82ff9482b028699bb9799bf1737d6f7a43fa22ed5919f45800cf190e",
                        "providerCall": true,
                        "providerFrameIndex": 7,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/raw/source.png",
                        "rawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                                "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                            }
                        ],
                        "sourceFrameIndex": 7,
                        "sourceProvided": false
                    }
                ],
                "sourceGenerationId": null,
                "status": "animated-command-review-required",
                "summary": "f1-plus-previous 12-frame idle ping-pong animation from 7 provider-generated frame(s); every playback frame preserves raw and alpha-only final evidence.",
                "title": "ragnarok-create · Aerwyn Academy Wind Duelist · idle animation",
                "userRequest": "Create a white adult human woman academy wind duelist wearing a fitted teal-and-navy academy jacket, short practical skirt, small shoulder cape, long tied ponytail, and holding a slender rapier upright in a formal salute."
            }
        },
        "receipt.json": {
            "sha256": "054512c67f7285b76a9a1e928debcbca4358aed50ec7c606368de2868122de77",
            "bytes": 111430,
            "value": {
                "anchorGuide": null,
                "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--receipt-json",
                "f1ProviderModel": "gpt-image-2-2026-04-21",
                "frameCount": 12,
                "frames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/final/sprite.png",
                        "finalSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01",
                        "identityBaselineY": 924,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/prompt.txt",
                        "promptSha256": "0965e7f9251ef424fa12e0d85a95f88c65d770c6a904278ccb99333074e29435",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "rawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/final/sprite.png",
                        "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                        "identityBaselineY": 924,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 17% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 17,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/prompt.txt",
                        "promptSha256": "2fc74d175a1c191486544d51451648e485a8e00216bdb87082d5e3cab7a8f992",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "referenceSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/final/sprite.png",
                        "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                        "identityBaselineY": 924,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 33% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 33,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/prompt.txt",
                        "promptSha256": "c6530e35c577c19544706df38ee235f4537e8d198737ed227ae631c3af4fb29d",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                                "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/final/sprite.png",
                        "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                        "identityBaselineY": 924,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 50% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 50,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/prompt.txt",
                        "promptSha256": "53bc2204d52464cecd7fdfa91596ae93b43facdbe0d5303215b18db813048a80",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                                "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/final/sprite.png",
                        "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                        "identityBaselineY": 924,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 4,
                        "parentRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 67% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 67,
                        "playbackSourceFrameIndex": 5,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/prompt.txt",
                        "promptSha256": "ec2b156390613356d0744e0ff9b0933a2a962ec3ba4a590c603c2b855a5ce8de",
                        "providerCall": true,
                        "providerFrameIndex": 5,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                                "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                            }
                        ],
                        "sourceFrameIndex": 5,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/final/sprite.png",
                        "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                        "identityBaselineY": 924,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 5,
                        "parentRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 83% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 83,
                        "playbackSourceFrameIndex": 6,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/prompt.txt",
                        "promptSha256": "d3914bf1f5248ab4b61eff9c0dc998eacfca8de85002d5b33e45e6baf0006172",
                        "providerCall": true,
                        "providerFrameIndex": 6,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                                "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                            }
                        ],
                        "sourceFrameIndex": 6,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/final/sprite.png",
                        "finalSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07",
                        "identityBaselineY": 924,
                        "index": 7,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 6,
                        "parentRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: continue from Image 2 by one natural adjacent increment into the endpoint of the same motion. Do not treat 100% as permission to jump into a much wider, deeper, or more dramatic action pose. The transition from Image 2 into this peak must be visually comparable to the preceding adjacent transition. Both arms and hands, torso and hips, knees and stance, head and hair, sleeves, scarf, sash, coat, or hem finish the same connected motion together; do not introduce a new gesture. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 7,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/prompt.txt",
                        "promptSha256": "a52d32ad82ff9482b028699bb9799bf1737d6f7a43fa22ed5919f45800cf190e",
                        "providerCall": true,
                        "providerFrameIndex": 7,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/raw/source.png",
                        "rawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                                "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                            }
                        ],
                        "sourceFrameIndex": 7,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/final/sprite.png",
                        "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08",
                        "identityBaselineY": 924,
                        "index": 8,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 83% of the peak displacement still remaining: move every declared part about 17% of the distance from its Image 2 position toward its Image 1 position, leaving 83% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 83,
                        "playbackPreviousFrameIndex": 7,
                        "playbackPreviousRawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                        "playbackSourceFrameIndex": 6,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/prompt.txt",
                        "promptSha256": "856b4f7599ec3c28bc5593fa2e6eda4b6277489ec877e5a45172dcd2286aba47",
                        "providerCall": false,
                        "providerFrameIndex": 6,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/raw/source.png",
                        "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                                "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                        "sourceFrameIndex": 6,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/final/sprite.png",
                        "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09",
                        "identityBaselineY": 924,
                        "index": 9,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 67% of the peak displacement still remaining: move every declared part about 19% of the distance from its Image 2 position toward its Image 1 position, leaving 67% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 67,
                        "playbackPreviousFrameIndex": 8,
                        "playbackPreviousRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "playbackSourceFrameIndex": 5,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/prompt.txt",
                        "promptSha256": "341901cc1f831ac651a5f500a24fc09d7bb2115c9ad121a0095d6eab590a8f7a",
                        "providerCall": false,
                        "providerFrameIndex": 5,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/raw/source.png",
                        "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                                "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                        "sourceFrameIndex": 5,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/final/sprite.png",
                        "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10",
                        "identityBaselineY": 924,
                        "index": 10,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 50% of the peak displacement still remaining: move every declared part about 25% of the distance from its Image 2 position toward its Image 1 position, leaving 50% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 50,
                        "playbackPreviousFrameIndex": 9,
                        "playbackPreviousRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/prompt.txt",
                        "promptSha256": "641efe33e9ea0bd02e051c893736f706c75c4a9f818e149ffddb785d0a895a59",
                        "providerCall": false,
                        "providerFrameIndex": 4,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/raw/source.png",
                        "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                                "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                        "sourceFrameIndex": 4,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/final/sprite.png",
                        "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11",
                        "identityBaselineY": 924,
                        "index": 11,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 33% of the peak displacement still remaining: move every declared part about 34% of the distance from its Image 2 position toward its Image 1 position, leaving 33% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 33,
                        "playbackPreviousFrameIndex": 10,
                        "playbackPreviousRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/prompt.txt",
                        "promptSha256": "1c14e2dae0b7edc86ece544e5680d0c2f0ff5a31d77756f0111a9fa0c70a1177",
                        "providerCall": false,
                        "providerFrameIndex": 3,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/raw/source.png",
                        "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                                "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                        "sourceFrameIndex": 3,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/final/sprite.png",
                        "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12",
                        "identityBaselineY": 924,
                        "index": 12,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 17% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 17% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 48% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 17% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 17,
                        "playbackPreviousFrameIndex": 11,
                        "playbackPreviousRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/prompt.txt",
                        "promptSha256": "043d4f53deda55a5b5f094f998b589a0a177d33ba1112c4284629acd43191a05",
                        "providerCall": false,
                        "providerFrameIndex": 2,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/raw/source.png",
                        "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                                "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                        "sourceFrameIndex": 2,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png"
                    }
                ],
                "generationId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "loopMode": "ping-pong",
                "playbackSourceFrameIndices": [
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    6,
                    5,
                    4,
                    3,
                    2
                ],
                "posePolicy": "natural-relational",
                "providerCallCount": 7,
                "providerCallCountAttempted": 7,
                "providerCallCountCompleted": 7,
                "providerFrameCount": 7,
                "providerFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/final/sprite.png",
                        "finalSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01",
                        "identityBaselineY": 924,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/prompt.txt",
                        "promptSha256": "0965e7f9251ef424fa12e0d85a95f88c65d770c6a904278ccb99333074e29435",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "rawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/final/sprite.png",
                        "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                        "identityBaselineY": 924,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 17% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 17,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/prompt.txt",
                        "promptSha256": "2fc74d175a1c191486544d51451648e485a8e00216bdb87082d5e3cab7a8f992",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "referenceSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/final/sprite.png",
                        "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                        "identityBaselineY": 924,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 33% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 33,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/prompt.txt",
                        "promptSha256": "c6530e35c577c19544706df38ee235f4537e8d198737ed227ae631c3af4fb29d",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                                "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/final/sprite.png",
                        "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                        "identityBaselineY": 924,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 50% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 50,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/prompt.txt",
                        "promptSha256": "53bc2204d52464cecd7fdfa91596ae93b43facdbe0d5303215b18db813048a80",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                                "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/final/sprite.png",
                        "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                        "identityBaselineY": 924,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 4,
                        "parentRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 67% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 67,
                        "playbackSourceFrameIndex": 5,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/prompt.txt",
                        "promptSha256": "ec2b156390613356d0744e0ff9b0933a2a962ec3ba4a590c603c2b855a5ce8de",
                        "providerCall": true,
                        "providerFrameIndex": 5,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                                "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                            }
                        ],
                        "sourceFrameIndex": 5,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/final/sprite.png",
                        "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                        "identityBaselineY": 924,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 5,
                        "parentRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 83% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 83,
                        "playbackSourceFrameIndex": 6,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/prompt.txt",
                        "promptSha256": "d3914bf1f5248ab4b61eff9c0dc998eacfca8de85002d5b33e45e6baf0006172",
                        "providerCall": true,
                        "providerFrameIndex": 6,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                                "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                            }
                        ],
                        "sourceFrameIndex": 6,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/final/sprite.png",
                        "finalSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07",
                        "identityBaselineY": 924,
                        "index": 7,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 6,
                        "parentRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: continue from Image 2 by one natural adjacent increment into the endpoint of the same motion. Do not treat 100% as permission to jump into a much wider, deeper, or more dramatic action pose. The transition from Image 2 into this peak must be visually comparable to the preceding adjacent transition. Both arms and hands, torso and hips, knees and stance, head and hair, sleeves, scarf, sash, coat, or hem finish the same connected motion together; do not introduce a new gesture. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 7,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/prompt.txt",
                        "promptSha256": "a52d32ad82ff9482b028699bb9799bf1737d6f7a43fa22ed5919f45800cf190e",
                        "providerCall": true,
                        "providerFrameIndex": 7,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/raw/source.png",
                        "rawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                                "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                            }
                        ],
                        "sourceFrameIndex": 7,
                        "sourceProvided": false
                    }
                ],
                "providerModel": "gpt-image-2-2026-04-21",
                "runId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameCount": 7,
                "sourceFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/final/sprite.png",
                        "finalSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01",
                        "identityBaselineY": 924,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/prompt.txt",
                        "promptSha256": "0965e7f9251ef424fa12e0d85a95f88c65d770c6a904278ccb99333074e29435",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "rawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/final/sprite.png",
                        "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                        "identityBaselineY": 924,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 17% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 17,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/prompt.txt",
                        "promptSha256": "2fc74d175a1c191486544d51451648e485a8e00216bdb87082d5e3cab7a8f992",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                        "referenceSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/final/sprite.png",
                        "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                        "identityBaselineY": 924,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 33% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 33,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/prompt.txt",
                        "promptSha256": "c6530e35c577c19544706df38ee235f4537e8d198737ed227ae631c3af4fb29d",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                        "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                                "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/final/sprite.png",
                        "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                        "identityBaselineY": 924,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 50% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 50,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/prompt.txt",
                        "promptSha256": "53bc2204d52464cecd7fdfa91596ae93b43facdbe0d5303215b18db813048a80",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                        "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                                "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/final/sprite.png",
                        "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                        "identityBaselineY": 924,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 4,
                        "parentRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 67% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 67,
                        "playbackSourceFrameIndex": 5,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/prompt.txt",
                        "promptSha256": "ec2b156390613356d0744e0ff9b0933a2a962ec3ba4a590c603c2b855a5ce8de",
                        "providerCall": true,
                        "providerFrameIndex": 5,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                        "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                                "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                            }
                        ],
                        "sourceFrameIndex": 5,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/final/sprite.png",
                        "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                        "identityBaselineY": 924,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 5,
                        "parentRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 83% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 83,
                        "playbackSourceFrameIndex": 6,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/prompt.txt",
                        "promptSha256": "d3914bf1f5248ab4b61eff9c0dc998eacfca8de85002d5b33e45e6baf0006172",
                        "providerCall": true,
                        "providerFrameIndex": 6,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                        "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                                "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                            }
                        ],
                        "sourceFrameIndex": 6,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-prompt-txt",
                            "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/final/sprite.png",
                        "finalSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                        "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07",
                        "identityBaselineY": 924,
                        "index": 7,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 6,
                        "parentRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: continue from Image 2 by one natural adjacent increment into the endpoint of the same motion. Do not treat 100% as permission to jump into a much wider, deeper, or more dramatic action pose. The transition from Image 2 into this peak must be visually comparable to the preceding adjacent transition. Both arms and hands, torso and hips, knees and stance, head and hair, sleeves, scarf, sash, coat, or hem finish the same connected motion together; do not introduce a new gesture. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 7,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/prompt.txt",
                        "promptSha256": "a52d32ad82ff9482b028699bb9799bf1737d6f7a43fa22ed5919f45800cf190e",
                        "providerCall": true,
                        "providerFrameIndex": 7,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/raw/source.png",
                        "rawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                        "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                                "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                            }
                        ],
                        "sourceFrameIndex": 7,
                        "sourceProvided": false
                    }
                ],
                "sourceGenerationId": null
            }
        },
        "request.json": {
            "sha256": "0c5ea2d2f444a578e807bacda8bdbd3725df0da9931b227c07f2183740562e02",
            "bytes": 126398,
            "value": {
                "animation": {
                    "action": "idle",
                    "anchorGuide": null,
                    "anchorGuidePolicy": "none",
                    "durationMs": 120,
                    "f1ProviderModel": "gpt-image-2-2026-04-21",
                    "frameCount": 12,
                    "frames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/final/sprite.png",
                            "finalSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01",
                            "identityBaselineY": 924,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/prompt.txt",
                            "promptSha256": "0965e7f9251ef424fa12e0d85a95f88c65d770c6a904278ccb99333074e29435",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "rawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/final/sprite.png",
                            "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                            "identityBaselineY": 924,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 17% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 17,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/prompt.txt",
                            "promptSha256": "2fc74d175a1c191486544d51451648e485a8e00216bdb87082d5e3cab7a8f992",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                            "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "referenceSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/final/sprite.png",
                            "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                            "identityBaselineY": 924,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 33% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 33,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/prompt.txt",
                            "promptSha256": "c6530e35c577c19544706df38ee235f4537e8d198737ed227ae631c3af4fb29d",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                            "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                            "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                                    "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/final/sprite.png",
                            "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                            "identityBaselineY": 924,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 50% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 50,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/prompt.txt",
                            "promptSha256": "53bc2204d52464cecd7fdfa91596ae93b43facdbe0d5303215b18db813048a80",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                            "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                            "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                                    "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/final/sprite.png",
                            "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                            "identityBaselineY": 924,
                            "index": 5,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 4,
                            "parentRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 67% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 67,
                            "playbackSourceFrameIndex": 5,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/prompt.txt",
                            "promptSha256": "ec2b156390613356d0744e0ff9b0933a2a962ec3ba4a590c603c2b855a5ce8de",
                            "providerCall": true,
                            "providerFrameIndex": 5,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                            "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                            "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                                    "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                                }
                            ],
                            "sourceFrameIndex": 5,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/final/sprite.png",
                            "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                            "identityBaselineY": 924,
                            "index": 6,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 5,
                            "parentRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 83% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 83,
                            "playbackSourceFrameIndex": 6,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/prompt.txt",
                            "promptSha256": "d3914bf1f5248ab4b61eff9c0dc998eacfca8de85002d5b33e45e6baf0006172",
                            "providerCall": true,
                            "providerFrameIndex": 6,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                            "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                            "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                                    "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                                }
                            ],
                            "sourceFrameIndex": 6,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/final/sprite.png",
                            "finalSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07",
                            "identityBaselineY": 924,
                            "index": 7,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 6,
                            "parentRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: continue from Image 2 by one natural adjacent increment into the endpoint of the same motion. Do not treat 100% as permission to jump into a much wider, deeper, or more dramatic action pose. The transition from Image 2 into this peak must be visually comparable to the preceding adjacent transition. Both arms and hands, torso and hips, knees and stance, head and hair, sleeves, scarf, sash, coat, or hem finish the same connected motion together; do not introduce a new gesture. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 7,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/prompt.txt",
                            "promptSha256": "a52d32ad82ff9482b028699bb9799bf1737d6f7a43fa22ed5919f45800cf190e",
                            "providerCall": true,
                            "providerFrameIndex": 7,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/raw/source.png",
                            "rawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                            "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                                    "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                                }
                            ],
                            "sourceFrameIndex": 7,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/final/sprite.png",
                            "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-08",
                            "identityBaselineY": 924,
                            "index": 8,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; return transition with exactly 83% of the peak displacement still remaining: move every declared part about 17% of the distance from its Image 2 position toward its Image 1 position, leaving 83% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 83,
                            "playbackPreviousFrameIndex": 7,
                            "playbackPreviousRawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                            "playbackSourceFrameIndex": 6,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/prompt.txt",
                            "promptSha256": "856b4f7599ec3c28bc5593fa2e6eda4b6277489ec877e5a45172dcd2286aba47",
                            "providerCall": false,
                            "providerFrameIndex": 6,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/raw/source.png",
                            "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                            "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                                    "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                            "sourceFrameIndex": 6,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png"
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/final/sprite.png",
                            "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-09",
                            "identityBaselineY": 924,
                            "index": 9,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; return transition with exactly 67% of the peak displacement still remaining: move every declared part about 19% of the distance from its Image 2 position toward its Image 1 position, leaving 67% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 67,
                            "playbackPreviousFrameIndex": 8,
                            "playbackPreviousRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                            "playbackSourceFrameIndex": 5,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/prompt.txt",
                            "promptSha256": "341901cc1f831ac651a5f500a24fc09d7bb2115c9ad121a0095d6eab590a8f7a",
                            "providerCall": false,
                            "providerFrameIndex": 5,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/raw/source.png",
                            "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                            "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                                    "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                            "sourceFrameIndex": 5,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png"
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/final/sprite.png",
                            "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-10",
                            "identityBaselineY": 924,
                            "index": 10,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; return transition with exactly 50% of the peak displacement still remaining: move every declared part about 25% of the distance from its Image 2 position toward its Image 1 position, leaving 50% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 50,
                            "playbackPreviousFrameIndex": 9,
                            "playbackPreviousRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/prompt.txt",
                            "promptSha256": "641efe33e9ea0bd02e051c893736f706c75c4a9f818e149ffddb785d0a895a59",
                            "providerCall": false,
                            "providerFrameIndex": 4,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/raw/source.png",
                            "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                            "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                                    "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                            "sourceFrameIndex": 4,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png"
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/final/sprite.png",
                            "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-11",
                            "identityBaselineY": 924,
                            "index": 11,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; return transition with exactly 33% of the peak displacement still remaining: move every declared part about 34% of the distance from its Image 2 position toward its Image 1 position, leaving 33% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 33,
                            "playbackPreviousFrameIndex": 10,
                            "playbackPreviousRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/prompt.txt",
                            "promptSha256": "1c14e2dae0b7edc86ece544e5680d0c2f0ff5a31d77756f0111a9fa0c70a1177",
                            "providerCall": false,
                            "providerFrameIndex": 3,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/raw/source.png",
                            "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                            "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                                    "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                            "sourceFrameIndex": 3,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png"
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/final/sprite.png",
                            "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-12",
                            "identityBaselineY": 924,
                            "index": 12,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 17% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 17% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 48% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 17% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 17,
                            "playbackPreviousFrameIndex": 11,
                            "playbackPreviousRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/prompt.txt",
                            "promptSha256": "043d4f53deda55a5b5f094f998b589a0a177d33ba1112c4284629acd43191a05",
                            "providerCall": false,
                            "providerFrameIndex": 2,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/raw/source.png",
                            "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                            "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                                    "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                            "sourceFrameIndex": 2,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png"
                        }
                    ],
                    "generationId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                    "ideaIdleBehaviorDeferred": null,
                    "identityBaselineY": 924,
                    "identityPolicy": "immutable-f1-raw-master",
                    "idleBehavior": "Only the rapier, rapier hand, forearm, upper arm, ponytail tips, and short cape move. Begin with the rapier held upright in a formal fencing salute. Through smooth adjacent phases, lower and extend the rapier toward screen-left into a controlled guard at the peak. The ponytail tips and short cape make one restrained delayed follow-through. Freeze the face, head, torso, shoulders, free arm and hand, jacket, skirt, legs, boots, feet, camera, scale, and background.",
                    "idleBehaviorSource": "explicit-command",
                    "lockedParts": [
                        "recognizable face and identity",
                        "costume and equipment design",
                        "fine motifs, trim, fasteners, gems, and prop markings",
                        "palette family and pixel rendering language",
                        "body proportions and overall scale band",
                        "screen-left three-quarter facing",
                        "1024x1024 canvas and flat #ff00ff background"
                    ],
                    "loop": true,
                    "loopMode": "ping-pong",
                    "movingParts": [
                        "whole pose silhouette",
                        "center of mass",
                        "torso and hips",
                        "both arms and hands",
                        "knees, legs, boots, and stance",
                        "hair and sleeves",
                        "coat tails, dress, cape, and hem",
                        "held equipment following the hands"
                    ],
                    "parentPolicy": "f1-plus-previous",
                    "phaseProgressPercent": [
                        0,
                        17,
                        33,
                        50,
                        67,
                        83,
                        100,
                        83,
                        67,
                        50,
                        33,
                        17
                    ],
                    "phases": [
                        "settled identity pose; motion has not started",
                        "one continuous whole-body out-and-back loop; first early anticipation at 17% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; outbound transition at 33% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; outbound transition at 50% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; outbound transition at 67% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; outbound transition at 83% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; single motion peak at 100%: continue from Image 2 by one natural adjacent increment into the endpoint of the same motion. Do not treat 100% as permission to jump into a much wider, deeper, or more dramatic action pose. The transition from Image 2 into this peak must be visually comparable to the preceding adjacent transition. Both arms and hands, torso and hips, knees and stance, head and hair, sleeves, scarf, sash, coat, or hem finish the same connected motion together; do not introduce a new gesture. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; return transition with exactly 83% of the peak displacement still remaining: move every declared part about 17% of the distance from its Image 2 position toward its Image 1 position, leaving 83% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; return transition with exactly 67% of the peak displacement still remaining: move every declared part about 19% of the distance from its Image 2 position toward its Image 1 position, leaving 67% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; return transition with exactly 50% of the peak displacement still remaining: move every declared part about 25% of the distance from its Image 2 position toward its Image 1 position, leaving 50% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; return transition with exactly 33% of the peak displacement still remaining: move every declared part about 34% of the distance from its Image 2 position toward its Image 1 position, leaving 33% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; final loop-closing return with exactly 17% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 17% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 48% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 17% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
                    ],
                    "playbackSourceFrameIndices": [
                        1,
                        2,
                        3,
                        4,
                        5,
                        6,
                        7,
                        6,
                        5,
                        4,
                        3,
                        2
                    ],
                    "posePolicy": "natural-relational",
                    "preview": {
                        "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--preview-animation-gif",
                        "format": "derived-gif-preview",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/preview/animation.gif",
                        "sha256": "19e58d4a26d5684d2e821ed3937ca2f5c0257acc07ae39092426c13c96c60ddd",
                        "sourcePolicy": "final-frame-pngs-unchanged"
                    },
                    "providerCallCount": 7,
                    "providerFrameCount": 7,
                    "providerFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/final/sprite.png",
                            "finalSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01",
                            "identityBaselineY": 924,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/prompt.txt",
                            "promptSha256": "0965e7f9251ef424fa12e0d85a95f88c65d770c6a904278ccb99333074e29435",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "rawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/final/sprite.png",
                            "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                            "identityBaselineY": 924,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 17% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 17,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/prompt.txt",
                            "promptSha256": "2fc74d175a1c191486544d51451648e485a8e00216bdb87082d5e3cab7a8f992",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                            "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "referenceSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/final/sprite.png",
                            "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                            "identityBaselineY": 924,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 33% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 33,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/prompt.txt",
                            "promptSha256": "c6530e35c577c19544706df38ee235f4537e8d198737ed227ae631c3af4fb29d",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                            "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                            "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                                    "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/final/sprite.png",
                            "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                            "identityBaselineY": 924,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 50% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 50,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/prompt.txt",
                            "promptSha256": "53bc2204d52464cecd7fdfa91596ae93b43facdbe0d5303215b18db813048a80",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                            "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                            "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                                    "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/final/sprite.png",
                            "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                            "identityBaselineY": 924,
                            "index": 5,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 4,
                            "parentRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 67% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 67,
                            "playbackSourceFrameIndex": 5,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/prompt.txt",
                            "promptSha256": "ec2b156390613356d0744e0ff9b0933a2a962ec3ba4a590c603c2b855a5ce8de",
                            "providerCall": true,
                            "providerFrameIndex": 5,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                            "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                            "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                                    "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                                }
                            ],
                            "sourceFrameIndex": 5,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/final/sprite.png",
                            "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                            "identityBaselineY": 924,
                            "index": 6,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 5,
                            "parentRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 83% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 83,
                            "playbackSourceFrameIndex": 6,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/prompt.txt",
                            "promptSha256": "d3914bf1f5248ab4b61eff9c0dc998eacfca8de85002d5b33e45e6baf0006172",
                            "providerCall": true,
                            "providerFrameIndex": 6,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                            "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                            "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                                    "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                                }
                            ],
                            "sourceFrameIndex": 6,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/final/sprite.png",
                            "finalSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07",
                            "identityBaselineY": 924,
                            "index": 7,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 6,
                            "parentRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: continue from Image 2 by one natural adjacent increment into the endpoint of the same motion. Do not treat 100% as permission to jump into a much wider, deeper, or more dramatic action pose. The transition from Image 2 into this peak must be visually comparable to the preceding adjacent transition. Both arms and hands, torso and hips, knees and stance, head and hair, sleeves, scarf, sash, coat, or hem finish the same connected motion together; do not introduce a new gesture. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 7,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/prompt.txt",
                            "promptSha256": "a52d32ad82ff9482b028699bb9799bf1737d6f7a43fa22ed5919f45800cf190e",
                            "providerCall": true,
                            "providerFrameIndex": 7,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/raw/source.png",
                            "rawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                            "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                                    "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                                }
                            ],
                            "sourceFrameIndex": 7,
                            "sourceProvided": false
                        }
                    ],
                    "providerModel": "gpt-image-2-2026-04-21",
                    "rootPolicy": {
                        "allowedCorrection": "lossless whole-canvas integer translation only",
                        "exactProviderRootRequired": false,
                        "measuredAfterGeneration": true,
                        "poseDependentHorizontalFootMotionPreserved": true,
                        "providerConstraint": "at least one boot sole within 16px of F1 baseline"
                    },
                    "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                    "sourceFrameCount": 7,
                    "sourceFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/final/sprite.png",
                            "finalSha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-01",
                            "identityBaselineY": 924,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/prompt.txt",
                            "promptSha256": "0965e7f9251ef424fa12e0d85a95f88c65d770c6a904278ccb99333074e29435",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "rawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/final/sprite.png",
                            "finalSha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-02",
                            "identityBaselineY": 924,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 17% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 17,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/prompt.txt",
                            "promptSha256": "2fc74d175a1c191486544d51451648e485a8e00216bdb87082d5e3cab7a8f992",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                            "rawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                            "referenceSha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/final/sprite.png",
                            "finalSha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-03",
                            "identityBaselineY": 924,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 33% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 33,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/prompt.txt",
                            "promptSha256": "c6530e35c577c19544706df38ee235f4537e8d198737ed227ae631c3af4fb29d",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                            "rawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                            "referenceSha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
                                    "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/final/sprite.png",
                            "finalSha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-04",
                            "identityBaselineY": 924,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 50% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 50,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/prompt.txt",
                            "promptSha256": "53bc2204d52464cecd7fdfa91596ae93b43facdbe0d5303215b18db813048a80",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                            "rawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                            "referenceSha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
                                    "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/final/sprite.png",
                            "finalSha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-05",
                            "identityBaselineY": 924,
                            "index": 5,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 4,
                            "parentRawSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 67% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 67,
                            "playbackSourceFrameIndex": 5,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/prompt.txt",
                            "promptSha256": "ec2b156390613356d0744e0ff9b0933a2a962ec3ba4a590c603c2b855a5ce8de",
                            "providerCall": true,
                            "providerFrameIndex": 5,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                            "rawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                            "referenceSha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
                                    "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81"
                                }
                            ],
                            "sourceFrameIndex": 5,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/final/sprite.png",
                            "finalSha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-06",
                            "identityBaselineY": 924,
                            "index": 6,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 5,
                            "parentRawSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 83% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 83,
                            "playbackSourceFrameIndex": 6,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/prompt.txt",
                            "promptSha256": "d3914bf1f5248ab4b61eff9c0dc998eacfca8de85002d5b33e45e6baf0006172",
                            "providerCall": true,
                            "providerFrameIndex": 6,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                            "rawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                            "referenceSha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
                                    "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644"
                                }
                            ],
                            "sourceFrameIndex": 6,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-prompt-txt",
                                "raw": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/final/sprite.png",
                            "finalSha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
                            "frameId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--frames-07",
                            "identityBaselineY": 924,
                            "index": 7,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 6,
                            "parentRawSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: continue from Image 2 by one natural adjacent increment into the endpoint of the same motion. Do not treat 100% as permission to jump into a much wider, deeper, or more dramatic action pose. The transition from Image 2 into this peak must be visually comparable to the preceding adjacent transition. Both arms and hands, torso and hips, knees and stance, head and hair, sleeves, scarf, sash, coat, or hem finish the same connected motion together; do not introduce a new gesture. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F12 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 7,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/prompt.txt",
                            "promptSha256": "a52d32ad82ff9482b028699bb9799bf1737d6f7a43fa22ed5919f45800cf190e",
                            "providerCall": true,
                            "providerFrameIndex": 7,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/raw/source.png",
                            "rawSha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                            "referenceSha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
                                    "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
                                    "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3"
                                }
                            ],
                            "sourceFrameIndex": 7,
                            "sourceProvided": false
                        }
                    ],
                    "stylePolicy": "elder-a-master"
                },
                "artifactId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d--request-json",
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Aerwyn Academy Wind Duelist",
                "classSource": "request-title",
                "command": "ragnarok-create --animate",
                "createdAt": "2026-07-24T22:48:26.638621Z",
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "provider": {
                    "animationInputFidelity": "unsupported-omitted",
                    "animationModel": "gpt-image-2-2026-04-21",
                    "attemptedCalls": 7,
                    "completedCalls": 7,
                    "f1InputFidelity": "unsupported-omitted",
                    "f1Model": "gpt-image-2-2026-04-21",
                    "quality": "medium",
                    "size": "1024x1024"
                },
                "request": "Create a white adult human woman academy wind duelist wearing a fitted teal-and-navy academy jacket, short practical skirt, small shoulder cape, long tied ponytail, and holding a slender rapier upright in a formal salute.",
                "runId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "source": null,
                "sourceGenerationId": null,
                "title": "Aerwyn Academy Wind Duelist"
            }
        },
        "review/onion-audit/report.json": {
            "sha256": "3d4a9734eaf8e679900b7bb0a49de41e99a89fd43c4097c2f898bb23f7b1a583",
            "bytes": 12870,
            "value": {
                "artifacts": [
                    {
                        "path": "review/onion-audit/f1-to-f02.png",
                        "sha256": "dd1ffe293cc2fc571545de62ec984695a97651122da509770cd2330757c8bc7b"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f01-f02.png",
                        "sha256": "dd1ffe293cc2fc571545de62ec984695a97651122da509770cd2330757c8bc7b"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f03.png",
                        "sha256": "1b7b8989893cda7f17bd11de78a11698710383ace772e4e9b1d3215d8becc9f2"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f02-f03.png",
                        "sha256": "77c73cc689247793b22b11877d24194ce1de78bc11ae139694a435831cd7a473"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f04.png",
                        "sha256": "ef69e7fac02fbf0f6f02cff9701434398e1524d20dd1cb5e617db9477a75d5b0"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f03-f04.png",
                        "sha256": "9191fefd13329c5a21a5ce10b73679d3dc0e1262c315395bdcfb42ffef6f5109"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f05.png",
                        "sha256": "1b4399db6b2920d5818568ca9be8a12ea35c751b5cdf6245d11823eae55e518d"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f04-f05.png",
                        "sha256": "52130662ac41915ccd37a0f9764e9a3c2326b0d42f13e8e59c66fbda2413eafa"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f06.png",
                        "sha256": "8909a95fe212a4c49315add53fbc3fb4273e34f49a0544e50b10dbe41565d7ff"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f05-f06.png",
                        "sha256": "d68854e6f827026635e0036ceac82ef66ec371ff5b889f253b1b53db602f6467"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f07.png",
                        "sha256": "fef233fa56c2982b6b77603691e3c37c545fa8deb6ff433c4231846b81c61e9d"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f06-f07.png",
                        "sha256": "b6cf39b584b2c82c9b4bc1a0d8a3123067ec295613157817f1c10db3f3f41695"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f08.png",
                        "sha256": "8909a95fe212a4c49315add53fbc3fb4273e34f49a0544e50b10dbe41565d7ff"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f07-f08.png",
                        "sha256": "fdc5a1d25764a880633b6a9ca8675070edc3fa7ddf57b096df609b907a252db4"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f09.png",
                        "sha256": "1b4399db6b2920d5818568ca9be8a12ea35c751b5cdf6245d11823eae55e518d"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f08-f09.png",
                        "sha256": "82f6c8056c08fc24baa01e10d4cfcfb9211893762cbca2b09303dd0139e8360a"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f10.png",
                        "sha256": "ef69e7fac02fbf0f6f02cff9701434398e1524d20dd1cb5e617db9477a75d5b0"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f09-f10.png",
                        "sha256": "0ca75f64e38c9c4d5c6e2f41898ccb69870965a556b525e764737505d77344bb"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f11.png",
                        "sha256": "1b7b8989893cda7f17bd11de78a11698710383ace772e4e9b1d3215d8becc9f2"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f10-f11.png",
                        "sha256": "69288411474d40b8b37a3244509f8b241cb53b48e80c10f7ba47c068ca59b834"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f12.png",
                        "sha256": "dd1ffe293cc2fc571545de62ec984695a97651122da509770cd2330757c8bc7b"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f11-f12.png",
                        "sha256": "71664b3575518461296560cddfbaf198d8c9b155758fc5c422044d4221319d44"
                    },
                    {
                        "path": "review/onion-audit/f1-onion-sheet.png",
                        "sha256": "66c42196b41b1a4b2a9d8f7536c6a004fb754cec0c6626beb65f26c79df95e1c"
                    }
                ],
                "frames": [
                    {
                        "baselineY": 924,
                        "bodyBandAreaRatioToF1": 1,
                        "bodyBandBounds": [
                            364,
                            26,
                            686,
                            925
                        ],
                        "bodyBandCentroid": [
                            528.7741,
                            489.8503
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0,
                            0
                        ],
                        "bodyBandHeight": 899,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 167675,
                        "frame": 1,
                        "fullBounds": [
                            311,
                            26,
                            714,
                            925
                        ],
                        "fullCentroid": [
                            525.17,
                            484.4843
                        ],
                        "path": "frames/01/final/sprite.png",
                        "sha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647"
                    },
                    {
                        "baselineY": 924,
                        "bodyBandAreaRatioToF1": 0.878998,
                        "bodyBandBounds": [
                            364,
                            139,
                            686,
                            925
                        ],
                        "bodyBandCentroid": [
                            560.9455,
                            504.0327
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            32.1714,
                            14.1824
                        ],
                        "bodyBandHeight": 786,
                        "bodyBandHeightRatioToF1": 0.874305,
                        "bodyBandVisiblePixels": 147386,
                        "frame": 2,
                        "fullBounds": [
                            48,
                            139,
                            822,
                            925
                        ],
                        "fullCentroid": [
                            565.8581,
                            478.0942
                        ],
                        "path": "frames/02/final/sprite.png",
                        "sha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7"
                    },
                    {
                        "baselineY": 900,
                        "bodyBandAreaRatioToF1": 0.784052,
                        "bodyBandBounds": [
                            364,
                            161,
                            686,
                            901
                        ],
                        "bodyBandCentroid": [
                            564.8076,
                            506.9911
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            36.0335,
                            17.1408
                        ],
                        "bodyBandHeight": 740,
                        "bodyBandHeightRatioToF1": 0.823137,
                        "bodyBandVisiblePixels": 131466,
                        "frame": 3,
                        "fullBounds": [
                            35,
                            161,
                            795,
                            901
                        ],
                        "fullCentroid": [
                            571.4498,
                            498.0392
                        ],
                        "path": "frames/03/final/sprite.png",
                        "sha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5"
                    },
                    {
                        "baselineY": 902,
                        "bodyBandAreaRatioToF1": 0.782472,
                        "bodyBandBounds": [
                            364,
                            159,
                            686,
                            903
                        ],
                        "bodyBandCentroid": [
                            565.5418,
                            507.024
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            36.7677,
                            17.1737
                        ],
                        "bodyBandHeight": 744,
                        "bodyBandHeightRatioToF1": 0.827586,
                        "bodyBandVisiblePixels": 131201,
                        "frame": 4,
                        "fullBounds": [
                            36,
                            159,
                            794,
                            903
                        ],
                        "fullCentroid": [
                            572.7133,
                            498.475
                        ],
                        "path": "frames/04/final/sprite.png",
                        "sha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e"
                    },
                    {
                        "baselineY": 901,
                        "bodyBandAreaRatioToF1": 0.695566,
                        "bodyBandBounds": [
                            364,
                            160,
                            686,
                            902
                        ],
                        "bodyBandCentroid": [
                            572.7421,
                            501.422
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            43.968,
                            11.5717
                        ],
                        "bodyBandHeight": 742,
                        "bodyBandHeightRatioToF1": 0.825362,
                        "bodyBandVisiblePixels": 116629,
                        "frame": 5,
                        "fullBounds": [
                            22,
                            159,
                            858,
                            902
                        ],
                        "fullCentroid": [
                            601.6915,
                            488.8544
                        ],
                        "path": "frames/05/final/sprite.png",
                        "sha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4"
                    },
                    {
                        "baselineY": 901,
                        "bodyBandAreaRatioToF1": 0.676016,
                        "bodyBandBounds": [
                            364,
                            160,
                            686,
                            902
                        ],
                        "bodyBandCentroid": [
                            573.735,
                            500.9743
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            44.9609,
                            11.124
                        ],
                        "bodyBandHeight": 742,
                        "bodyBandHeightRatioToF1": 0.825362,
                        "bodyBandVisiblePixels": 113351,
                        "frame": 6,
                        "fullBounds": [
                            27,
                            160,
                            899,
                            902
                        ],
                        "fullCentroid": [
                            613.672,
                            485.0837
                        ],
                        "path": "frames/06/final/sprite.png",
                        "sha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b"
                    },
                    {
                        "baselineY": 901,
                        "bodyBandAreaRatioToF1": 0.675235,
                        "bodyBandBounds": [
                            364,
                            160,
                            686,
                            902
                        ],
                        "bodyBandCentroid": [
                            573.7904,
                            501.1102
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            45.0163,
                            11.2599
                        ],
                        "bodyBandHeight": 742,
                        "bodyBandHeightRatioToF1": 0.825362,
                        "bodyBandVisiblePixels": 113220,
                        "frame": 7,
                        "fullBounds": [
                            27,
                            160,
                            899,
                            902
                        ],
                        "fullCentroid": [
                            615.0203,
                            484.8005
                        ],
                        "path": "frames/07/final/sprite.png",
                        "sha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012"
                    },
                    {
                        "baselineY": 901,
                        "bodyBandAreaRatioToF1": 0.676016,
                        "bodyBandBounds": [
                            364,
                            160,
                            686,
                            902
                        ],
                        "bodyBandCentroid": [
                            573.735,
                            500.9743
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            44.9609,
                            11.124
                        ],
                        "bodyBandHeight": 742,
                        "bodyBandHeightRatioToF1": 0.825362,
                        "bodyBandVisiblePixels": 113351,
                        "frame": 8,
                        "fullBounds": [
                            27,
                            160,
                            899,
                            902
                        ],
                        "fullCentroid": [
                            613.672,
                            485.0837
                        ],
                        "path": "frames/08/final/sprite.png",
                        "sha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b"
                    },
                    {
                        "baselineY": 901,
                        "bodyBandAreaRatioToF1": 0.695566,
                        "bodyBandBounds": [
                            364,
                            160,
                            686,
                            902
                        ],
                        "bodyBandCentroid": [
                            572.7421,
                            501.422
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            43.968,
                            11.5717
                        ],
                        "bodyBandHeight": 742,
                        "bodyBandHeightRatioToF1": 0.825362,
                        "bodyBandVisiblePixels": 116629,
                        "frame": 9,
                        "fullBounds": [
                            22,
                            159,
                            858,
                            902
                        ],
                        "fullCentroid": [
                            601.6915,
                            488.8544
                        ],
                        "path": "frames/09/final/sprite.png",
                        "sha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4"
                    },
                    {
                        "baselineY": 902,
                        "bodyBandAreaRatioToF1": 0.782472,
                        "bodyBandBounds": [
                            364,
                            159,
                            686,
                            903
                        ],
                        "bodyBandCentroid": [
                            565.5418,
                            507.024
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            36.7677,
                            17.1737
                        ],
                        "bodyBandHeight": 744,
                        "bodyBandHeightRatioToF1": 0.827586,
                        "bodyBandVisiblePixels": 131201,
                        "frame": 10,
                        "fullBounds": [
                            36,
                            159,
                            794,
                            903
                        ],
                        "fullCentroid": [
                            572.7133,
                            498.475
                        ],
                        "path": "frames/10/final/sprite.png",
                        "sha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e"
                    },
                    {
                        "baselineY": 900,
                        "bodyBandAreaRatioToF1": 0.784052,
                        "bodyBandBounds": [
                            364,
                            161,
                            686,
                            901
                        ],
                        "bodyBandCentroid": [
                            564.8076,
                            506.9911
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            36.0335,
                            17.1408
                        ],
                        "bodyBandHeight": 740,
                        "bodyBandHeightRatioToF1": 0.823137,
                        "bodyBandVisiblePixels": 131466,
                        "frame": 11,
                        "fullBounds": [
                            35,
                            161,
                            795,
                            901
                        ],
                        "fullCentroid": [
                            571.4498,
                            498.0392
                        ],
                        "path": "frames/11/final/sprite.png",
                        "sha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5"
                    },
                    {
                        "baselineY": 924,
                        "bodyBandAreaRatioToF1": 0.878998,
                        "bodyBandBounds": [
                            364,
                            139,
                            686,
                            925
                        ],
                        "bodyBandCentroid": [
                            560.9455,
                            504.0327
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            32.1714,
                            14.1824
                        ],
                        "bodyBandHeight": 786,
                        "bodyBandHeightRatioToF1": 0.874305,
                        "bodyBandVisiblePixels": 147386,
                        "frame": 12,
                        "fullBounds": [
                            48,
                            139,
                            822,
                            925
                        ],
                        "fullCentroid": [
                            565.8581,
                            478.0942
                        ],
                        "path": "frames/12/final/sprite.png",
                        "sha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7"
                    }
                ],
                "measurement": {
                    "bodyBandDerivedFrom": "F1 alpha centroid and 80% of F1 visible width",
                    "bodyBandX": [
                        364,
                        686
                    ],
                    "canvas": [
                        1024,
                        1024
                    ],
                    "onionColors": {
                        "background": "#10131d",
                        "comparisonOnly": "#24e0ee",
                        "f1Only": "#ff3399",
                        "shared": "#f6f1e7"
                    }
                },
                "runId": "ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d",
                "schemaVersion": "midgard-pixels.generation-onion-audit.v1",
                "summary": {
                    "baselineRangePx": 24,
                    "maximumAbsoluteBodyCentroidXDriftPx": 45.0163,
                    "minimumBodyAreaRatioToF1": 0.675235,
                    "minimumBodyHeightRatioToF1": 0.823137,
                    "providerLateralDriftDetected": true,
                    "providerScaleDriftDetected": true
                }
            }
        }
    },
    "media": {
        "derived/dense-body-f1-root-lock-v4/frames/01/final/sprite.png": {
            "attachment_id": 4438,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/frames/01/final/sprite.png",
            "sha256": "06100125347e2b71487076fee2aa74f620b93d70eac1fc05b2019570f54304ee",
            "bytes": 329919,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/frames/02/final/sprite.png": {
            "attachment_id": 4445,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/frames/02/final/sprite.png",
            "sha256": "378ee24fb4ff3fffbb2ef4e7127aa5befeb7e29c10e44e5509155c15389ee47e",
            "bytes": 382349,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/frames/03/final/sprite.png": {
            "attachment_id": 4444,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/frames/03/final/sprite.png",
            "sha256": "d71f3e014a1548ebeea7b60425f68b1b1a19dcac6f98e38a48f63e4259b19464",
            "bytes": 362419,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/frames/04/final/sprite.png": {
            "attachment_id": 4435,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/frames/04/final/sprite.png",
            "sha256": "c6db1bb6e541839c44b4c25e1d6ba423a3193f00c7c317bd3ef1600f5eeb4e76",
            "bytes": 364623,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/frames/05/final/sprite.png": {
            "attachment_id": 4439,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/frames/05/final/sprite.png",
            "sha256": "fcee48cc48dbd8b025c0456affaf546d3b4c67fc06ff0cfbae4b72abf119f145",
            "bytes": 369960,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/frames/06/final/sprite.png": {
            "attachment_id": 4443,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/frames/06/final/sprite.png",
            "sha256": "191eeccb599adbd0cd611d02d99fd74b5ac9447718619c9ecd6570e11c5840ae",
            "bytes": 378831,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/frames/07/final/sprite.png": {
            "attachment_id": 4437,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/frames/07/final/sprite.png",
            "sha256": "0e0462b73f63c0e4307cef9137d8ae9334b40f09221d9d5e5d832021d0d2cc5e",
            "bytes": 386686,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/frames/08/final/sprite.png": {
            "attachment_id": 4440,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/frames/08/final/sprite.png",
            "sha256": "191eeccb599adbd0cd611d02d99fd74b5ac9447718619c9ecd6570e11c5840ae",
            "bytes": 378831,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/frames/09/final/sprite.png": {
            "attachment_id": 4436,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/frames/09/final/sprite.png",
            "sha256": "fcee48cc48dbd8b025c0456affaf546d3b4c67fc06ff0cfbae4b72abf119f145",
            "bytes": 369960,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/frames/10/final/sprite.png": {
            "attachment_id": 4441,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/frames/10/final/sprite.png",
            "sha256": "c6db1bb6e541839c44b4c25e1d6ba423a3193f00c7c317bd3ef1600f5eeb4e76",
            "bytes": 364623,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/frames/11/final/sprite.png": {
            "attachment_id": 4442,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/frames/11/final/sprite.png",
            "sha256": "d71f3e014a1548ebeea7b60425f68b1b1a19dcac6f98e38a48f63e4259b19464",
            "bytes": 362419,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/frames/12/final/sprite.png": {
            "attachment_id": 4434,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/frames/12/final/sprite.png",
            "sha256": "378ee24fb4ff3fffbb2ef4e7127aa5befeb7e29c10e44e5509155c15389ee47e",
            "bytes": 382349,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/preview/animation.gif": {
            "attachment_id": 4410,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/preview/animation.gif",
            "sha256": "36b4f2c483131cad93da1a63a7073c9e000441d9c70b1ae4aed1049bb06b3487",
            "bytes": 1275740,
            "mime": "image/gif"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f01-f02.png": {
            "attachment_id": 4421,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f01-f02.png",
            "sha256": "5f2b9b44d62025adba9cc04edab9834d310c3f5dcddfe14beb9baf934f6dec70",
            "bytes": 11923,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f02-f03.png": {
            "attachment_id": 4414,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f02-f03.png",
            "sha256": "c33cacef399ebdd34d7ff28c97748a6cf5c548613942c3e297f59b5491773f4c",
            "bytes": 12633,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f03-f04.png": {
            "attachment_id": 4416,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f03-f04.png",
            "sha256": "7a18e7c8211ef7dd0f01a50ea8c13978133c9b3ab4f652a02ae99b73da233af5",
            "bytes": 12359,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f04-f05.png": {
            "attachment_id": 4427,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f04-f05.png",
            "sha256": "730eade21e25a6e314274fe18f0ecd7fc1c4af01010042b8db7a37a8f84c802f",
            "bytes": 12184,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f05-f06.png": {
            "attachment_id": 4423,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f05-f06.png",
            "sha256": "24c470301074a70c25455960147591ecdb60e87cadf7b99fa4412dab8f89c95f",
            "bytes": 12654,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f06-f07.png": {
            "attachment_id": 4428,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f06-f07.png",
            "sha256": "978fa4757cb6d6014fdb7f258c37e109e2bc47aa188e083d024b45b61c88b03c",
            "bytes": 12086,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f07-f08.png": {
            "attachment_id": 4422,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f07-f08.png",
            "sha256": "8c0be80e05235331bc00580d0d7e1fff671af322cc838105cd220ef96a1cacf4",
            "bytes": 12077,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f08-f09.png": {
            "attachment_id": 4432,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f08-f09.png",
            "sha256": "762d9dfcc10c376ac4ccd5a2b8cd173f3b632713c1e666a7f8e525e1298a0da0",
            "bytes": 12609,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f09-f10.png": {
            "attachment_id": 4424,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f09-f10.png",
            "sha256": "30c7f53dd4909a3e7ebd9a7509ffb10e5e092c7214fcc6f75f18f5da5bd75994",
            "bytes": 12172,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f10-f11.png": {
            "attachment_id": 4429,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f10-f11.png",
            "sha256": "2661b555323b4b5081a8eec58d14acc6ea2e5752bcfd1b4ea4edae1e77844b72",
            "bytes": 12323,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f11-f12.png": {
            "attachment_id": 4433,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/review/onion-audit/adjacent-f11-f12.png",
            "sha256": "b316553ff76082cd30f3ea2490a6910ffadc9b0c2cc3accf7bc1b059c3fa1ebc",
            "bytes": 12651,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-onion-sheet.png": {
            "attachment_id": 4411,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-onion-sheet.png",
            "sha256": "77bcfa051328332c3709b996aed599ebfa861251def889860b20700e938cb01a",
            "bytes": 24430,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f02.png": {
            "attachment_id": 4425,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f02.png",
            "sha256": "5f2b9b44d62025adba9cc04edab9834d310c3f5dcddfe14beb9baf934f6dec70",
            "bytes": 11923,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f03.png": {
            "attachment_id": 4412,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f03.png",
            "sha256": "9f0d81c5f2e173750bda80499848099696843647b69e97f22a8d35061378a170",
            "bytes": 11744,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f04.png": {
            "attachment_id": 4413,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f04.png",
            "sha256": "32fc6916b5c8e758bd429ec8d8beb3dcd34f9677ae122f41450630193aac7418",
            "bytes": 11690,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f05.png": {
            "attachment_id": 4417,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f05.png",
            "sha256": "33e8027070fc35391868395e011b5e44433f0c573aaf3bda115556a0f23fff98",
            "bytes": 11540,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f06.png": {
            "attachment_id": 4430,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f06.png",
            "sha256": "a316f129ff8422714dfec7fed8df26fce2171b6fa278f443aded9d74c682402c",
            "bytes": 11962,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f07.png": {
            "attachment_id": 4415,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f07.png",
            "sha256": "0ca38527932cd574c90d1d8bc813987202bbf94f446ee99dff4726fccd94c669",
            "bytes": 11917,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f08.png": {
            "attachment_id": 4431,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f08.png",
            "sha256": "a316f129ff8422714dfec7fed8df26fce2171b6fa278f443aded9d74c682402c",
            "bytes": 11962,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f09.png": {
            "attachment_id": 4419,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f09.png",
            "sha256": "33e8027070fc35391868395e011b5e44433f0c573aaf3bda115556a0f23fff98",
            "bytes": 11540,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f10.png": {
            "attachment_id": 4426,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f10.png",
            "sha256": "32fc6916b5c8e758bd429ec8d8beb3dcd34f9677ae122f41450630193aac7418",
            "bytes": 11690,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f11.png": {
            "attachment_id": 4420,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f11.png",
            "sha256": "9f0d81c5f2e173750bda80499848099696843647b69e97f22a8d35061378a170",
            "bytes": 11744,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f12.png": {
            "attachment_id": 4418,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v4/review/onion-audit/f1-to-f12.png",
            "sha256": "5f2b9b44d62025adba9cc04edab9834d310c3f5dcddfe14beb9baf934f6dec70",
            "bytes": 11923,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/frames/01/final/sprite.png": {
            "attachment_id": 4330,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/frames/01/final/sprite.png",
            "sha256": "06100125347e2b71487076fee2aa74f620b93d70eac1fc05b2019570f54304ee",
            "bytes": 329919,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/frames/02/final/sprite.png": {
            "attachment_id": 4337,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/frames/02/final/sprite.png",
            "sha256": "ede2292f77b4af305456cf6f9c9cb063e2d08c94859fb12fe0ed20df7b891586",
            "bytes": 383891,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/frames/03/final/sprite.png": {
            "attachment_id": 4336,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/frames/03/final/sprite.png",
            "sha256": "decdd31dcf88d79b5d42d5bab35a1deba68ee0a8621d2408987c78e236d6311e",
            "bytes": 364017,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/frames/04/final/sprite.png": {
            "attachment_id": 4327,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/frames/04/final/sprite.png",
            "sha256": "ddcf24b70b44956b3a5d9a56b950d6152469be120c4cd85c873f9f064b77f4b0",
            "bytes": 365674,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/frames/05/final/sprite.png": {
            "attachment_id": 4331,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/frames/05/final/sprite.png",
            "sha256": "e597e98e9ceabb5085577ff1615ebf8b0a6d41f155dd1c270e1a896a7c20140e",
            "bytes": 370977,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/frames/06/final/sprite.png": {
            "attachment_id": 4335,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/frames/06/final/sprite.png",
            "sha256": "830c1486b278c72537df0b993a7b3e736693f7d93efd61ab52c594411005a58f",
            "bytes": 380494,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/frames/07/final/sprite.png": {
            "attachment_id": 4329,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/frames/07/final/sprite.png",
            "sha256": "49e9bb7a2d53555301b9c24495d64146b0f7bce8613b128107064ced57375cba",
            "bytes": 388232,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/frames/08/final/sprite.png": {
            "attachment_id": 4332,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/frames/08/final/sprite.png",
            "sha256": "830c1486b278c72537df0b993a7b3e736693f7d93efd61ab52c594411005a58f",
            "bytes": 380494,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/frames/09/final/sprite.png": {
            "attachment_id": 4328,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/frames/09/final/sprite.png",
            "sha256": "e597e98e9ceabb5085577ff1615ebf8b0a6d41f155dd1c270e1a896a7c20140e",
            "bytes": 370977,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/frames/10/final/sprite.png": {
            "attachment_id": 4333,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/frames/10/final/sprite.png",
            "sha256": "ddcf24b70b44956b3a5d9a56b950d6152469be120c4cd85c873f9f064b77f4b0",
            "bytes": 365674,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/frames/11/final/sprite.png": {
            "attachment_id": 4334,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/frames/11/final/sprite.png",
            "sha256": "decdd31dcf88d79b5d42d5bab35a1deba68ee0a8621d2408987c78e236d6311e",
            "bytes": 364017,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/frames/12/final/sprite.png": {
            "attachment_id": 4326,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/frames/12/final/sprite.png",
            "sha256": "ede2292f77b4af305456cf6f9c9cb063e2d08c94859fb12fe0ed20df7b891586",
            "bytes": 383891,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/preview/animation.gif": {
            "attachment_id": 4302,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/preview/animation.gif",
            "sha256": "0b3176663493a2450dd0249f428fc6b8cb1b4e086022c70362211615554e4df4",
            "bytes": 1285072,
            "mime": "image/gif"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f01-f02.png": {
            "attachment_id": 4313,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f01-f02.png",
            "sha256": "90cc4252f61a056da81192e5b405756e9090469868a133771b936dc0660c47ef",
            "bytes": 11778,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f02-f03.png": {
            "attachment_id": 4306,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f02-f03.png",
            "sha256": "0d944ae1db92bacd22fd183ab433b35bca39e46838cdc5393ab91e50603001f9",
            "bytes": 12662,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f03-f04.png": {
            "attachment_id": 4308,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f03-f04.png",
            "sha256": "7c698e7f4a64c16db55f2b8337e2be5a5ff71249571187d430933395b4b179fd",
            "bytes": 12413,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f04-f05.png": {
            "attachment_id": 4319,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f04-f05.png",
            "sha256": "c9ec9f47c38a8720bee2cd5c406494288ff53cd1c3c6241d8c6478d99bb2ad7a",
            "bytes": 12166,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f05-f06.png": {
            "attachment_id": 4315,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f05-f06.png",
            "sha256": "323be330fe4ed0bc188976fdf9b973c589da04560b23132bdfc1a68526ab4b8d",
            "bytes": 12865,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f06-f07.png": {
            "attachment_id": 4320,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f06-f07.png",
            "sha256": "f485d1439112f147f71e9d73cff05ee0c42627732a6a316472d80672d46170cb",
            "bytes": 12155,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f07-f08.png": {
            "attachment_id": 4314,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f07-f08.png",
            "sha256": "f7197ec37a161d0fdeff52050c2c00377b791fddabcda9671e776a65d7fb35d9",
            "bytes": 12137,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f08-f09.png": {
            "attachment_id": 4324,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f08-f09.png",
            "sha256": "55a67a16e607fd1ade3b00ec0c57d97df399edeb44a07401a3f7df8dd4664e48",
            "bytes": 12848,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f09-f10.png": {
            "attachment_id": 4316,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f09-f10.png",
            "sha256": "675e05f18577025c72e4ba454334f53c4bf6d27f7d222110593e84bb53d370e6",
            "bytes": 12148,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f10-f11.png": {
            "attachment_id": 4321,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f10-f11.png",
            "sha256": "f8ea3f02e0c69233bdf2e6ccb0784610f3dba2c0b6e4f36f0392115e8494a73a",
            "bytes": 12398,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f11-f12.png": {
            "attachment_id": 4325,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/review/onion-audit/adjacent-f11-f12.png",
            "sha256": "762f2df151a6a202e72983ba5fc83597e83575369116ee3a698cea01c7fd07df",
            "bytes": 12724,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-onion-sheet.png": {
            "attachment_id": 4303,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-onion-sheet.png",
            "sha256": "42f12f26986537a0f827b39f0ed58460ad57e2cebfe2f11424a2c9e3122b89b9",
            "bytes": 24341,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f02.png": {
            "attachment_id": 4317,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f02.png",
            "sha256": "90cc4252f61a056da81192e5b405756e9090469868a133771b936dc0660c47ef",
            "bytes": 11778,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f03.png": {
            "attachment_id": 4304,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f03.png",
            "sha256": "0f9a4e002b4bcb3aaab9fbe3bc7ffd15fd751c932398d8c499995bf9602dff6e",
            "bytes": 11744,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f04.png": {
            "attachment_id": 4305,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f04.png",
            "sha256": "955f8be1f61b9838b8f8134264ca72db09f7095e8a4fe522cc11eb184d74e09a",
            "bytes": 11719,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f05.png": {
            "attachment_id": 4309,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f05.png",
            "sha256": "0422378da27b14e2bdcd75d23084e8d8eb771fd73f4723575ce28f194838caf7",
            "bytes": 11579,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f06.png": {
            "attachment_id": 4322,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f06.png",
            "sha256": "0b160dc61496586f63d84ce995ec948f5861b96886042fe9e2535ef48c1fd379",
            "bytes": 11936,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f07.png": {
            "attachment_id": 4307,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f07.png",
            "sha256": "c6d7486caf5f719469579eb8060a2a4d11a5970df81b96f48155f6de11e6ecc9",
            "bytes": 11885,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f08.png": {
            "attachment_id": 4323,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f08.png",
            "sha256": "0b160dc61496586f63d84ce995ec948f5861b96886042fe9e2535ef48c1fd379",
            "bytes": 11936,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f09.png": {
            "attachment_id": 4311,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f09.png",
            "sha256": "0422378da27b14e2bdcd75d23084e8d8eb771fd73f4723575ce28f194838caf7",
            "bytes": 11579,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f10.png": {
            "attachment_id": 4318,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f10.png",
            "sha256": "955f8be1f61b9838b8f8134264ca72db09f7095e8a4fe522cc11eb184d74e09a",
            "bytes": 11719,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f11.png": {
            "attachment_id": 4312,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f11.png",
            "sha256": "0f9a4e002b4bcb3aaab9fbe3bc7ffd15fd751c932398d8c499995bf9602dff6e",
            "bytes": 11744,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f12.png": {
            "attachment_id": 4310,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v5/review/onion-audit/f1-to-f12.png",
            "sha256": "90cc4252f61a056da81192e5b405756e9090469868a133771b936dc0660c47ef",
            "bytes": 11778,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/frames/01/final/sprite.png": {
            "attachment_id": 4366,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/frames/01/final/sprite.png",
            "sha256": "06100125347e2b71487076fee2aa74f620b93d70eac1fc05b2019570f54304ee",
            "bytes": 329919,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/frames/02/final/sprite.png": {
            "attachment_id": 4373,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/frames/02/final/sprite.png",
            "sha256": "ede2292f77b4af305456cf6f9c9cb063e2d08c94859fb12fe0ed20df7b891586",
            "bytes": 383891,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/frames/03/final/sprite.png": {
            "attachment_id": 4372,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/frames/03/final/sprite.png",
            "sha256": "fe9eb1cd1b05a741aa920c2f1db48b30ac14a668db91757036b577fab94532e8",
            "bytes": 364022,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/frames/04/final/sprite.png": {
            "attachment_id": 4363,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/frames/04/final/sprite.png",
            "sha256": "ddcf24b70b44956b3a5d9a56b950d6152469be120c4cd85c873f9f064b77f4b0",
            "bytes": 365674,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/frames/05/final/sprite.png": {
            "attachment_id": 4367,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/frames/05/final/sprite.png",
            "sha256": "e597e98e9ceabb5085577ff1615ebf8b0a6d41f155dd1c270e1a896a7c20140e",
            "bytes": 370977,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/frames/06/final/sprite.png": {
            "attachment_id": 4371,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/frames/06/final/sprite.png",
            "sha256": "c8145e50b13b08b37c9a0c10e59b45f998ce6b02951b285a38834731b47bd1f8",
            "bytes": 380495,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/frames/07/final/sprite.png": {
            "attachment_id": 4365,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/frames/07/final/sprite.png",
            "sha256": "a2b0a65d441f111664ad14cbb02c933f79aef2c4a5b214233e45751091dd336b",
            "bytes": 388228,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/frames/08/final/sprite.png": {
            "attachment_id": 4368,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/frames/08/final/sprite.png",
            "sha256": "c8145e50b13b08b37c9a0c10e59b45f998ce6b02951b285a38834731b47bd1f8",
            "bytes": 380495,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/frames/09/final/sprite.png": {
            "attachment_id": 4364,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/frames/09/final/sprite.png",
            "sha256": "e597e98e9ceabb5085577ff1615ebf8b0a6d41f155dd1c270e1a896a7c20140e",
            "bytes": 370977,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/frames/10/final/sprite.png": {
            "attachment_id": 4369,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/frames/10/final/sprite.png",
            "sha256": "ddcf24b70b44956b3a5d9a56b950d6152469be120c4cd85c873f9f064b77f4b0",
            "bytes": 365674,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/frames/11/final/sprite.png": {
            "attachment_id": 4370,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/frames/11/final/sprite.png",
            "sha256": "fe9eb1cd1b05a741aa920c2f1db48b30ac14a668db91757036b577fab94532e8",
            "bytes": 364022,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/frames/12/final/sprite.png": {
            "attachment_id": 4362,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/frames/12/final/sprite.png",
            "sha256": "ede2292f77b4af305456cf6f9c9cb063e2d08c94859fb12fe0ed20df7b891586",
            "bytes": 383891,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/preview/animation.gif": {
            "attachment_id": 4338,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/preview/animation.gif",
            "sha256": "de12af6392e85bbadf2eba32e2c63e29a35caf12f8795068c847dc2b789f8bfe",
            "bytes": 1285072,
            "mime": "image/gif"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f01-f02.png": {
            "attachment_id": 4349,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f01-f02.png",
            "sha256": "90cc4252f61a056da81192e5b405756e9090469868a133771b936dc0660c47ef",
            "bytes": 11778,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f02-f03.png": {
            "attachment_id": 4342,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f02-f03.png",
            "sha256": "ca8bc5e1964ed9088bb687194d9324bbeff9c47d9fefff9a01ff7d4cd4b73c4a",
            "bytes": 12667,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f03-f04.png": {
            "attachment_id": 4344,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f03-f04.png",
            "sha256": "6444c2d3b23b308d47d1fcf82ff77b730752423b107b66d51f290facfce15cd8",
            "bytes": 12396,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f04-f05.png": {
            "attachment_id": 4355,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f04-f05.png",
            "sha256": "c9ec9f47c38a8720bee2cd5c406494288ff53cd1c3c6241d8c6478d99bb2ad7a",
            "bytes": 12166,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f05-f06.png": {
            "attachment_id": 4351,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f05-f06.png",
            "sha256": "8c82e4c47a67b182a6ebcdfb224dbbebc914df12e9c456dedee6135b7830dac8",
            "bytes": 12800,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f06-f07.png": {
            "attachment_id": 4356,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f06-f07.png",
            "sha256": "11bd20dbf50f896ac2f1a106d6273e7e7ae32e2997ac8a7d22ca22fa02435076",
            "bytes": 12674,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f07-f08.png": {
            "attachment_id": 4350,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f07-f08.png",
            "sha256": "a41a3c4d37a01ad89060ef589276968fd8563f3c9533d12a4db49c827a24405b",
            "bytes": 12641,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f08-f09.png": {
            "attachment_id": 4360,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f08-f09.png",
            "sha256": "8eab8b8a84fe319b901b5b1b80088ce85065f2f3f0494c42139fe3af69a197fe",
            "bytes": 12797,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f09-f10.png": {
            "attachment_id": 4352,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f09-f10.png",
            "sha256": "675e05f18577025c72e4ba454334f53c4bf6d27f7d222110593e84bb53d370e6",
            "bytes": 12148,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f10-f11.png": {
            "attachment_id": 4357,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f10-f11.png",
            "sha256": "ddb6c7a2c750412647471df5d01797ed8ce8b3323c7245a521dd44f5dee760ef",
            "bytes": 12345,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f11-f12.png": {
            "attachment_id": 4361,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/review/onion-audit/adjacent-f11-f12.png",
            "sha256": "29f4499014e6fa9d97919a45b6eaa975a9b30785daa731106daebd53506bacee",
            "bytes": 12721,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-onion-sheet.png": {
            "attachment_id": 4339,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-onion-sheet.png",
            "sha256": "1f41b0fe23a1b1b39cf384e81897fcff26ecc52537bce1c2bcb6c5fe806c6a4c",
            "bytes": 25055,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f02.png": {
            "attachment_id": 4353,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f02.png",
            "sha256": "90cc4252f61a056da81192e5b405756e9090469868a133771b936dc0660c47ef",
            "bytes": 11778,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f03.png": {
            "attachment_id": 4340,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f03.png",
            "sha256": "c24039c574299c03650863a567bc3d9b5c8e3e09f8cf7d315a5bdc79850fcc7d",
            "bytes": 11771,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f04.png": {
            "attachment_id": 4341,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f04.png",
            "sha256": "955f8be1f61b9838b8f8134264ca72db09f7095e8a4fe522cc11eb184d74e09a",
            "bytes": 11719,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f05.png": {
            "attachment_id": 4345,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f05.png",
            "sha256": "0422378da27b14e2bdcd75d23084e8d8eb771fd73f4723575ce28f194838caf7",
            "bytes": 11579,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f06.png": {
            "attachment_id": 4358,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f06.png",
            "sha256": "0c1c9aa8badcafba2fee1b6c7246bbe61e56df5f9b2b5434c4ee0f393ec68a9f",
            "bytes": 11966,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f07.png": {
            "attachment_id": 4343,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f07.png",
            "sha256": "d12893e7cecdd07873dd91b10c9d40eb23e3ca97a01f45e27dd2c6ac9d31152f",
            "bytes": 11964,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f08.png": {
            "attachment_id": 4359,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f08.png",
            "sha256": "0c1c9aa8badcafba2fee1b6c7246bbe61e56df5f9b2b5434c4ee0f393ec68a9f",
            "bytes": 11966,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f09.png": {
            "attachment_id": 4347,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f09.png",
            "sha256": "0422378da27b14e2bdcd75d23084e8d8eb771fd73f4723575ce28f194838caf7",
            "bytes": 11579,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f10.png": {
            "attachment_id": 4354,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f10.png",
            "sha256": "955f8be1f61b9838b8f8134264ca72db09f7095e8a4fe522cc11eb184d74e09a",
            "bytes": 11719,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f11.png": {
            "attachment_id": 4348,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f11.png",
            "sha256": "c24039c574299c03650863a567bc3d9b5c8e3e09f8cf7d315a5bdc79850fcc7d",
            "bytes": 11771,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f12.png": {
            "attachment_id": 4346,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v6/review/onion-audit/f1-to-f12.png",
            "sha256": "90cc4252f61a056da81192e5b405756e9090469868a133771b936dc0660c47ef",
            "bytes": 11778,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/frames/01/final/sprite.png": {
            "attachment_id": 4294,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/frames/01/final/sprite.png",
            "sha256": "06100125347e2b71487076fee2aa74f620b93d70eac1fc05b2019570f54304ee",
            "bytes": 329919,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/frames/02/final/sprite.png": {
            "attachment_id": 4301,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/frames/02/final/sprite.png",
            "sha256": "ede2292f77b4af305456cf6f9c9cb063e2d08c94859fb12fe0ed20df7b891586",
            "bytes": 383891,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/frames/03/final/sprite.png": {
            "attachment_id": 4300,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/frames/03/final/sprite.png",
            "sha256": "fe9eb1cd1b05a741aa920c2f1db48b30ac14a668db91757036b577fab94532e8",
            "bytes": 364022,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/frames/04/final/sprite.png": {
            "attachment_id": 4291,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/frames/04/final/sprite.png",
            "sha256": "ddcf24b70b44956b3a5d9a56b950d6152469be120c4cd85c873f9f064b77f4b0",
            "bytes": 365674,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/frames/05/final/sprite.png": {
            "attachment_id": 4295,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/frames/05/final/sprite.png",
            "sha256": "e597e98e9ceabb5085577ff1615ebf8b0a6d41f155dd1c270e1a896a7c20140e",
            "bytes": 370977,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/frames/06/final/sprite.png": {
            "attachment_id": 4299,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/frames/06/final/sprite.png",
            "sha256": "269b79533f558e367b63810cd6e6358044f0a5bb5313483723c5b936d7c29fe9",
            "bytes": 379851,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/frames/07/final/sprite.png": {
            "attachment_id": 4293,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/frames/07/final/sprite.png",
            "sha256": "a2b0a65d441f111664ad14cbb02c933f79aef2c4a5b214233e45751091dd336b",
            "bytes": 388228,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/frames/08/final/sprite.png": {
            "attachment_id": 4296,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/frames/08/final/sprite.png",
            "sha256": "269b79533f558e367b63810cd6e6358044f0a5bb5313483723c5b936d7c29fe9",
            "bytes": 379851,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/frames/09/final/sprite.png": {
            "attachment_id": 4292,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/frames/09/final/sprite.png",
            "sha256": "e597e98e9ceabb5085577ff1615ebf8b0a6d41f155dd1c270e1a896a7c20140e",
            "bytes": 370977,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/frames/10/final/sprite.png": {
            "attachment_id": 4297,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/frames/10/final/sprite.png",
            "sha256": "ddcf24b70b44956b3a5d9a56b950d6152469be120c4cd85c873f9f064b77f4b0",
            "bytes": 365674,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/frames/11/final/sprite.png": {
            "attachment_id": 4298,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/frames/11/final/sprite.png",
            "sha256": "fe9eb1cd1b05a741aa920c2f1db48b30ac14a668db91757036b577fab94532e8",
            "bytes": 364022,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/frames/12/final/sprite.png": {
            "attachment_id": 4290,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/frames/12/final/sprite.png",
            "sha256": "ede2292f77b4af305456cf6f9c9cb063e2d08c94859fb12fe0ed20df7b891586",
            "bytes": 383891,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/preview/animation.gif": {
            "attachment_id": 4266,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/preview/animation.gif",
            "sha256": "fbf3f1a9f8bf19a837ea139ecd1b75de913c89bcffa3977156063bf6468906ec",
            "bytes": 1284240,
            "mime": "image/gif"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f01-f02.png": {
            "attachment_id": 4277,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f01-f02.png",
            "sha256": "90cc4252f61a056da81192e5b405756e9090469868a133771b936dc0660c47ef",
            "bytes": 11778,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f02-f03.png": {
            "attachment_id": 4270,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f02-f03.png",
            "sha256": "ca8bc5e1964ed9088bb687194d9324bbeff9c47d9fefff9a01ff7d4cd4b73c4a",
            "bytes": 12667,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f03-f04.png": {
            "attachment_id": 4272,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f03-f04.png",
            "sha256": "6444c2d3b23b308d47d1fcf82ff77b730752423b107b66d51f290facfce15cd8",
            "bytes": 12396,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f04-f05.png": {
            "attachment_id": 4283,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f04-f05.png",
            "sha256": "c9ec9f47c38a8720bee2cd5c406494288ff53cd1c3c6241d8c6478d99bb2ad7a",
            "bytes": 12166,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f05-f06.png": {
            "attachment_id": 4279,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f05-f06.png",
            "sha256": "0d9449ed47a676a7df5ec0e69df1cbfad95036fe3700cc86c00c8140950d8729",
            "bytes": 12615,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f06-f07.png": {
            "attachment_id": 4284,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f06-f07.png",
            "sha256": "461ad1bb83084b764525b84e995546b5a49a229b3af33c626d61a0961da3d463",
            "bytes": 13060,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f07-f08.png": {
            "attachment_id": 4278,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f07-f08.png",
            "sha256": "d564d5c42a5b3b272d5b0fab51ba6dd34bd07bc2d02c9253d04ab3f96853f6cc",
            "bytes": 13075,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f08-f09.png": {
            "attachment_id": 4288,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f08-f09.png",
            "sha256": "f9db8db8da284e31eb933397e138cb28abd07413e619de8950a7c8d45f73eab2",
            "bytes": 12604,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f09-f10.png": {
            "attachment_id": 4280,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f09-f10.png",
            "sha256": "675e05f18577025c72e4ba454334f53c4bf6d27f7d222110593e84bb53d370e6",
            "bytes": 12148,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f10-f11.png": {
            "attachment_id": 4285,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f10-f11.png",
            "sha256": "ddb6c7a2c750412647471df5d01797ed8ce8b3323c7245a521dd44f5dee760ef",
            "bytes": 12345,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f11-f12.png": {
            "attachment_id": 4289,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/review/onion-audit/adjacent-f11-f12.png",
            "sha256": "29f4499014e6fa9d97919a45b6eaa975a9b30785daa731106daebd53506bacee",
            "bytes": 12721,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-onion-sheet.png": {
            "attachment_id": 4267,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-onion-sheet.png",
            "sha256": "37d7cdc776192449a46455ac84059e35c53c12f66fc22a63a79a54c33a77a8d2",
            "bytes": 24956,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f02.png": {
            "attachment_id": 4281,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f02.png",
            "sha256": "90cc4252f61a056da81192e5b405756e9090469868a133771b936dc0660c47ef",
            "bytes": 11778,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f03.png": {
            "attachment_id": 4268,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f03.png",
            "sha256": "c24039c574299c03650863a567bc3d9b5c8e3e09f8cf7d315a5bdc79850fcc7d",
            "bytes": 11771,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f04.png": {
            "attachment_id": 4269,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f04.png",
            "sha256": "955f8be1f61b9838b8f8134264ca72db09f7095e8a4fe522cc11eb184d74e09a",
            "bytes": 11719,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f05.png": {
            "attachment_id": 4273,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f05.png",
            "sha256": "0422378da27b14e2bdcd75d23084e8d8eb771fd73f4723575ce28f194838caf7",
            "bytes": 11579,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f06.png": {
            "attachment_id": 4286,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f06.png",
            "sha256": "30c38bffafa0595dc0c00a86577b4e55bc91f1515fa152f1f1abba5527c59f71",
            "bytes": 12033,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f07.png": {
            "attachment_id": 4271,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f07.png",
            "sha256": "d12893e7cecdd07873dd91b10c9d40eb23e3ca97a01f45e27dd2c6ac9d31152f",
            "bytes": 11964,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f08.png": {
            "attachment_id": 4287,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f08.png",
            "sha256": "30c38bffafa0595dc0c00a86577b4e55bc91f1515fa152f1f1abba5527c59f71",
            "bytes": 12033,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f09.png": {
            "attachment_id": 4275,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f09.png",
            "sha256": "0422378da27b14e2bdcd75d23084e8d8eb771fd73f4723575ce28f194838caf7",
            "bytes": 11579,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f10.png": {
            "attachment_id": 4282,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f10.png",
            "sha256": "955f8be1f61b9838b8f8134264ca72db09f7095e8a4fe522cc11eb184d74e09a",
            "bytes": 11719,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f11.png": {
            "attachment_id": 4276,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f11.png",
            "sha256": "c24039c574299c03650863a567bc3d9b5c8e3e09f8cf7d315a5bdc79850fcc7d",
            "bytes": 11771,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f12.png": {
            "attachment_id": 4274,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v7/review/onion-audit/f1-to-f12.png",
            "sha256": "90cc4252f61a056da81192e5b405756e9090469868a133771b936dc0660c47ef",
            "bytes": 11778,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/frames/01/final/sprite.png": {
            "attachment_id": 4402,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/frames/01/final/sprite.png",
            "sha256": "06100125347e2b71487076fee2aa74f620b93d70eac1fc05b2019570f54304ee",
            "bytes": 329919,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/frames/02/final/sprite.png": {
            "attachment_id": 4409,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/frames/02/final/sprite.png",
            "sha256": "ede2292f77b4af305456cf6f9c9cb063e2d08c94859fb12fe0ed20df7b891586",
            "bytes": 383891,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/frames/03/final/sprite.png": {
            "attachment_id": 4408,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/frames/03/final/sprite.png",
            "sha256": "fe9eb1cd1b05a741aa920c2f1db48b30ac14a668db91757036b577fab94532e8",
            "bytes": 364022,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/frames/04/final/sprite.png": {
            "attachment_id": 4399,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/frames/04/final/sprite.png",
            "sha256": "ddcf24b70b44956b3a5d9a56b950d6152469be120c4cd85c873f9f064b77f4b0",
            "bytes": 365674,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/frames/05/final/sprite.png": {
            "attachment_id": 4403,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/frames/05/final/sprite.png",
            "sha256": "e597e98e9ceabb5085577ff1615ebf8b0a6d41f155dd1c270e1a896a7c20140e",
            "bytes": 370977,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/frames/06/final/sprite.png": {
            "attachment_id": 4407,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/frames/06/final/sprite.png",
            "sha256": "c8145e50b13b08b37c9a0c10e59b45f998ce6b02951b285a38834731b47bd1f8",
            "bytes": 380495,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/frames/07/final/sprite.png": {
            "attachment_id": 4401,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/frames/07/final/sprite.png",
            "sha256": "a2b0a65d441f111664ad14cbb02c933f79aef2c4a5b214233e45751091dd336b",
            "bytes": 388228,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/frames/08/final/sprite.png": {
            "attachment_id": 4404,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/frames/08/final/sprite.png",
            "sha256": "c8145e50b13b08b37c9a0c10e59b45f998ce6b02951b285a38834731b47bd1f8",
            "bytes": 380495,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/frames/09/final/sprite.png": {
            "attachment_id": 4400,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/frames/09/final/sprite.png",
            "sha256": "e597e98e9ceabb5085577ff1615ebf8b0a6d41f155dd1c270e1a896a7c20140e",
            "bytes": 370977,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/frames/10/final/sprite.png": {
            "attachment_id": 4405,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/frames/10/final/sprite.png",
            "sha256": "ddcf24b70b44956b3a5d9a56b950d6152469be120c4cd85c873f9f064b77f4b0",
            "bytes": 365674,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/frames/11/final/sprite.png": {
            "attachment_id": 4406,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/frames/11/final/sprite.png",
            "sha256": "fe9eb1cd1b05a741aa920c2f1db48b30ac14a668db91757036b577fab94532e8",
            "bytes": 364022,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/frames/12/final/sprite.png": {
            "attachment_id": 4398,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/frames/12/final/sprite.png",
            "sha256": "ede2292f77b4af305456cf6f9c9cb063e2d08c94859fb12fe0ed20df7b891586",
            "bytes": 383891,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/preview/animation.gif": {
            "attachment_id": 4374,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/preview/animation.gif",
            "sha256": "de12af6392e85bbadf2eba32e2c63e29a35caf12f8795068c847dc2b789f8bfe",
            "bytes": 1285072,
            "mime": "image/gif"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f01-f02.png": {
            "attachment_id": 4385,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f01-f02.png",
            "sha256": "90cc4252f61a056da81192e5b405756e9090469868a133771b936dc0660c47ef",
            "bytes": 11778,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f02-f03.png": {
            "attachment_id": 4378,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f02-f03.png",
            "sha256": "ca8bc5e1964ed9088bb687194d9324bbeff9c47d9fefff9a01ff7d4cd4b73c4a",
            "bytes": 12667,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f03-f04.png": {
            "attachment_id": 4380,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f03-f04.png",
            "sha256": "6444c2d3b23b308d47d1fcf82ff77b730752423b107b66d51f290facfce15cd8",
            "bytes": 12396,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f04-f05.png": {
            "attachment_id": 4391,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f04-f05.png",
            "sha256": "c9ec9f47c38a8720bee2cd5c406494288ff53cd1c3c6241d8c6478d99bb2ad7a",
            "bytes": 12166,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f05-f06.png": {
            "attachment_id": 4387,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f05-f06.png",
            "sha256": "8c82e4c47a67b182a6ebcdfb224dbbebc914df12e9c456dedee6135b7830dac8",
            "bytes": 12800,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f06-f07.png": {
            "attachment_id": 4392,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f06-f07.png",
            "sha256": "11bd20dbf50f896ac2f1a106d6273e7e7ae32e2997ac8a7d22ca22fa02435076",
            "bytes": 12674,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f07-f08.png": {
            "attachment_id": 4386,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f07-f08.png",
            "sha256": "a41a3c4d37a01ad89060ef589276968fd8563f3c9533d12a4db49c827a24405b",
            "bytes": 12641,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f08-f09.png": {
            "attachment_id": 4396,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f08-f09.png",
            "sha256": "8eab8b8a84fe319b901b5b1b80088ce85065f2f3f0494c42139fe3af69a197fe",
            "bytes": 12797,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f09-f10.png": {
            "attachment_id": 4388,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f09-f10.png",
            "sha256": "675e05f18577025c72e4ba454334f53c4bf6d27f7d222110593e84bb53d370e6",
            "bytes": 12148,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f10-f11.png": {
            "attachment_id": 4393,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f10-f11.png",
            "sha256": "ddb6c7a2c750412647471df5d01797ed8ce8b3323c7245a521dd44f5dee760ef",
            "bytes": 12345,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f11-f12.png": {
            "attachment_id": 4397,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/review/onion-audit/adjacent-f11-f12.png",
            "sha256": "29f4499014e6fa9d97919a45b6eaa975a9b30785daa731106daebd53506bacee",
            "bytes": 12721,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-onion-sheet.png": {
            "attachment_id": 4375,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-onion-sheet.png",
            "sha256": "1f41b0fe23a1b1b39cf384e81897fcff26ecc52537bce1c2bcb6c5fe806c6a4c",
            "bytes": 25055,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f02.png": {
            "attachment_id": 4389,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f02.png",
            "sha256": "90cc4252f61a056da81192e5b405756e9090469868a133771b936dc0660c47ef",
            "bytes": 11778,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f03.png": {
            "attachment_id": 4376,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f03.png",
            "sha256": "c24039c574299c03650863a567bc3d9b5c8e3e09f8cf7d315a5bdc79850fcc7d",
            "bytes": 11771,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f04.png": {
            "attachment_id": 4377,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f04.png",
            "sha256": "955f8be1f61b9838b8f8134264ca72db09f7095e8a4fe522cc11eb184d74e09a",
            "bytes": 11719,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f05.png": {
            "attachment_id": 4381,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f05.png",
            "sha256": "0422378da27b14e2bdcd75d23084e8d8eb771fd73f4723575ce28f194838caf7",
            "bytes": 11579,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f06.png": {
            "attachment_id": 4394,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f06.png",
            "sha256": "0c1c9aa8badcafba2fee1b6c7246bbe61e56df5f9b2b5434c4ee0f393ec68a9f",
            "bytes": 11966,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f07.png": {
            "attachment_id": 4379,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f07.png",
            "sha256": "d12893e7cecdd07873dd91b10c9d40eb23e3ca97a01f45e27dd2c6ac9d31152f",
            "bytes": 11964,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f08.png": {
            "attachment_id": 4395,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f08.png",
            "sha256": "0c1c9aa8badcafba2fee1b6c7246bbe61e56df5f9b2b5434c4ee0f393ec68a9f",
            "bytes": 11966,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f09.png": {
            "attachment_id": 4383,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f09.png",
            "sha256": "0422378da27b14e2bdcd75d23084e8d8eb771fd73f4723575ce28f194838caf7",
            "bytes": 11579,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f10.png": {
            "attachment_id": 4390,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f10.png",
            "sha256": "955f8be1f61b9838b8f8134264ca72db09f7095e8a4fe522cc11eb184d74e09a",
            "bytes": 11719,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f11.png": {
            "attachment_id": 4384,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f11.png",
            "sha256": "c24039c574299c03650863a567bc3d9b5c8e3e09f8cf7d315a5bdc79850fcc7d",
            "bytes": 11771,
            "mime": "image/png"
        },
        "derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f12.png": {
            "attachment_id": 4382,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/dense-body-f1-root-lock-v8/review/onion-audit/f1-to-f12.png",
            "sha256": "90cc4252f61a056da81192e5b405756e9090469868a133771b936dc0660c47ef",
            "bytes": 11778,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/frames/01/final/sprite.png": {
            "attachment_id": 4474,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/frames/01/final/sprite.png",
            "sha256": "8e99710bcf88c65e474fd0081d5ada5ae03d6bd5fe772ad330886b1ff2425dbf",
            "bytes": 304350,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/frames/02/final/sprite.png": {
            "attachment_id": 4481,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/frames/02/final/sprite.png",
            "sha256": "b1ba3031fae43cdef40b32e6968fd16722a4cdfec103efad5e5abd8d9c77acef",
            "bytes": 380521,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/frames/03/final/sprite.png": {
            "attachment_id": 4480,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/frames/03/final/sprite.png",
            "sha256": "034c8d87b5248a659f737ad2505b8a35d54235dd47e5b422a5efed96f980695c",
            "bytes": 359822,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/frames/04/final/sprite.png": {
            "attachment_id": 4471,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/frames/04/final/sprite.png",
            "sha256": "3db10f98b48025d212868324a46d5c66efc1bbf1ffd5152a5b9c0fd1c9baa47d",
            "bytes": 362371,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/frames/05/final/sprite.png": {
            "attachment_id": 4475,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/frames/05/final/sprite.png",
            "sha256": "e5dd36e894ed20254ff8e9a070e45ace544957a2e409612adab6f95ec3416b66",
            "bytes": 367865,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/frames/06/final/sprite.png": {
            "attachment_id": 4479,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/frames/06/final/sprite.png",
            "sha256": "dd92222a2c43c1dbfc77d979d1cc8836c07324a5766ebb2a6d9342b92f3fa042",
            "bytes": 377843,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/frames/07/final/sprite.png": {
            "attachment_id": 4473,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/frames/07/final/sprite.png",
            "sha256": "0a34659797069dc40fa64890e53313d2e3047361f9ebdae6f4308a382c9e27fc",
            "bytes": 385027,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/frames/08/final/sprite.png": {
            "attachment_id": 4476,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/frames/08/final/sprite.png",
            "sha256": "dd92222a2c43c1dbfc77d979d1cc8836c07324a5766ebb2a6d9342b92f3fa042",
            "bytes": 377843,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/frames/09/final/sprite.png": {
            "attachment_id": 4472,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/frames/09/final/sprite.png",
            "sha256": "e5dd36e894ed20254ff8e9a070e45ace544957a2e409612adab6f95ec3416b66",
            "bytes": 367865,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/frames/10/final/sprite.png": {
            "attachment_id": 4477,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/frames/10/final/sprite.png",
            "sha256": "3db10f98b48025d212868324a46d5c66efc1bbf1ffd5152a5b9c0fd1c9baa47d",
            "bytes": 362371,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/frames/11/final/sprite.png": {
            "attachment_id": 4478,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/frames/11/final/sprite.png",
            "sha256": "034c8d87b5248a659f737ad2505b8a35d54235dd47e5b422a5efed96f980695c",
            "bytes": 359822,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/frames/12/final/sprite.png": {
            "attachment_id": 4470,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/frames/12/final/sprite.png",
            "sha256": "b1ba3031fae43cdef40b32e6968fd16722a4cdfec103efad5e5abd8d9c77acef",
            "bytes": 380521,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/preview/animation.gif": {
            "attachment_id": 4446,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/preview/animation.gif",
            "sha256": "f8563da27ce8539248ded762e4bcd8c080d103daaf6183e054ab99d8f262d1cb",
            "bytes": 1379977,
            "mime": "image/gif"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f01-f02.png": {
            "attachment_id": 4457,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f01-f02.png",
            "sha256": "fc33f146bd4da713fc3cc722efbe2c4be002953ac3a26509f5cd9c4d2b6b0d47",
            "bytes": 11665,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f02-f03.png": {
            "attachment_id": 4450,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f02-f03.png",
            "sha256": "c3ab072d37723e6fdbfff2bff6d53c1308947974a9307ec4e31e0f5b78b96291",
            "bytes": 12815,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f03-f04.png": {
            "attachment_id": 4452,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f03-f04.png",
            "sha256": "bbcfd6127a833ddeb12ce243f3f0ca4eadf9e624a8df7e339f2d729e170140b4",
            "bytes": 12458,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f04-f05.png": {
            "attachment_id": 4463,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f04-f05.png",
            "sha256": "04c39429ec3101b139b6a26a1fd32bf7d6122082da3e83245e0610ab42f0719e",
            "bytes": 12254,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f05-f06.png": {
            "attachment_id": 4459,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f05-f06.png",
            "sha256": "7ee05b6ec9939e47f60fdfbcb101a3b3785cbaf7d1119136f500407d4638c80d",
            "bytes": 12775,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f06-f07.png": {
            "attachment_id": 4464,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f06-f07.png",
            "sha256": "f5db6478828aa072c7fbfc82d93910ed3652c6e2bf6036ae2a9d18f96e7469b4",
            "bytes": 12204,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f07-f08.png": {
            "attachment_id": 4458,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f07-f08.png",
            "sha256": "e95522c34bb4001e2b37659f294c595491e66b37a29dca49876e95e01ece9b99",
            "bytes": 12172,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f08-f09.png": {
            "attachment_id": 4468,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f08-f09.png",
            "sha256": "d2703d0e4d502a32247c3f2bb21688ba25203502f10958008249c56e0d0fc0d1",
            "bytes": 12715,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f09-f10.png": {
            "attachment_id": 4460,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f09-f10.png",
            "sha256": "1c7b2bc5519a02f620e00b60e739486bb1e62a5830317d90aa2e106d2ce96fd3",
            "bytes": 12237,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f10-f11.png": {
            "attachment_id": 4465,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f10-f11.png",
            "sha256": "53121cfde2404ad422046cfe349f92c0fd36145ef6a5d2ddb2c73725d93db695",
            "bytes": 12475,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f11-f12.png": {
            "attachment_id": 4469,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/adjacent-f11-f12.png",
            "sha256": "896e91ad4777599b8079868683b6894c317a5f70ff5a08e361fe0e8c2ff10b19",
            "bytes": 12805,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-onion-sheet.png": {
            "attachment_id": 4447,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-onion-sheet.png",
            "sha256": "6147c1f71158a2b03b60a9e08a416b1b83bd374261bba0b43e7aa862730d9f5e",
            "bytes": 24383,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f02.png": {
            "attachment_id": 4461,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f02.png",
            "sha256": "fc33f146bd4da713fc3cc722efbe2c4be002953ac3a26509f5cd9c4d2b6b0d47",
            "bytes": 11665,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f03.png": {
            "attachment_id": 4448,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f03.png",
            "sha256": "91366189364e4ccddc2c86f7e704ca2f4181ca8c2474316f3ad80a81d200b392",
            "bytes": 11334,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f04.png": {
            "attachment_id": 4449,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f04.png",
            "sha256": "1ea334a0dac5e51e8b32363cb7903eca247e9c708c92e98c8876c00d3eaf1a94",
            "bytes": 11244,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f05.png": {
            "attachment_id": 4453,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f05.png",
            "sha256": "c3edfea9d73eedb747b33f620f15cf24d8234c5583be28614d30a15f60108321",
            "bytes": 11268,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f06.png": {
            "attachment_id": 4466,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f06.png",
            "sha256": "74734c50aecfdf403f211441984ae4f701768166a3d576979ab623cdb5bd2305",
            "bytes": 11747,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f07.png": {
            "attachment_id": 4451,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f07.png",
            "sha256": "c62aa9aec39649d3435608b4d6dca8db2410763cbc990fadc62560bb0a4a2a2d",
            "bytes": 11675,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f08.png": {
            "attachment_id": 4467,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f08.png",
            "sha256": "74734c50aecfdf403f211441984ae4f701768166a3d576979ab623cdb5bd2305",
            "bytes": 11747,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f09.png": {
            "attachment_id": 4455,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f09.png",
            "sha256": "c3edfea9d73eedb747b33f620f15cf24d8234c5583be28614d30a15f60108321",
            "bytes": 11268,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f10.png": {
            "attachment_id": 4462,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f10.png",
            "sha256": "1ea334a0dac5e51e8b32363cb7903eca247e9c708c92e98c8876c00d3eaf1a94",
            "bytes": 11244,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f11.png": {
            "attachment_id": 4456,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f11.png",
            "sha256": "91366189364e4ccddc2c86f7e704ca2f4181ca8c2474316f3ad80a81d200b392",
            "bytes": 11334,
            "mime": "image/png"
        },
        "derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f12.png": {
            "attachment_id": 4454,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/derived/sequence-envelope-foot-root-lock-v3/review/onion-audit/f1-to-f12.png",
            "sha256": "fc33f146bd4da713fc3cc722efbe2c4be002953ac3a26509f5cd9c4d2b6b0d47",
            "bytes": 11665,
            "mime": "image/png"
        },
        "final/sprite.png": {
            "attachment_id": 4035,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/final/sprite.png",
            "sha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
            "bytes": 960372,
            "mime": "image/png"
        },
        "frames/01/final/sprite.png": {
            "attachment_id": 4036,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/final/sprite.png",
            "sha256": "8c6af6ab8737d822f7660db72bd3f6d0f04931f4ed2ed9b3ae7c52c90ce40647",
            "bytes": 960372,
            "mime": "image/png"
        },
        "frames/01/raw/source.png": {
            "attachment_id": 4034,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/01/raw/source.png",
            "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
            "bytes": 974508,
            "mime": "image/png"
        },
        "frames/02/final/sprite.png": {
            "attachment_id": 4039,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/final/sprite.png",
            "sha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
            "bytes": 1010748,
            "mime": "image/png"
        },
        "frames/02/raw/source.png": {
            "attachment_id": 4038,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/02/raw/source.png",
            "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
            "bytes": 1006997,
            "mime": "image/png"
        },
        "frames/03/final/sprite.png": {
            "attachment_id": 4041,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/final/sprite.png",
            "sha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
            "bytes": 1105274,
            "mime": "image/png"
        },
        "frames/03/raw/source.png": {
            "attachment_id": 4040,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/03/raw/source.png",
            "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
            "bytes": 1119022,
            "mime": "image/png"
        },
        "frames/04/final/sprite.png": {
            "attachment_id": 4043,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/final/sprite.png",
            "sha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
            "bytes": 1018185,
            "mime": "image/png"
        },
        "frames/04/raw/source.png": {
            "attachment_id": 4042,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/04/raw/source.png",
            "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
            "bytes": 1022618,
            "mime": "image/png"
        },
        "frames/05/final/sprite.png": {
            "attachment_id": 4045,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/final/sprite.png",
            "sha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
            "bytes": 1012012,
            "mime": "image/png"
        },
        "frames/05/raw/source.png": {
            "attachment_id": 4044,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/05/raw/source.png",
            "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
            "bytes": 1021745,
            "mime": "image/png"
        },
        "frames/06/final/sprite.png": {
            "attachment_id": 4047,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/final/sprite.png",
            "sha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
            "bytes": 1013371,
            "mime": "image/png"
        },
        "frames/06/raw/source.png": {
            "attachment_id": 4046,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/06/raw/source.png",
            "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
            "bytes": 1018269,
            "mime": "image/png"
        },
        "frames/07/final/sprite.png": {
            "attachment_id": 4049,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/final/sprite.png",
            "sha256": "5b080e721d5b6a7c07b38db971d645721ea129f8a849498b40cc2fd69d9cf012",
            "bytes": 1024270,
            "mime": "image/png"
        },
        "frames/07/raw/source.png": {
            "attachment_id": 4048,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/07/raw/source.png",
            "sha256": "e3877ea4a5a361427f07598bd4b4441da557e1fb765e2ab1a769e2cb74e08508",
            "bytes": 1028027,
            "mime": "image/png"
        },
        "frames/08/final/sprite.png": {
            "attachment_id": 4050,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/final/sprite.png",
            "sha256": "c2b2429699a8e9d44282e221be616442768c8bbe8374465f26a4574bb08f195b",
            "bytes": 1013371,
            "mime": "image/png"
        },
        "frames/08/raw/source.png": {
            "attachment_id": 4051,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/08/raw/source.png",
            "sha256": "e949f7ef2e14c0545ab7b524c29b58fc4cd362a7ca9fb36fe86e20ce79d36ec3",
            "bytes": 1018269,
            "mime": "image/png"
        },
        "frames/09/final/sprite.png": {
            "attachment_id": 4052,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/final/sprite.png",
            "sha256": "a5154c04e65e9f05cc91f161a983a33a23fd6e00620b4f2cf1b87bf6eb990fe4",
            "bytes": 1012012,
            "mime": "image/png"
        },
        "frames/09/raw/source.png": {
            "attachment_id": 4053,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/09/raw/source.png",
            "sha256": "308568af4bca0674ccad91867b6e1571f71297e5b19336c3f06f34d98906c644",
            "bytes": 1021745,
            "mime": "image/png"
        },
        "frames/10/final/sprite.png": {
            "attachment_id": 4054,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/final/sprite.png",
            "sha256": "17360491131c624c65241c3529ece08bc28bfd5a88a9463a8544714bb11eed7e",
            "bytes": 1018185,
            "mime": "image/png"
        },
        "frames/10/raw/source.png": {
            "attachment_id": 4055,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/10/raw/source.png",
            "sha256": "cee5151d6b5f3ef9201f22e577ced6e31a3abb571c4ed676aba58eb06ee98e81",
            "bytes": 1022618,
            "mime": "image/png"
        },
        "frames/11/final/sprite.png": {
            "attachment_id": 4056,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/final/sprite.png",
            "sha256": "1d4e6cf1508d7755cd4b97b0090a0cc5373260735309a7dc854541736b542bc5",
            "bytes": 1105274,
            "mime": "image/png"
        },
        "frames/11/raw/source.png": {
            "attachment_id": 4057,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/11/raw/source.png",
            "sha256": "e047580d1afd86b1eb29a95899c1827d5e03da08fe0c7018593d698ce713c100",
            "bytes": 1119022,
            "mime": "image/png"
        },
        "frames/12/final/sprite.png": {
            "attachment_id": 4058,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/final/sprite.png",
            "sha256": "6e8c29bf500302e4575d4075a42ab3b80700f7a8c0b37059a79110daf94d25c7",
            "bytes": 1010748,
            "mime": "image/png"
        },
        "frames/12/raw/source.png": {
            "attachment_id": 4059,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/frames/12/raw/source.png",
            "sha256": "076f055996669d0729a8846bc0a06fb35036b6ebbcfe73a98d5e9a512d263453",
            "bytes": 1006997,
            "mime": "image/png"
        },
        "preview/animation.gif": {
            "attachment_id": 4060,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/preview/animation.gif",
            "sha256": "19e58d4a26d5684d2e821ed3937ca2f5c0257acc07ae39092426c13c96c60ddd",
            "bytes": 1202936,
            "mime": "image/gif"
        },
        "raw/source.png": {
            "attachment_id": 4037,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/raw/source.png",
            "sha256": "bb3cc63a4ba3b26fd6a280a18ebebc5cbb98ebf53ab9c290d956d93d34682c2b",
            "bytes": 974508,
            "mime": "image/png"
        },
        "review/onion-audit/adjacent-f01-f02.png": {
            "attachment_id": 4082,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/review/onion-audit/adjacent-f01-f02.png",
            "sha256": "dd1ffe293cc2fc571545de62ec984695a97651122da509770cd2330757c8bc7b",
            "bytes": 11716,
            "mime": "image/png"
        },
        "review/onion-audit/adjacent-f02-f03.png": {
            "attachment_id": 4075,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/review/onion-audit/adjacent-f02-f03.png",
            "sha256": "77c73cc689247793b22b11877d24194ce1de78bc11ae139694a435831cd7a473",
            "bytes": 12361,
            "mime": "image/png"
        },
        "review/onion-audit/adjacent-f03-f04.png": {
            "attachment_id": 4077,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/review/onion-audit/adjacent-f03-f04.png",
            "sha256": "9191fefd13329c5a21a5ce10b73679d3dc0e1262c315395bdcfb42ffef6f5109",
            "bytes": 12514,
            "mime": "image/png"
        },
        "review/onion-audit/adjacent-f04-f05.png": {
            "attachment_id": 4088,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/review/onion-audit/adjacent-f04-f05.png",
            "sha256": "52130662ac41915ccd37a0f9764e9a3c2326b0d42f13e8e59c66fbda2413eafa",
            "bytes": 11749,
            "mime": "image/png"
        },
        "review/onion-audit/adjacent-f05-f06.png": {
            "attachment_id": 4084,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/review/onion-audit/adjacent-f05-f06.png",
            "sha256": "d68854e6f827026635e0036ceac82ef66ec371ff5b889f253b1b53db602f6467",
            "bytes": 11987,
            "mime": "image/png"
        },
        "review/onion-audit/adjacent-f06-f07.png": {
            "attachment_id": 4089,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/review/onion-audit/adjacent-f06-f07.png",
            "sha256": "b6cf39b584b2c82c9b4bc1a0d8a3123067ec295613157817f1c10db3f3f41695",
            "bytes": 11981,
            "mime": "image/png"
        },
        "review/onion-audit/adjacent-f07-f08.png": {
            "attachment_id": 4083,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/review/onion-audit/adjacent-f07-f08.png",
            "sha256": "fdc5a1d25764a880633b6a9ca8675070edc3fa7ddf57b096df609b907a252db4",
            "bytes": 11957,
            "mime": "image/png"
        },
        "review/onion-audit/adjacent-f08-f09.png": {
            "attachment_id": 4093,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/review/onion-audit/adjacent-f08-f09.png",
            "sha256": "82f6c8056c08fc24baa01e10d4cfcfb9211893762cbca2b09303dd0139e8360a",
            "bytes": 11965,
            "mime": "image/png"
        },
        "review/onion-audit/adjacent-f09-f10.png": {
            "attachment_id": 4085,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/review/onion-audit/adjacent-f09-f10.png",
            "sha256": "0ca75f64e38c9c4d5c6e2f41898ccb69870965a556b525e764737505d77344bb",
            "bytes": 11722,
            "mime": "image/png"
        },
        "review/onion-audit/adjacent-f10-f11.png": {
            "attachment_id": 4090,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/review/onion-audit/adjacent-f10-f11.png",
            "sha256": "69288411474d40b8b37a3244509f8b241cb53b48e80c10f7ba47c068ca59b834",
            "bytes": 12495,
            "mime": "image/png"
        },
        "review/onion-audit/adjacent-f11-f12.png": {
            "attachment_id": 4094,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/review/onion-audit/adjacent-f11-f12.png",
            "sha256": "71664b3575518461296560cddfbaf198d8c9b155758fc5c422044d4221319d44",
            "bytes": 12339,
            "mime": "image/png"
        },
        "review/onion-audit/f1-onion-sheet.png": {
            "attachment_id": 4072,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/review/onion-audit/f1-onion-sheet.png",
            "sha256": "66c42196b41b1a4b2a9d8f7536c6a004fb754cec0c6626beb65f26c79df95e1c",
            "bytes": 24317,
            "mime": "image/png"
        },
        "review/onion-audit/f1-to-f02.png": {
            "attachment_id": 4086,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/review/onion-audit/f1-to-f02.png",
            "sha256": "dd1ffe293cc2fc571545de62ec984695a97651122da509770cd2330757c8bc7b",
            "bytes": 11716,
            "mime": "image/png"
        },
        "review/onion-audit/f1-to-f03.png": {
            "attachment_id": 4073,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/review/onion-audit/f1-to-f03.png",
            "sha256": "1b7b8989893cda7f17bd11de78a11698710383ace772e4e9b1d3215d8becc9f2",
            "bytes": 11377,
            "mime": "image/png"
        },
        "review/onion-audit/f1-to-f04.png": {
            "attachment_id": 4074,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/review/onion-audit/f1-to-f04.png",
            "sha256": "ef69e7fac02fbf0f6f02cff9701434398e1524d20dd1cb5e617db9477a75d5b0",
            "bytes": 11413,
            "mime": "image/png"
        },
        "review/onion-audit/f1-to-f05.png": {
            "attachment_id": 4078,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/review/onion-audit/f1-to-f05.png",
            "sha256": "1b4399db6b2920d5818568ca9be8a12ea35c751b5cdf6245d11823eae55e518d",
            "bytes": 11358,
            "mime": "image/png"
        },
        "review/onion-audit/f1-to-f06.png": {
            "attachment_id": 4091,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/review/onion-audit/f1-to-f06.png",
            "sha256": "8909a95fe212a4c49315add53fbc3fb4273e34f49a0544e50b10dbe41565d7ff",
            "bytes": 11745,
            "mime": "image/png"
        },
        "review/onion-audit/f1-to-f07.png": {
            "attachment_id": 4076,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/review/onion-audit/f1-to-f07.png",
            "sha256": "fef233fa56c2982b6b77603691e3c37c545fa8deb6ff433c4231846b81c61e9d",
            "bytes": 11678,
            "mime": "image/png"
        },
        "review/onion-audit/f1-to-f08.png": {
            "attachment_id": 4092,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/review/onion-audit/f1-to-f08.png",
            "sha256": "8909a95fe212a4c49315add53fbc3fb4273e34f49a0544e50b10dbe41565d7ff",
            "bytes": 11745,
            "mime": "image/png"
        },
        "review/onion-audit/f1-to-f09.png": {
            "attachment_id": 4080,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/review/onion-audit/f1-to-f09.png",
            "sha256": "1b4399db6b2920d5818568ca9be8a12ea35c751b5cdf6245d11823eae55e518d",
            "bytes": 11358,
            "mime": "image/png"
        },
        "review/onion-audit/f1-to-f10.png": {
            "attachment_id": 4087,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/review/onion-audit/f1-to-f10.png",
            "sha256": "ef69e7fac02fbf0f6f02cff9701434398e1524d20dd1cb5e617db9477a75d5b0",
            "bytes": 11413,
            "mime": "image/png"
        },
        "review/onion-audit/f1-to-f11.png": {
            "attachment_id": 4081,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/review/onion-audit/f1-to-f11.png",
            "sha256": "1b7b8989893cda7f17bd11de78a11698710383ace772e4e9b1d3215d8becc9f2",
            "bytes": 11377,
            "mime": "image/png"
        },
        "review/onion-audit/f1-to-f12.png": {
            "attachment_id": 4079,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224826638621Z-aerwyn-academy-wind-duelist-26866d/review/onion-audit/f1-to-f12.png",
            "sha256": "dd1ffe293cc2fc571545de62ec984695a97651122da509770cd2330757c8bc7b",
            "bytes": 11716,
            "mime": "image/png"
        }
    },
    "importedAt": "2026-07-24T23:19:58+00:00",
    "archiveVisibility": "publish"
}

Selene Starward Mage · idle animation

Classes & Combat · 2026-07-24T22:42:40.398079Z · ID ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14

raw/source.png
Selene Starward Mage · idle animation
final/sprite.png
Selene Starward Mage · idle animation
frames/02/final/sprite.png
Selene Starward Mage · idle animation
frames/03/final/sprite.png
Selene Starward Mage · idle animation
frames/04/final/sprite.png
Selene Starward Mage · idle animation
frames/05/final/sprite.png
Selene Starward Mage · idle animation
frames/06/final/sprite.png
Selene Starward Mage · idle animation
preview/animation.gif
Selene Starward Mage · idle animation
CSS frame player · 6 frames
Additional output · frames/01/final/sprite.png
Selene Starward Mage · idle animation · frames/01/final/sprite.png
Additional output · frames/01/raw/source.png
Selene Starward Mage · idle animation · frames/01/raw/source.png
Additional output · frames/02/raw/source.png
Selene Starward Mage · idle animation · frames/02/raw/source.png
Additional output · frames/03/raw/source.png
Selene Starward Mage · idle animation · frames/03/raw/source.png
Additional output · frames/04/raw/source.png
Selene Starward Mage · idle animation · frames/04/raw/source.png
Additional output · frames/05/raw/source.png
Selene Starward Mage · idle animation · frames/05/raw/source.png
Additional output · frames/06/raw/source.png
Selene Starward Mage · idle animation · frames/06/raw/source.png
Additional output · review/onion-audit/adjacent-f01-f02.png
Selene Starward Mage · idle animation · review/onion-audit/adjacent-f01-f02.png
Additional output · review/onion-audit/adjacent-f02-f03.png
Selene Starward Mage · idle animation · review/onion-audit/adjacent-f02-f03.png
Additional output · review/onion-audit/adjacent-f03-f04.png
Selene Starward Mage · idle animation · review/onion-audit/adjacent-f03-f04.png
Additional output · review/onion-audit/adjacent-f04-f05.png
Selene Starward Mage · idle animation · review/onion-audit/adjacent-f04-f05.png
Additional output · review/onion-audit/adjacent-f05-f06.png
Selene Starward Mage · idle animation · review/onion-audit/adjacent-f05-f06.png
Additional output · review/onion-audit/f1-onion-sheet.png
Selene Starward Mage · idle animation · review/onion-audit/f1-onion-sheet.png
Additional output · review/onion-audit/f1-to-f02.png
Selene Starward Mage · idle animation · review/onion-audit/f1-to-f02.png
Additional output · review/onion-audit/f1-to-f03.png
Selene Starward Mage · idle animation · review/onion-audit/f1-to-f03.png
Additional output · review/onion-audit/f1-to-f04.png
Selene Starward Mage · idle animation · review/onion-audit/f1-to-f04.png
Additional output · review/onion-audit/f1-to-f05.png
Selene Starward Mage · idle animation · review/onion-audit/f1-to-f05.png
Additional output · review/onion-audit/f1-to-f06.png
Selene Starward Mage · idle animation · review/onion-audit/f1-to-f06.png
Full metadata
{
    "schemaVersion": "midgard-pixels.wordpress-generation.v1",
    "generationId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
    "runId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
    "title": "Selene Starward Mage · idle animation",
    "createdAt": "2026-07-24T22:42:40.398079Z",
    "request": "Create a white adult human woman academy mage in a deep violet robe with silver trim, holding a slim star-tipped wand upright in her wand hand.",
    "category": "Classes & Combat",
    "categorySlug": "classes-combat",
    "class": "Selene Starward Mage",
    "gender": "woman",
    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
    "promptSha256": "0903e6028d271e8caea9e650d480451ff3d25b6e126e84becec84371f463b960",
    "providerModel": "gpt-image-2-2026-04-21",
    "status": "animated-command-review-required",
    "sourcePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
    "manifest": {
        "animation": {
            "action": "idle",
            "anchorGuide": null,
            "anchorGuidePolicy": "none",
            "durationMs": 120,
            "f1ProviderModel": "gpt-image-2-2026-04-21",
            "frameCount": 6,
            "frames": [
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-prompt-txt",
                        "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/final/sprite.png",
                    "finalSha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16",
                    "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01",
                    "identityBaselineY": 906,
                    "index": 1,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "settled identity pose; motion has not started",
                    "phaseProgressPercent": 0,
                    "playbackSourceFrameIndex": 1,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/prompt.txt",
                    "promptSha256": "0903e6028d271e8caea9e650d480451ff3d25b6e126e84becec84371f463b960",
                    "providerCall": true,
                    "providerFrameIndex": 1,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                    "rawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                        }
                    ],
                    "sourceFrameIndex": 1,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-prompt-txt",
                        "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/final/sprite.png",
                    "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                    "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                    "identityBaselineY": 906,
                    "index": 2,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 1,
                    "parentRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                    "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 22,
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/prompt.txt",
                    "promptSha256": "738b6c2e3a0a9d3342152921dc26b662a1b35c56303ea0217f2fcbdf48f080df",
                    "providerCall": true,
                    "providerFrameIndex": 2,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                    "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                    "referenceSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                            "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                        }
                    ],
                    "sourceFrameIndex": 2,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-prompt-txt",
                        "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/final/sprite.png",
                    "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                    "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                    "identityBaselineY": 906,
                    "index": 3,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 2,
                    "parentRawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 44,
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/prompt.txt",
                    "promptSha256": "f661202944e8bdb93727cee7261ca4d9d025625737b33ddb7b80c457e1947fb8",
                    "providerCall": true,
                    "providerFrameIndex": 3,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                    "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                    "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                            "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                            "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                        }
                    ],
                    "sourceFrameIndex": 3,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-prompt-txt",
                        "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/final/sprite.png",
                    "finalSha256": "c157a47a2a8afbd048401b087161a9f08705fb3814c94f2d7700800d8cd2863e",
                    "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04",
                    "identityBaselineY": 906,
                    "index": 4,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 3,
                    "parentRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                    "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 100,
                    "playbackSourceFrameIndex": 4,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/prompt.txt",
                    "promptSha256": "7197145f4bdca9b9fd36166957fd46079b9f00953d7d5675620f3e35f30bbfc5",
                    "providerCall": true,
                    "providerFrameIndex": 4,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/raw/source.png",
                    "rawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                    "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                            "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                            "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                        }
                    ],
                    "sourceFrameIndex": 4,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-prompt-txt",
                        "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-receipt-json"
                    },
                    "byteIdentityVerified": true,
                    "durationMs": 120,
                    "exactByteReuse": true,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/final/sprite.png",
                    "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                    "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05",
                    "identityBaselineY": 906,
                    "index": 5,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 44,
                    "playbackPreviousFrameIndex": 4,
                    "playbackPreviousRawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/prompt.txt",
                    "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                    "providerCall": false,
                    "providerFrameIndex": 3,
                    "providerGenerated": false,
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/raw/source.png",
                    "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                    "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                    "references": [
                        {
                            "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                            "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                        }
                    ],
                    "sourceFinalArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                    "sourceFrameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                    "sourceFrameIndex": 3,
                    "sourceProvided": false,
                    "sourceRawArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png"
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-prompt-txt",
                        "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-receipt-json"
                    },
                    "byteIdentityVerified": true,
                    "durationMs": 120,
                    "exactByteReuse": true,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/final/sprite.png",
                    "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                    "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06",
                    "identityBaselineY": 906,
                    "index": 6,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 22,
                    "playbackPreviousFrameIndex": 5,
                    "playbackPreviousRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/prompt.txt",
                    "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                    "providerCall": false,
                    "providerFrameIndex": 2,
                    "providerGenerated": false,
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/raw/source.png",
                    "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                    "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                    "references": [
                        {
                            "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                            "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                        }
                    ],
                    "sourceFinalArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                    "sourceFrameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                    "sourceFrameIndex": 2,
                    "sourceProvided": false,
                    "sourceRawArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png"
                }
            ],
            "generationId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
            "ideaIdleBehaviorDeferred": null,
            "identityBaselineY": 906,
            "identityPolicy": "immutable-f1-raw-master",
            "idleBehavior": "Only the wand, wand hand, forearm, and upper arm move. Start with the wand raised vertically, lower it through small adjacent phases, and finish pointing screen-left at an unseen target. Freeze every other body, clothing, hair, face, accessory, foot, background, and camera pixel.",
            "idleBehaviorSource": "explicit-command",
            "lockedParts": [
                "recognizable face and identity",
                "costume and equipment design",
                "fine motifs, trim, fasteners, gems, and prop markings",
                "palette family and pixel rendering language",
                "body proportions and overall scale band",
                "screen-left three-quarter facing",
                "1024x1024 canvas and flat #ff00ff background"
            ],
            "loop": true,
            "loopMode": "ping-pong",
            "movingParts": [
                "whole pose silhouette",
                "center of mass",
                "torso and hips",
                "both arms and hands",
                "knees, legs, boots, and stance",
                "hair and sleeves",
                "coat tails, dress, cape, and hem",
                "held equipment following the hands"
            ],
            "parentPolicy": "f1-plus-previous",
            "phaseProgressPercent": [
                0,
                22,
                44,
                100,
                44,
                22
            ],
            "phases": [
                "settled identity pose; motion has not started",
                "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
            ],
            "playbackSourceFrameIndices": [
                1,
                2,
                3,
                4,
                3,
                2
            ],
            "posePolicy": "natural-relational",
            "preview": {
                "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--preview-animation-gif",
                "format": "derived-gif-preview",
                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/preview/animation.gif",
                "sha256": "99cbd92ce2d288d02648c2337f03c61f1043df07ae15dcdd730823343af902d1",
                "sourcePolicy": "final-frame-pngs-unchanged"
            },
            "providerCallCount": 4,
            "providerFrameCount": 4,
            "providerFrames": [
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-prompt-txt",
                        "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/final/sprite.png",
                    "finalSha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16",
                    "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01",
                    "identityBaselineY": 906,
                    "index": 1,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "settled identity pose; motion has not started",
                    "phaseProgressPercent": 0,
                    "playbackSourceFrameIndex": 1,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/prompt.txt",
                    "promptSha256": "0903e6028d271e8caea9e650d480451ff3d25b6e126e84becec84371f463b960",
                    "providerCall": true,
                    "providerFrameIndex": 1,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                    "rawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                        }
                    ],
                    "sourceFrameIndex": 1,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-prompt-txt",
                        "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/final/sprite.png",
                    "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                    "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                    "identityBaselineY": 906,
                    "index": 2,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 1,
                    "parentRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                    "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 22,
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/prompt.txt",
                    "promptSha256": "738b6c2e3a0a9d3342152921dc26b662a1b35c56303ea0217f2fcbdf48f080df",
                    "providerCall": true,
                    "providerFrameIndex": 2,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                    "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                    "referenceSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                            "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                        }
                    ],
                    "sourceFrameIndex": 2,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-prompt-txt",
                        "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/final/sprite.png",
                    "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                    "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                    "identityBaselineY": 906,
                    "index": 3,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 2,
                    "parentRawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 44,
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/prompt.txt",
                    "promptSha256": "f661202944e8bdb93727cee7261ca4d9d025625737b33ddb7b80c457e1947fb8",
                    "providerCall": true,
                    "providerFrameIndex": 3,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                    "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                    "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                            "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                            "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                        }
                    ],
                    "sourceFrameIndex": 3,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-prompt-txt",
                        "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/final/sprite.png",
                    "finalSha256": "c157a47a2a8afbd048401b087161a9f08705fb3814c94f2d7700800d8cd2863e",
                    "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04",
                    "identityBaselineY": 906,
                    "index": 4,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 3,
                    "parentRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                    "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 100,
                    "playbackSourceFrameIndex": 4,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/prompt.txt",
                    "promptSha256": "7197145f4bdca9b9fd36166957fd46079b9f00953d7d5675620f3e35f30bbfc5",
                    "providerCall": true,
                    "providerFrameIndex": 4,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/raw/source.png",
                    "rawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                    "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                            "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                            "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                        }
                    ],
                    "sourceFrameIndex": 4,
                    "sourceProvided": false
                }
            ],
            "providerModel": "gpt-image-2-2026-04-21",
            "rootPolicy": {
                "allowedCorrection": "lossless whole-canvas integer translation only",
                "exactProviderRootRequired": false,
                "measuredAfterGeneration": true,
                "poseDependentHorizontalFootMotionPreserved": true,
                "providerConstraint": "at least one boot sole within 16px of F1 baseline"
            },
            "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
            "sourceFrameCount": 4,
            "sourceFrames": [
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-prompt-txt",
                        "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/final/sprite.png",
                    "finalSha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16",
                    "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01",
                    "identityBaselineY": 906,
                    "index": 1,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "settled identity pose; motion has not started",
                    "phaseProgressPercent": 0,
                    "playbackSourceFrameIndex": 1,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/prompt.txt",
                    "promptSha256": "0903e6028d271e8caea9e650d480451ff3d25b6e126e84becec84371f463b960",
                    "providerCall": true,
                    "providerFrameIndex": 1,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                    "rawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                        }
                    ],
                    "sourceFrameIndex": 1,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-prompt-txt",
                        "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/final/sprite.png",
                    "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                    "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                    "identityBaselineY": 906,
                    "index": 2,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 1,
                    "parentRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                    "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 22,
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/prompt.txt",
                    "promptSha256": "738b6c2e3a0a9d3342152921dc26b662a1b35c56303ea0217f2fcbdf48f080df",
                    "providerCall": true,
                    "providerFrameIndex": 2,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                    "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                    "referenceSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                            "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                        }
                    ],
                    "sourceFrameIndex": 2,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-prompt-txt",
                        "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/final/sprite.png",
                    "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                    "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                    "identityBaselineY": 906,
                    "index": 3,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 2,
                    "parentRawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 44,
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/prompt.txt",
                    "promptSha256": "f661202944e8bdb93727cee7261ca4d9d025625737b33ddb7b80c457e1947fb8",
                    "providerCall": true,
                    "providerFrameIndex": 3,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                    "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                    "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                            "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                            "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                        }
                    ],
                    "sourceFrameIndex": 3,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-prompt-txt",
                        "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-raw-source-png",
                        "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/final/sprite.png",
                    "finalSha256": "c157a47a2a8afbd048401b087161a9f08705fb3814c94f2d7700800d8cd2863e",
                    "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04",
                    "identityBaselineY": 906,
                    "index": 4,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 3,
                    "parentRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                    "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 100,
                    "playbackSourceFrameIndex": 4,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/prompt.txt",
                    "promptSha256": "7197145f4bdca9b9fd36166957fd46079b9f00953d7d5675620f3e35f30bbfc5",
                    "providerCall": true,
                    "providerFrameIndex": 4,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/raw/source.png",
                    "rawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                    "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                            "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                            "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                        }
                    ],
                    "sourceFrameIndex": 4,
                    "sourceProvided": false
                }
            ],
            "stylePolicy": "elder-a-master"
        },
        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--manifest-json",
        "artifactIndex": {
            "artifactCount": 31,
            "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--artifact-index-json",
            "exclusions": [
                "manifest.json",
                "artifact-index.json"
            ],
            "path": "artifact-index.json",
            "sha256": "0849c2e9a5c72e6156f27036a2b872251514ac106ba1937ac3831e7dc6bb482d"
        },
        "artifacts": {
            "animation": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--animation-json",
            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--final-sprite-png",
            "generationId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
            "manifest": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--manifest-json",
            "preview": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--preview-animation-gif",
            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--prompt-txt",
            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--raw-source-png",
            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--receipt-json",
            "request": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--request-json"
        },
        "category": "Classes & Combat",
        "categorySlug": "classes-combat",
        "class": "Selene Starward Mage",
        "classSource": "request-title",
        "createdAt": "2026-07-24T22:42:40.398079Z",
        "final": "final/sprite.png",
        "finalArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--final-sprite-png",
        "finalSha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16",
        "frames": [
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-prompt-txt",
                    "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/final/sprite.png",
                "finalSha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16",
                "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01",
                "identityBaselineY": 906,
                "index": 1,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/prompt.txt",
                "promptSha256": "0903e6028d271e8caea9e650d480451ff3d25b6e126e84becec84371f463b960",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                "rawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "sourceFrameIndex": 1,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-prompt-txt",
                    "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/final/sprite.png",
                "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                "identityBaselineY": 906,
                "index": 2,
                "loopMode": "ping-pong",
                "parentFrameIndex": 1,
                "parentRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/prompt.txt",
                "promptSha256": "738b6c2e3a0a9d3342152921dc26b662a1b35c56303ea0217f2fcbdf48f080df",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                "referenceSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                    }
                ],
                "sourceFrameIndex": 2,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-prompt-txt",
                    "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/final/sprite.png",
                "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                "identityBaselineY": 906,
                "index": 3,
                "loopMode": "ping-pong",
                "parentFrameIndex": 2,
                "parentRawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/prompt.txt",
                "promptSha256": "f661202944e8bdb93727cee7261ca4d9d025625737b33ddb7b80c457e1947fb8",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                    }
                ],
                "sourceFrameIndex": 3,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-prompt-txt",
                    "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/final/sprite.png",
                "finalSha256": "c157a47a2a8afbd048401b087161a9f08705fb3814c94f2d7700800d8cd2863e",
                "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04",
                "identityBaselineY": 906,
                "index": 4,
                "loopMode": "ping-pong",
                "parentFrameIndex": 3,
                "parentRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/prompt.txt",
                "promptSha256": "7197145f4bdca9b9fd36166957fd46079b9f00953d7d5675620f3e35f30bbfc5",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/raw/source.png",
                "rawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                    }
                ],
                "sourceFrameIndex": 4,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-prompt-txt",
                    "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-receipt-json"
                },
                "byteIdentityVerified": true,
                "durationMs": 120,
                "exactByteReuse": true,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/final/sprite.png",
                "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05",
                "identityBaselineY": 906,
                "index": 5,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackPreviousFrameIndex": 4,
                "playbackPreviousRawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/prompt.txt",
                "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                "providerCall": false,
                "providerFrameIndex": 3,
                "providerGenerated": false,
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/raw/source.png",
                "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                    }
                ],
                "sourceFinalArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                "sourceFrameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                "sourceFrameIndex": 3,
                "sourceProvided": false,
                "sourceRawArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png"
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-prompt-txt",
                    "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-receipt-json"
                },
                "byteIdentityVerified": true,
                "durationMs": 120,
                "exactByteReuse": true,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/final/sprite.png",
                "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06",
                "identityBaselineY": 906,
                "index": 6,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackPreviousFrameIndex": 5,
                "playbackPreviousRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/prompt.txt",
                "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                "providerCall": false,
                "providerFrameIndex": 2,
                "providerGenerated": false,
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/raw/source.png",
                "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                    }
                ],
                "sourceFinalArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                "sourceFrameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                "sourceFrameIndex": 2,
                "sourceProvided": false,
                "sourceRawArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png"
            }
        ],
        "gender": "woman",
        "genderSource": "request-text",
        "generation": {
            "anchorGuidePolicy": "none",
            "animationImageCount": 3,
            "animationModel": "gpt-image-2-2026-04-21",
            "attemptedCalls": 4,
            "completedCalls": 4,
            "f1ImageCount": 1,
            "f1Model": "gpt-image-2-2026-04-21",
            "imageCount": 4,
            "inputFidelity": "unsupported-omitted",
            "inputFidelityRequested": false,
            "loopMode": "ping-pong",
            "maximumReferenceCount": 2,
            "model": "gpt-image-2-2026-04-21",
            "operation": "chained-image-edit-plus-exact-ping-pong-reuse",
            "playbackFrameCount": 6,
            "playbackSourceFrameIndices": [
                1,
                2,
                3,
                4,
                3,
                2
            ],
            "posePolicy": "natural-relational",
            "providerFrameCount": 4,
            "quality": "medium",
            "referenceCountsBySourceFrame": {
                "1": 1,
                "2": 1,
                "3": 2,
                "4": 2
            },
            "referenceOrderPolicy": [
                "f1RawIdentity",
                "previousRawOpaque"
            ],
            "size": "1024x1024",
            "sourceFrameCount": 4,
            "tool": "openai-image"
        },
        "generationId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
        "ideaId": null,
        "ideaSource": null,
        "ideaTitle": null,
        "postProcessing": {
            "alphaOnly": true,
            "despilled": false,
            "feathered": false,
            "filtered": false,
            "paletteReduced": false,
            "resampled": false,
            "resized": false,
            "translated": false
        },
        "prompt": "prompt.txt",
        "promptSha256": "0903e6028d271e8caea9e650d480451ff3d25b6e126e84becec84371f463b960",
        "providerCallCount": 4,
        "providerFrames": [
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-prompt-txt",
                    "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/final/sprite.png",
                "finalSha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16",
                "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01",
                "identityBaselineY": 906,
                "index": 1,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/prompt.txt",
                "promptSha256": "0903e6028d271e8caea9e650d480451ff3d25b6e126e84becec84371f463b960",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                "rawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "sourceFrameIndex": 1,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-prompt-txt",
                    "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/final/sprite.png",
                "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                "identityBaselineY": 906,
                "index": 2,
                "loopMode": "ping-pong",
                "parentFrameIndex": 1,
                "parentRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/prompt.txt",
                "promptSha256": "738b6c2e3a0a9d3342152921dc26b662a1b35c56303ea0217f2fcbdf48f080df",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                "referenceSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                    }
                ],
                "sourceFrameIndex": 2,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-prompt-txt",
                    "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/final/sprite.png",
                "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                "identityBaselineY": 906,
                "index": 3,
                "loopMode": "ping-pong",
                "parentFrameIndex": 2,
                "parentRawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/prompt.txt",
                "promptSha256": "f661202944e8bdb93727cee7261ca4d9d025625737b33ddb7b80c457e1947fb8",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                    }
                ],
                "sourceFrameIndex": 3,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-prompt-txt",
                    "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/final/sprite.png",
                "finalSha256": "c157a47a2a8afbd048401b087161a9f08705fb3814c94f2d7700800d8cd2863e",
                "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04",
                "identityBaselineY": 906,
                "index": 4,
                "loopMode": "ping-pong",
                "parentFrameIndex": 3,
                "parentRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/prompt.txt",
                "promptSha256": "7197145f4bdca9b9fd36166957fd46079b9f00953d7d5675620f3e35f30bbfc5",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/raw/source.png",
                "rawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                    }
                ],
                "sourceFrameIndex": 4,
                "sourceProvided": false
            }
        ],
        "raw": "raw/source.png",
        "rawArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--raw-source-png",
        "rawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
        "representative": "final/sprite.png",
        "runId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
        "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
        "sourceFrames": [
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-prompt-txt",
                    "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/final/sprite.png",
                "finalSha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16",
                "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01",
                "identityBaselineY": 906,
                "index": 1,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/prompt.txt",
                "promptSha256": "0903e6028d271e8caea9e650d480451ff3d25b6e126e84becec84371f463b960",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                "rawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "sourceFrameIndex": 1,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-prompt-txt",
                    "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/final/sprite.png",
                "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                "identityBaselineY": 906,
                "index": 2,
                "loopMode": "ping-pong",
                "parentFrameIndex": 1,
                "parentRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/prompt.txt",
                "promptSha256": "738b6c2e3a0a9d3342152921dc26b662a1b35c56303ea0217f2fcbdf48f080df",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                "referenceSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                    }
                ],
                "sourceFrameIndex": 2,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-prompt-txt",
                    "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/final/sprite.png",
                "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                "identityBaselineY": 906,
                "index": 3,
                "loopMode": "ping-pong",
                "parentFrameIndex": 2,
                "parentRawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/prompt.txt",
                "promptSha256": "f661202944e8bdb93727cee7261ca4d9d025625737b33ddb7b80c457e1947fb8",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                    }
                ],
                "sourceFrameIndex": 3,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-prompt-txt",
                    "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-raw-source-png",
                    "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/final/sprite.png",
                "finalSha256": "c157a47a2a8afbd048401b087161a9f08705fb3814c94f2d7700800d8cd2863e",
                "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04",
                "identityBaselineY": 906,
                "index": 4,
                "loopMode": "ping-pong",
                "parentFrameIndex": 3,
                "parentRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/prompt.txt",
                "promptSha256": "7197145f4bdca9b9fd36166957fd46079b9f00953d7d5675620f3e35f30bbfc5",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/raw/source.png",
                "rawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                    }
                ],
                "sourceFrameIndex": 4,
                "sourceProvided": false
            }
        ],
        "sourceGenerationId": null,
        "status": "animated-command-review-required",
        "summary": "f1-plus-previous 6-frame idle ping-pong animation from 4 provider-generated frame(s); every playback frame preserves raw and alpha-only final evidence.",
        "title": "ragnarok-create · Selene Starward Mage · idle animation",
        "userRequest": "Create a white adult human woman academy mage in a deep violet robe with silver trim, holding a slim star-tipped wand upright in her wand hand."
    },
    "jsonArtifacts": {
        "animation.json": {
            "sha256": "b64b411646857cd4e0089fae81b2e81d0939bab85882f95e9207414ffdba18dd",
            "bytes": 63318,
            "value": {
                "action": "idle",
                "anchorGuide": null,
                "anchorGuidePolicy": "none",
                "durationMs": 120,
                "f1ProviderModel": "gpt-image-2-2026-04-21",
                "frameCount": 6,
                "frames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/final/sprite.png",
                        "finalSha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01",
                        "identityBaselineY": 906,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/prompt.txt",
                        "promptSha256": "0903e6028d271e8caea9e650d480451ff3d25b6e126e84becec84371f463b960",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "rawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/final/sprite.png",
                        "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                        "identityBaselineY": 906,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/prompt.txt",
                        "promptSha256": "738b6c2e3a0a9d3342152921dc26b662a1b35c56303ea0217f2fcbdf48f080df",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "referenceSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/final/sprite.png",
                        "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                        "identityBaselineY": 906,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/prompt.txt",
                        "promptSha256": "f661202944e8bdb93727cee7261ca4d9d025625737b33ddb7b80c457e1947fb8",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                                "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/final/sprite.png",
                        "finalSha256": "c157a47a2a8afbd048401b087161a9f08705fb3814c94f2d7700800d8cd2863e",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04",
                        "identityBaselineY": 906,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/prompt.txt",
                        "promptSha256": "7197145f4bdca9b9fd36166957fd46079b9f00953d7d5675620f3e35f30bbfc5",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/raw/source.png",
                        "rawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                                "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/final/sprite.png",
                        "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05",
                        "identityBaselineY": 906,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackPreviousFrameIndex": 4,
                        "playbackPreviousRawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/prompt.txt",
                        "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                        "providerCall": false,
                        "providerFrameIndex": 3,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/raw/source.png",
                        "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                                "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                        "sourceFrameIndex": 3,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/final/sprite.png",
                        "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06",
                        "identityBaselineY": 906,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackPreviousFrameIndex": 5,
                        "playbackPreviousRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/prompt.txt",
                        "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                        "providerCall": false,
                        "providerFrameIndex": 2,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/raw/source.png",
                        "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                                "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                        "sourceFrameIndex": 2,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png"
                    }
                ],
                "generationId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
                "ideaIdleBehaviorDeferred": null,
                "identityBaselineY": 906,
                "identityPolicy": "immutable-f1-raw-master",
                "idleBehavior": "Only the wand, wand hand, forearm, and upper arm move. Start with the wand raised vertically, lower it through small adjacent phases, and finish pointing screen-left at an unseen target. Freeze every other body, clothing, hair, face, accessory, foot, background, and camera pixel.",
                "idleBehaviorSource": "explicit-command",
                "lockedParts": [
                    "recognizable face and identity",
                    "costume and equipment design",
                    "fine motifs, trim, fasteners, gems, and prop markings",
                    "palette family and pixel rendering language",
                    "body proportions and overall scale band",
                    "screen-left three-quarter facing",
                    "1024x1024 canvas and flat #ff00ff background"
                ],
                "loop": true,
                "loopMode": "ping-pong",
                "movingParts": [
                    "whole pose silhouette",
                    "center of mass",
                    "torso and hips",
                    "both arms and hands",
                    "knees, legs, boots, and stance",
                    "hair and sleeves",
                    "coat tails, dress, cape, and hem",
                    "held equipment following the hands"
                ],
                "parentPolicy": "f1-plus-previous",
                "phaseProgressPercent": [
                    0,
                    22,
                    44,
                    100,
                    44,
                    22
                ],
                "phases": [
                    "settled identity pose; motion has not started",
                    "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
                ],
                "playbackSourceFrameIndices": [
                    1,
                    2,
                    3,
                    4,
                    3,
                    2
                ],
                "posePolicy": "natural-relational",
                "preview": {
                    "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--preview-animation-gif",
                    "format": "derived-gif-preview",
                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/preview/animation.gif",
                    "sha256": "99cbd92ce2d288d02648c2337f03c61f1043df07ae15dcdd730823343af902d1",
                    "sourcePolicy": "final-frame-pngs-unchanged"
                },
                "providerCallCount": 4,
                "providerFrameCount": 4,
                "providerFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/final/sprite.png",
                        "finalSha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01",
                        "identityBaselineY": 906,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/prompt.txt",
                        "promptSha256": "0903e6028d271e8caea9e650d480451ff3d25b6e126e84becec84371f463b960",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "rawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/final/sprite.png",
                        "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                        "identityBaselineY": 906,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/prompt.txt",
                        "promptSha256": "738b6c2e3a0a9d3342152921dc26b662a1b35c56303ea0217f2fcbdf48f080df",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "referenceSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/final/sprite.png",
                        "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                        "identityBaselineY": 906,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/prompt.txt",
                        "promptSha256": "f661202944e8bdb93727cee7261ca4d9d025625737b33ddb7b80c457e1947fb8",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                                "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/final/sprite.png",
                        "finalSha256": "c157a47a2a8afbd048401b087161a9f08705fb3814c94f2d7700800d8cd2863e",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04",
                        "identityBaselineY": 906,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/prompt.txt",
                        "promptSha256": "7197145f4bdca9b9fd36166957fd46079b9f00953d7d5675620f3e35f30bbfc5",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/raw/source.png",
                        "rawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                                "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "providerModel": "gpt-image-2-2026-04-21",
                "rootPolicy": {
                    "allowedCorrection": "lossless whole-canvas integer translation only",
                    "exactProviderRootRequired": false,
                    "measuredAfterGeneration": true,
                    "poseDependentHorizontalFootMotionPreserved": true,
                    "providerConstraint": "at least one boot sole within 16px of F1 baseline"
                },
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameCount": 4,
                "sourceFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/final/sprite.png",
                        "finalSha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01",
                        "identityBaselineY": 906,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/prompt.txt",
                        "promptSha256": "0903e6028d271e8caea9e650d480451ff3d25b6e126e84becec84371f463b960",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "rawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/final/sprite.png",
                        "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                        "identityBaselineY": 906,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/prompt.txt",
                        "promptSha256": "738b6c2e3a0a9d3342152921dc26b662a1b35c56303ea0217f2fcbdf48f080df",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "referenceSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/final/sprite.png",
                        "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                        "identityBaselineY": 906,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/prompt.txt",
                        "promptSha256": "f661202944e8bdb93727cee7261ca4d9d025625737b33ddb7b80c457e1947fb8",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                                "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/final/sprite.png",
                        "finalSha256": "c157a47a2a8afbd048401b087161a9f08705fb3814c94f2d7700800d8cd2863e",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04",
                        "identityBaselineY": 906,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/prompt.txt",
                        "promptSha256": "7197145f4bdca9b9fd36166957fd46079b9f00953d7d5675620f3e35f30bbfc5",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/raw/source.png",
                        "rawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                                "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "stylePolicy": "elder-a-master"
            }
        },
        "artifact-index.json": {
            "sha256": "0849c2e9a5c72e6156f27036a2b872251514ac106ba1937ac3831e7dc6bb482d",
            "bytes": 8657,
            "value": {
                "artifactCount": 31,
                "artifacts": [
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--animation-json",
                        "bytes": 63318,
                        "path": "animation.json",
                        "sha256": "b64b411646857cd4e0089fae81b2e81d0939bab85882f95e9207414ffdba18dd"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--final-sprite-png",
                        "bytes": 925904,
                        "path": "final/sprite.png",
                        "sha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-final-sprite-png",
                        "bytes": 925904,
                        "path": "frames/01/final/sprite.png",
                        "sha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-prompt-txt",
                        "bytes": 1379,
                        "path": "frames/01/prompt.txt",
                        "sha256": "0903e6028d271e8caea9e650d480451ff3d25b6e126e84becec84371f463b960"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-raw-source-png",
                        "bytes": 952966,
                        "path": "frames/01/raw/source.png",
                        "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-receipt-json",
                        "bytes": 4713,
                        "path": "frames/01/receipt.json",
                        "sha256": "1794bfc877592401bb2eb3cb4f1232af5bec1f7e7086ca6b060d1620b697dfa6"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                        "bytes": 929224,
                        "path": "frames/02/final/sprite.png",
                        "sha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-prompt-txt",
                        "bytes": 3709,
                        "path": "frames/02/prompt.txt",
                        "sha256": "738b6c2e3a0a9d3342152921dc26b662a1b35c56303ea0217f2fcbdf48f080df"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                        "bytes": 960735,
                        "path": "frames/02/raw/source.png",
                        "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-receipt-json",
                        "bytes": 5621,
                        "path": "frames/02/receipt.json",
                        "sha256": "763236e0a0f6636e7a8640f9ec3ed5b2ad408bc4c4773791cf6ac5f9962a8a33"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                        "bytes": 940809,
                        "path": "frames/03/final/sprite.png",
                        "sha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-prompt-txt",
                        "bytes": 3845,
                        "path": "frames/03/prompt.txt",
                        "sha256": "f661202944e8bdb93727cee7261ca4d9d025625737b33ddb7b80c457e1947fb8"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                        "bytes": 970753,
                        "path": "frames/03/raw/source.png",
                        "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-receipt-json",
                        "bytes": 5810,
                        "path": "frames/03/receipt.json",
                        "sha256": "637814411364391bd06fc772ea59f46d3d45e2680e987c84136a485a8617a8b6"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-final-sprite-png",
                        "bytes": 945842,
                        "path": "frames/04/final/sprite.png",
                        "sha256": "c157a47a2a8afbd048401b087161a9f08705fb3814c94f2d7700800d8cd2863e"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-prompt-txt",
                        "bytes": 3846,
                        "path": "frames/04/prompt.txt",
                        "sha256": "7197145f4bdca9b9fd36166957fd46079b9f00953d7d5675620f3e35f30bbfc5"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-raw-source-png",
                        "bytes": 966728,
                        "path": "frames/04/raw/source.png",
                        "sha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-receipt-json",
                        "bytes": 5738,
                        "path": "frames/04/receipt.json",
                        "sha256": "4e25705a69fc3aca628768591130e006c055cf4e1f950be0a36047874386970d"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-final-sprite-png",
                        "bytes": 940809,
                        "path": "frames/05/final/sprite.png",
                        "sha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-prompt-txt",
                        "bytes": 125,
                        "path": "frames/05/prompt.txt",
                        "sha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-raw-source-png",
                        "bytes": 970753,
                        "path": "frames/05/raw/source.png",
                        "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-receipt-json",
                        "bytes": 4803,
                        "path": "frames/05/receipt.json",
                        "sha256": "8a6a0136ed5b231970f94248a3e562b66292525735dcee504d23ed9957b82d8a"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-final-sprite-png",
                        "bytes": 929224,
                        "path": "frames/06/final/sprite.png",
                        "sha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-prompt-txt",
                        "bytes": 125,
                        "path": "frames/06/prompt.txt",
                        "sha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-raw-source-png",
                        "bytes": 960735,
                        "path": "frames/06/raw/source.png",
                        "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-receipt-json",
                        "bytes": 5392,
                        "path": "frames/06/receipt.json",
                        "sha256": "9229b4fcc9340a6f7f3adf412f4bcbf627aaab928fe37ae5420b1631177e519b"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--preview-animation-gif",
                        "bytes": 506247,
                        "path": "preview/animation.gif",
                        "sha256": "99cbd92ce2d288d02648c2337f03c61f1043df07ae15dcdd730823343af902d1"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--prompt-txt",
                        "bytes": 1379,
                        "path": "prompt.txt",
                        "sha256": "0903e6028d271e8caea9e650d480451ff3d25b6e126e84becec84371f463b960"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--raw-source-png",
                        "bytes": 952966,
                        "path": "raw/source.png",
                        "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--receipt-json",
                        "bytes": 57053,
                        "path": "receipt.json",
                        "sha256": "6ba863c9e83130c55fbb26f1e59d0fa85c729547bd880c3a21d5f92df1748836"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--request-json",
                        "bytes": 65964,
                        "path": "request.json",
                        "sha256": "6eabd66ede156afb03a99ff27d4ad9022fba056b76feb5e56a30d35fd6de2dce"
                    }
                ],
                "excludedSelfReferentialFiles": [
                    "manifest.json",
                    "artifact-index.json"
                ],
                "generationId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
                "schemaVersion": "midgard-pixels.ragnarok-artifact-index.v1"
            }
        },
        "frames/01/receipt.json": {
            "sha256": "1794bfc877592401bb2eb3cb4f1232af5bec1f7e7086ca6b060d1620b697dfa6",
            "bytes": 4713,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 34.55430508634199,
                "borderColorMedian": [
                    248,
                    4,
                    235
                ],
                "borderConnectedChromaPixels": 840042,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 414,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Selene Starward Mage",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:42:40.398079Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 363,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 583,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 0,
                "enclosedComponentCount": 0,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-final-sprite-png",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01",
                "frameIndex": 1,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 906,
                "identityRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                "inputSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                "keyCoreBorderConnectedPixels": 840042,
                "keyCorePixels": 840042,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.90965108733542,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16",
                "paletteReduced": false,
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 4943,
                "preservedSmallKeyColorPixels": 0,
                "promptArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "removedChromaPixels": 841402,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman academy mage in a deep violet robe with silver trim, holding a slim star-tipped wand upright in her wand hand.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 1,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/02/receipt.json": {
            "sha256": "763236e0a0f6636e7a8640f9ec3ed5b2ad408bc4c4773791cf6ac5f9962a8a33",
            "bytes": 5621,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 35.12833614050059,
                "borderColorMedian": [
                    244,
                    5,
                    224
                ],
                "borderConnectedChromaPixels": 851236,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 591,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Selene Starward Mage",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:42:40.398079Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 492,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 676,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 16,
                "enclosedComponentCount": 1,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                "frameIndex": 2,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 906,
                "identityRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                "inputSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                "keyCoreBorderConnectedPixels": 851236,
                "keyCorePixels": 851252,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.92578868606736,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                "paletteReduced": false,
                "parentFrameIndex": 1,
                "parentRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 4204,
                "preservedSmallKeyColorPixels": 0,
                "promptArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                "referenceSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                    }
                ],
                "removedChromaPixels": 853011,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman academy mage in a deep violet robe with silver trim, holding a slim star-tipped wand upright in her wand hand.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 2,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/03/receipt.json": {
            "sha256": "637814411364391bd06fc772ea59f46d3d45e2680e987c84136a485a8617a8b6",
            "bytes": 5810,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 32.341923257592455,
                "borderColorMedian": [
                    239,
                    5,
                    218
                ],
                "borderConnectedChromaPixels": 863692,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 550,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Selene Starward Mage",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:42:40.398079Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 517,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 543,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 38,
                "enclosedComponentCount": 2,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                "frameIndex": 3,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 906,
                "identityRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                "inputSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                "keyCoreBorderConnectedPixels": 863692,
                "keyCorePixels": 863730,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.98709623707387,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                "paletteReduced": false,
                "parentFrameIndex": 2,
                "parentRawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 3234,
                "preservedSmallKeyColorPixels": 0,
                "promptArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                    }
                ],
                "removedChromaPixels": 865340,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman academy mage in a deep violet robe with silver trim, holding a slim star-tipped wand upright in her wand hand.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 3,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/04/receipt.json": {
            "sha256": "4e25705a69fc3aca628768591130e006c055cf4e1f950be0a36047874386970d",
            "bytes": 5738,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 35.679125549822544,
                "borderColorMedian": [
                    240,
                    5,
                    225
                ],
                "borderConnectedChromaPixels": 864123,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 459,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Selene Starward Mage",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:42:40.398079Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 353,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 467,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 12,
                "enclosedComponentCount": 1,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-final-sprite-png",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04",
                "frameIndex": 4,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 906,
                "identityRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/raw/source.png",
                "inputSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                "keyCoreBorderConnectedPixels": 864123,
                "keyCorePixels": 864135,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.97419139972953,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "c157a47a2a8afbd048401b087161a9f08705fb3814c94f2d7700800d8cd2863e",
                "paletteReduced": false,
                "parentFrameIndex": 3,
                "parentRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 3554,
                "preservedSmallKeyColorPixels": 0,
                "promptArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                    }
                ],
                "removedChromaPixels": 865414,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman academy mage in a deep violet robe with silver trim, holding a slim star-tipped wand upright in her wand hand.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 4,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/05/receipt.json": {
            "sha256": "8a6a0136ed5b231970f94248a3e562b66292525735dcee504d23ed9957b82d8a",
            "bytes": 4803,
            "value": {
                "action": "idle",
                "anchorGuide": null,
                "byteIdentityVerified": true,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Selene Starward Mage",
                "classSource": "request-title",
                "createdAt": "2026-07-24T22:42:40.398079Z",
                "durationMs": 120,
                "exactByteReuse": true,
                "finalArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-final-sprite-png",
                "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05",
                "frameIndex": 5,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 906,
                "identityRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                "loopMode": "ping-pong",
                "operation": "exact-byte-ping-pong-reuse",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackPreviousFrameIndex": 4,
                "playbackPreviousRawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "promptArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-prompt-txt",
                "providerCall": false,
                "providerFrameIndex": 3,
                "providerGenerated": false,
                "rawArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-raw-source-png",
                "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                "receiptArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                    }
                ],
                "request": "Create a white adult human woman academy mage in a deep violet robe with silver trim, holding a slim star-tipped wand upright in her wand hand.",
                "runId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFinal": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/final/sprite.png",
                "sourceFinalArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                "sourceFinalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                "sourceFrameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                "sourceFrameIndex": 3,
                "sourceProvided": false,
                "sourceRaw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                "sourceRawArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                "sourceRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
            }
        },
        "frames/06/receipt.json": {
            "sha256": "9229b4fcc9340a6f7f3adf412f4bcbf627aaab928fe37ae5420b1631177e519b",
            "bytes": 5392,
            "value": {
                "action": "idle",
                "anchorGuide": null,
                "byteIdentityVerified": true,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Selene Starward Mage",
                "classSource": "request-title",
                "createdAt": "2026-07-24T22:42:40.398079Z",
                "durationMs": 120,
                "exactByteReuse": true,
                "finalArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-final-sprite-png",
                "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06",
                "frameIndex": 6,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 906,
                "identityRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                "loopMode": "ping-pong",
                "operation": "exact-byte-ping-pong-reuse",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackPreviousFrameIndex": 5,
                "playbackPreviousRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "promptArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-prompt-txt",
                "providerCall": false,
                "providerFrameIndex": 2,
                "providerGenerated": false,
                "rawArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-raw-source-png",
                "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                "receiptArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                    }
                ],
                "request": "Create a white adult human woman academy mage in a deep violet robe with silver trim, holding a slim star-tipped wand upright in her wand hand.",
                "runId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFinal": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/final/sprite.png",
                "sourceFinalArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                "sourceFinalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                "sourceFrameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                "sourceFrameIndex": 2,
                "sourceProvided": false,
                "sourceRaw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                "sourceRawArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                "sourceRawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
            }
        },
        "manifest.json": {
            "sha256": "2733361dbd9afac0d586c5748a706f58b605978df5462ef67f35ebc8880357ad",
            "bytes": 125548,
            "value": {
                "animation": {
                    "action": "idle",
                    "anchorGuide": null,
                    "anchorGuidePolicy": "none",
                    "durationMs": 120,
                    "f1ProviderModel": "gpt-image-2-2026-04-21",
                    "frameCount": 6,
                    "frames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/final/sprite.png",
                            "finalSha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01",
                            "identityBaselineY": 906,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/prompt.txt",
                            "promptSha256": "0903e6028d271e8caea9e650d480451ff3d25b6e126e84becec84371f463b960",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                            "rawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/final/sprite.png",
                            "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                            "identityBaselineY": 906,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/prompt.txt",
                            "promptSha256": "738b6c2e3a0a9d3342152921dc26b662a1b35c56303ea0217f2fcbdf48f080df",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                            "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                            "referenceSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                    "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/final/sprite.png",
                            "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                            "identityBaselineY": 906,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/prompt.txt",
                            "promptSha256": "f661202944e8bdb93727cee7261ca4d9d025625737b33ddb7b80c457e1947fb8",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                            "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                            "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                    "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                                    "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/final/sprite.png",
                            "finalSha256": "c157a47a2a8afbd048401b087161a9f08705fb3814c94f2d7700800d8cd2863e",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04",
                            "identityBaselineY": 906,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/prompt.txt",
                            "promptSha256": "7197145f4bdca9b9fd36166957fd46079b9f00953d7d5675620f3e35f30bbfc5",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/raw/source.png",
                            "rawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                            "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                    "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                                    "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/final/sprite.png",
                            "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05",
                            "identityBaselineY": 906,
                            "index": 5,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackPreviousFrameIndex": 4,
                            "playbackPreviousRawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/prompt.txt",
                            "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                            "providerCall": false,
                            "providerFrameIndex": 3,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/raw/source.png",
                            "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                            "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                                    "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                            "sourceFrameIndex": 3,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png"
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/final/sprite.png",
                            "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06",
                            "identityBaselineY": 906,
                            "index": 6,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackPreviousFrameIndex": 5,
                            "playbackPreviousRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/prompt.txt",
                            "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                            "providerCall": false,
                            "providerFrameIndex": 2,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/raw/source.png",
                            "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                            "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                                    "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                            "sourceFrameIndex": 2,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png"
                        }
                    ],
                    "generationId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
                    "ideaIdleBehaviorDeferred": null,
                    "identityBaselineY": 906,
                    "identityPolicy": "immutable-f1-raw-master",
                    "idleBehavior": "Only the wand, wand hand, forearm, and upper arm move. Start with the wand raised vertically, lower it through small adjacent phases, and finish pointing screen-left at an unseen target. Freeze every other body, clothing, hair, face, accessory, foot, background, and camera pixel.",
                    "idleBehaviorSource": "explicit-command",
                    "lockedParts": [
                        "recognizable face and identity",
                        "costume and equipment design",
                        "fine motifs, trim, fasteners, gems, and prop markings",
                        "palette family and pixel rendering language",
                        "body proportions and overall scale band",
                        "screen-left three-quarter facing",
                        "1024x1024 canvas and flat #ff00ff background"
                    ],
                    "loop": true,
                    "loopMode": "ping-pong",
                    "movingParts": [
                        "whole pose silhouette",
                        "center of mass",
                        "torso and hips",
                        "both arms and hands",
                        "knees, legs, boots, and stance",
                        "hair and sleeves",
                        "coat tails, dress, cape, and hem",
                        "held equipment following the hands"
                    ],
                    "parentPolicy": "f1-plus-previous",
                    "phaseProgressPercent": [
                        0,
                        22,
                        44,
                        100,
                        44,
                        22
                    ],
                    "phases": [
                        "settled identity pose; motion has not started",
                        "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
                    ],
                    "playbackSourceFrameIndices": [
                        1,
                        2,
                        3,
                        4,
                        3,
                        2
                    ],
                    "posePolicy": "natural-relational",
                    "preview": {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--preview-animation-gif",
                        "format": "derived-gif-preview",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/preview/animation.gif",
                        "sha256": "99cbd92ce2d288d02648c2337f03c61f1043df07ae15dcdd730823343af902d1",
                        "sourcePolicy": "final-frame-pngs-unchanged"
                    },
                    "providerCallCount": 4,
                    "providerFrameCount": 4,
                    "providerFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/final/sprite.png",
                            "finalSha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01",
                            "identityBaselineY": 906,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/prompt.txt",
                            "promptSha256": "0903e6028d271e8caea9e650d480451ff3d25b6e126e84becec84371f463b960",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                            "rawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/final/sprite.png",
                            "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                            "identityBaselineY": 906,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/prompt.txt",
                            "promptSha256": "738b6c2e3a0a9d3342152921dc26b662a1b35c56303ea0217f2fcbdf48f080df",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                            "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                            "referenceSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                    "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/final/sprite.png",
                            "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                            "identityBaselineY": 906,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/prompt.txt",
                            "promptSha256": "f661202944e8bdb93727cee7261ca4d9d025625737b33ddb7b80c457e1947fb8",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                            "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                            "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                    "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                                    "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/final/sprite.png",
                            "finalSha256": "c157a47a2a8afbd048401b087161a9f08705fb3814c94f2d7700800d8cd2863e",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04",
                            "identityBaselineY": 906,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/prompt.txt",
                            "promptSha256": "7197145f4bdca9b9fd36166957fd46079b9f00953d7d5675620f3e35f30bbfc5",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/raw/source.png",
                            "rawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                            "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                    "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                                    "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        }
                    ],
                    "providerModel": "gpt-image-2-2026-04-21",
                    "rootPolicy": {
                        "allowedCorrection": "lossless whole-canvas integer translation only",
                        "exactProviderRootRequired": false,
                        "measuredAfterGeneration": true,
                        "poseDependentHorizontalFootMotionPreserved": true,
                        "providerConstraint": "at least one boot sole within 16px of F1 baseline"
                    },
                    "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                    "sourceFrameCount": 4,
                    "sourceFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/final/sprite.png",
                            "finalSha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01",
                            "identityBaselineY": 906,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/prompt.txt",
                            "promptSha256": "0903e6028d271e8caea9e650d480451ff3d25b6e126e84becec84371f463b960",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                            "rawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/final/sprite.png",
                            "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                            "identityBaselineY": 906,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/prompt.txt",
                            "promptSha256": "738b6c2e3a0a9d3342152921dc26b662a1b35c56303ea0217f2fcbdf48f080df",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                            "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                            "referenceSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                    "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/final/sprite.png",
                            "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                            "identityBaselineY": 906,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/prompt.txt",
                            "promptSha256": "f661202944e8bdb93727cee7261ca4d9d025625737b33ddb7b80c457e1947fb8",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                            "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                            "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                    "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                                    "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/final/sprite.png",
                            "finalSha256": "c157a47a2a8afbd048401b087161a9f08705fb3814c94f2d7700800d8cd2863e",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04",
                            "identityBaselineY": 906,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/prompt.txt",
                            "promptSha256": "7197145f4bdca9b9fd36166957fd46079b9f00953d7d5675620f3e35f30bbfc5",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/raw/source.png",
                            "rawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                            "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                    "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                                    "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        }
                    ],
                    "stylePolicy": "elder-a-master"
                },
                "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--manifest-json",
                "artifactIndex": {
                    "artifactCount": 31,
                    "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--artifact-index-json",
                    "exclusions": [
                        "manifest.json",
                        "artifact-index.json"
                    ],
                    "path": "artifact-index.json",
                    "sha256": "0849c2e9a5c72e6156f27036a2b872251514ac106ba1937ac3831e7dc6bb482d"
                },
                "artifacts": {
                    "animation": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--animation-json",
                    "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--final-sprite-png",
                    "generationId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
                    "manifest": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--manifest-json",
                    "preview": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--preview-animation-gif",
                    "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--prompt-txt",
                    "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--raw-source-png",
                    "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--receipt-json",
                    "request": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--request-json"
                },
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Selene Starward Mage",
                "classSource": "request-title",
                "createdAt": "2026-07-24T22:42:40.398079Z",
                "final": "final/sprite.png",
                "finalArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--final-sprite-png",
                "finalSha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16",
                "frames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/final/sprite.png",
                        "finalSha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01",
                        "identityBaselineY": 906,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/prompt.txt",
                        "promptSha256": "0903e6028d271e8caea9e650d480451ff3d25b6e126e84becec84371f463b960",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "rawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/final/sprite.png",
                        "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                        "identityBaselineY": 906,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/prompt.txt",
                        "promptSha256": "738b6c2e3a0a9d3342152921dc26b662a1b35c56303ea0217f2fcbdf48f080df",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "referenceSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/final/sprite.png",
                        "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                        "identityBaselineY": 906,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/prompt.txt",
                        "promptSha256": "f661202944e8bdb93727cee7261ca4d9d025625737b33ddb7b80c457e1947fb8",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                                "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/final/sprite.png",
                        "finalSha256": "c157a47a2a8afbd048401b087161a9f08705fb3814c94f2d7700800d8cd2863e",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04",
                        "identityBaselineY": 906,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/prompt.txt",
                        "promptSha256": "7197145f4bdca9b9fd36166957fd46079b9f00953d7d5675620f3e35f30bbfc5",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/raw/source.png",
                        "rawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                                "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/final/sprite.png",
                        "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05",
                        "identityBaselineY": 906,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackPreviousFrameIndex": 4,
                        "playbackPreviousRawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/prompt.txt",
                        "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                        "providerCall": false,
                        "providerFrameIndex": 3,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/raw/source.png",
                        "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                                "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                        "sourceFrameIndex": 3,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/final/sprite.png",
                        "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06",
                        "identityBaselineY": 906,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackPreviousFrameIndex": 5,
                        "playbackPreviousRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/prompt.txt",
                        "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                        "providerCall": false,
                        "providerFrameIndex": 2,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/raw/source.png",
                        "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                                "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                        "sourceFrameIndex": 2,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png"
                    }
                ],
                "gender": "woman",
                "genderSource": "request-text",
                "generation": {
                    "anchorGuidePolicy": "none",
                    "animationImageCount": 3,
                    "animationModel": "gpt-image-2-2026-04-21",
                    "attemptedCalls": 4,
                    "completedCalls": 4,
                    "f1ImageCount": 1,
                    "f1Model": "gpt-image-2-2026-04-21",
                    "imageCount": 4,
                    "inputFidelity": "unsupported-omitted",
                    "inputFidelityRequested": false,
                    "loopMode": "ping-pong",
                    "maximumReferenceCount": 2,
                    "model": "gpt-image-2-2026-04-21",
                    "operation": "chained-image-edit-plus-exact-ping-pong-reuse",
                    "playbackFrameCount": 6,
                    "playbackSourceFrameIndices": [
                        1,
                        2,
                        3,
                        4,
                        3,
                        2
                    ],
                    "posePolicy": "natural-relational",
                    "providerFrameCount": 4,
                    "quality": "medium",
                    "referenceCountsBySourceFrame": {
                        "1": 1,
                        "2": 1,
                        "3": 2,
                        "4": 2
                    },
                    "referenceOrderPolicy": [
                        "f1RawIdentity",
                        "previousRawOpaque"
                    ],
                    "size": "1024x1024",
                    "sourceFrameCount": 4,
                    "tool": "openai-image"
                },
                "generationId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "postProcessing": {
                    "alphaOnly": true,
                    "despilled": false,
                    "feathered": false,
                    "filtered": false,
                    "paletteReduced": false,
                    "resampled": false,
                    "resized": false,
                    "translated": false
                },
                "prompt": "prompt.txt",
                "promptSha256": "0903e6028d271e8caea9e650d480451ff3d25b6e126e84becec84371f463b960",
                "providerCallCount": 4,
                "providerFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/final/sprite.png",
                        "finalSha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01",
                        "identityBaselineY": 906,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/prompt.txt",
                        "promptSha256": "0903e6028d271e8caea9e650d480451ff3d25b6e126e84becec84371f463b960",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "rawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/final/sprite.png",
                        "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                        "identityBaselineY": 906,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/prompt.txt",
                        "promptSha256": "738b6c2e3a0a9d3342152921dc26b662a1b35c56303ea0217f2fcbdf48f080df",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "referenceSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/final/sprite.png",
                        "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                        "identityBaselineY": 906,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/prompt.txt",
                        "promptSha256": "f661202944e8bdb93727cee7261ca4d9d025625737b33ddb7b80c457e1947fb8",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                                "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/final/sprite.png",
                        "finalSha256": "c157a47a2a8afbd048401b087161a9f08705fb3814c94f2d7700800d8cd2863e",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04",
                        "identityBaselineY": 906,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/prompt.txt",
                        "promptSha256": "7197145f4bdca9b9fd36166957fd46079b9f00953d7d5675620f3e35f30bbfc5",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/raw/source.png",
                        "rawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                                "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "raw": "raw/source.png",
                "rawArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--raw-source-png",
                "rawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "representative": "final/sprite.png",
                "runId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/final/sprite.png",
                        "finalSha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01",
                        "identityBaselineY": 906,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/prompt.txt",
                        "promptSha256": "0903e6028d271e8caea9e650d480451ff3d25b6e126e84becec84371f463b960",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "rawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/final/sprite.png",
                        "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                        "identityBaselineY": 906,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/prompt.txt",
                        "promptSha256": "738b6c2e3a0a9d3342152921dc26b662a1b35c56303ea0217f2fcbdf48f080df",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "referenceSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/final/sprite.png",
                        "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                        "identityBaselineY": 906,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/prompt.txt",
                        "promptSha256": "f661202944e8bdb93727cee7261ca4d9d025625737b33ddb7b80c457e1947fb8",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                                "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/final/sprite.png",
                        "finalSha256": "c157a47a2a8afbd048401b087161a9f08705fb3814c94f2d7700800d8cd2863e",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04",
                        "identityBaselineY": 906,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/prompt.txt",
                        "promptSha256": "7197145f4bdca9b9fd36166957fd46079b9f00953d7d5675620f3e35f30bbfc5",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/raw/source.png",
                        "rawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                                "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "sourceGenerationId": null,
                "status": "animated-command-review-required",
                "summary": "f1-plus-previous 6-frame idle ping-pong animation from 4 provider-generated frame(s); every playback frame preserves raw and alpha-only final evidence.",
                "title": "ragnarok-create · Selene Starward Mage · idle animation",
                "userRequest": "Create a white adult human woman academy mage in a deep violet robe with silver trim, holding a slim star-tipped wand upright in her wand hand."
            }
        },
        "receipt.json": {
            "sha256": "6ba863c9e83130c55fbb26f1e59d0fa85c729547bd880c3a21d5f92df1748836",
            "bytes": 57053,
            "value": {
                "anchorGuide": null,
                "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--receipt-json",
                "f1ProviderModel": "gpt-image-2-2026-04-21",
                "frameCount": 6,
                "frames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/final/sprite.png",
                        "finalSha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01",
                        "identityBaselineY": 906,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/prompt.txt",
                        "promptSha256": "0903e6028d271e8caea9e650d480451ff3d25b6e126e84becec84371f463b960",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "rawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/final/sprite.png",
                        "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                        "identityBaselineY": 906,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/prompt.txt",
                        "promptSha256": "738b6c2e3a0a9d3342152921dc26b662a1b35c56303ea0217f2fcbdf48f080df",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "referenceSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/final/sprite.png",
                        "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                        "identityBaselineY": 906,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/prompt.txt",
                        "promptSha256": "f661202944e8bdb93727cee7261ca4d9d025625737b33ddb7b80c457e1947fb8",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                                "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/final/sprite.png",
                        "finalSha256": "c157a47a2a8afbd048401b087161a9f08705fb3814c94f2d7700800d8cd2863e",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04",
                        "identityBaselineY": 906,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/prompt.txt",
                        "promptSha256": "7197145f4bdca9b9fd36166957fd46079b9f00953d7d5675620f3e35f30bbfc5",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/raw/source.png",
                        "rawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                                "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/final/sprite.png",
                        "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05",
                        "identityBaselineY": 906,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackPreviousFrameIndex": 4,
                        "playbackPreviousRawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/prompt.txt",
                        "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                        "providerCall": false,
                        "providerFrameIndex": 3,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/raw/source.png",
                        "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                                "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                        "sourceFrameIndex": 3,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/final/sprite.png",
                        "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06",
                        "identityBaselineY": 906,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackPreviousFrameIndex": 5,
                        "playbackPreviousRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/prompt.txt",
                        "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                        "providerCall": false,
                        "providerFrameIndex": 2,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/raw/source.png",
                        "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                                "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                        "sourceFrameIndex": 2,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png"
                    }
                ],
                "generationId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
                "loopMode": "ping-pong",
                "playbackSourceFrameIndices": [
                    1,
                    2,
                    3,
                    4,
                    3,
                    2
                ],
                "posePolicy": "natural-relational",
                "providerCallCount": 4,
                "providerCallCountAttempted": 4,
                "providerCallCountCompleted": 4,
                "providerFrameCount": 4,
                "providerFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/final/sprite.png",
                        "finalSha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01",
                        "identityBaselineY": 906,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/prompt.txt",
                        "promptSha256": "0903e6028d271e8caea9e650d480451ff3d25b6e126e84becec84371f463b960",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "rawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/final/sprite.png",
                        "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                        "identityBaselineY": 906,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/prompt.txt",
                        "promptSha256": "738b6c2e3a0a9d3342152921dc26b662a1b35c56303ea0217f2fcbdf48f080df",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "referenceSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/final/sprite.png",
                        "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                        "identityBaselineY": 906,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/prompt.txt",
                        "promptSha256": "f661202944e8bdb93727cee7261ca4d9d025625737b33ddb7b80c457e1947fb8",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                                "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/final/sprite.png",
                        "finalSha256": "c157a47a2a8afbd048401b087161a9f08705fb3814c94f2d7700800d8cd2863e",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04",
                        "identityBaselineY": 906,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/prompt.txt",
                        "promptSha256": "7197145f4bdca9b9fd36166957fd46079b9f00953d7d5675620f3e35f30bbfc5",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/raw/source.png",
                        "rawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                                "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "providerModel": "gpt-image-2-2026-04-21",
                "runId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameCount": 4,
                "sourceFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/final/sprite.png",
                        "finalSha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01",
                        "identityBaselineY": 906,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/prompt.txt",
                        "promptSha256": "0903e6028d271e8caea9e650d480451ff3d25b6e126e84becec84371f463b960",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "rawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/final/sprite.png",
                        "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                        "identityBaselineY": 906,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/prompt.txt",
                        "promptSha256": "738b6c2e3a0a9d3342152921dc26b662a1b35c56303ea0217f2fcbdf48f080df",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                        "referenceSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/final/sprite.png",
                        "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                        "identityBaselineY": 906,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/prompt.txt",
                        "promptSha256": "f661202944e8bdb93727cee7261ca4d9d025625737b33ddb7b80c457e1947fb8",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                        "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                                "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/final/sprite.png",
                        "finalSha256": "c157a47a2a8afbd048401b087161a9f08705fb3814c94f2d7700800d8cd2863e",
                        "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04",
                        "identityBaselineY": 906,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/prompt.txt",
                        "promptSha256": "7197145f4bdca9b9fd36166957fd46079b9f00953d7d5675620f3e35f30bbfc5",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/raw/source.png",
                        "rawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                        "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                                "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "sourceGenerationId": null
            }
        },
        "request.json": {
            "sha256": "6eabd66ede156afb03a99ff27d4ad9022fba056b76feb5e56a30d35fd6de2dce",
            "bytes": 65964,
            "value": {
                "animation": {
                    "action": "idle",
                    "anchorGuide": null,
                    "anchorGuidePolicy": "none",
                    "durationMs": 120,
                    "f1ProviderModel": "gpt-image-2-2026-04-21",
                    "frameCount": 6,
                    "frames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/final/sprite.png",
                            "finalSha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01",
                            "identityBaselineY": 906,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/prompt.txt",
                            "promptSha256": "0903e6028d271e8caea9e650d480451ff3d25b6e126e84becec84371f463b960",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                            "rawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/final/sprite.png",
                            "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                            "identityBaselineY": 906,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/prompt.txt",
                            "promptSha256": "738b6c2e3a0a9d3342152921dc26b662a1b35c56303ea0217f2fcbdf48f080df",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                            "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                            "referenceSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                    "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/final/sprite.png",
                            "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                            "identityBaselineY": 906,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/prompt.txt",
                            "promptSha256": "f661202944e8bdb93727cee7261ca4d9d025625737b33ddb7b80c457e1947fb8",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                            "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                            "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                    "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                                    "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/final/sprite.png",
                            "finalSha256": "c157a47a2a8afbd048401b087161a9f08705fb3814c94f2d7700800d8cd2863e",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04",
                            "identityBaselineY": 906,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/prompt.txt",
                            "promptSha256": "7197145f4bdca9b9fd36166957fd46079b9f00953d7d5675620f3e35f30bbfc5",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/raw/source.png",
                            "rawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                            "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                    "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                                    "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/final/sprite.png",
                            "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-05",
                            "identityBaselineY": 906,
                            "index": 5,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackPreviousFrameIndex": 4,
                            "playbackPreviousRawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/prompt.txt",
                            "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                            "providerCall": false,
                            "providerFrameIndex": 3,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/raw/source.png",
                            "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                            "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                                    "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                            "sourceFrameIndex": 3,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png"
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/final/sprite.png",
                            "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-06",
                            "identityBaselineY": 906,
                            "index": 6,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackPreviousFrameIndex": 5,
                            "playbackPreviousRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/prompt.txt",
                            "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                            "providerCall": false,
                            "providerFrameIndex": 2,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/raw/source.png",
                            "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                            "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                                    "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                            "sourceFrameIndex": 2,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png"
                        }
                    ],
                    "generationId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
                    "ideaIdleBehaviorDeferred": null,
                    "identityBaselineY": 906,
                    "identityPolicy": "immutable-f1-raw-master",
                    "idleBehavior": "Only the wand, wand hand, forearm, and upper arm move. Start with the wand raised vertically, lower it through small adjacent phases, and finish pointing screen-left at an unseen target. Freeze every other body, clothing, hair, face, accessory, foot, background, and camera pixel.",
                    "idleBehaviorSource": "explicit-command",
                    "lockedParts": [
                        "recognizable face and identity",
                        "costume and equipment design",
                        "fine motifs, trim, fasteners, gems, and prop markings",
                        "palette family and pixel rendering language",
                        "body proportions and overall scale band",
                        "screen-left three-quarter facing",
                        "1024x1024 canvas and flat #ff00ff background"
                    ],
                    "loop": true,
                    "loopMode": "ping-pong",
                    "movingParts": [
                        "whole pose silhouette",
                        "center of mass",
                        "torso and hips",
                        "both arms and hands",
                        "knees, legs, boots, and stance",
                        "hair and sleeves",
                        "coat tails, dress, cape, and hem",
                        "held equipment following the hands"
                    ],
                    "parentPolicy": "f1-plus-previous",
                    "phaseProgressPercent": [
                        0,
                        22,
                        44,
                        100,
                        44,
                        22
                    ],
                    "phases": [
                        "settled identity pose; motion has not started",
                        "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
                    ],
                    "playbackSourceFrameIndices": [
                        1,
                        2,
                        3,
                        4,
                        3,
                        2
                    ],
                    "posePolicy": "natural-relational",
                    "preview": {
                        "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--preview-animation-gif",
                        "format": "derived-gif-preview",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/preview/animation.gif",
                        "sha256": "99cbd92ce2d288d02648c2337f03c61f1043df07ae15dcdd730823343af902d1",
                        "sourcePolicy": "final-frame-pngs-unchanged"
                    },
                    "providerCallCount": 4,
                    "providerFrameCount": 4,
                    "providerFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/final/sprite.png",
                            "finalSha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01",
                            "identityBaselineY": 906,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/prompt.txt",
                            "promptSha256": "0903e6028d271e8caea9e650d480451ff3d25b6e126e84becec84371f463b960",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                            "rawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/final/sprite.png",
                            "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                            "identityBaselineY": 906,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/prompt.txt",
                            "promptSha256": "738b6c2e3a0a9d3342152921dc26b662a1b35c56303ea0217f2fcbdf48f080df",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                            "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                            "referenceSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                    "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/final/sprite.png",
                            "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                            "identityBaselineY": 906,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/prompt.txt",
                            "promptSha256": "f661202944e8bdb93727cee7261ca4d9d025625737b33ddb7b80c457e1947fb8",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                            "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                            "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                    "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                                    "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/final/sprite.png",
                            "finalSha256": "c157a47a2a8afbd048401b087161a9f08705fb3814c94f2d7700800d8cd2863e",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04",
                            "identityBaselineY": 906,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/prompt.txt",
                            "promptSha256": "7197145f4bdca9b9fd36166957fd46079b9f00953d7d5675620f3e35f30bbfc5",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/raw/source.png",
                            "rawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                            "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                    "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                                    "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        }
                    ],
                    "providerModel": "gpt-image-2-2026-04-21",
                    "rootPolicy": {
                        "allowedCorrection": "lossless whole-canvas integer translation only",
                        "exactProviderRootRequired": false,
                        "measuredAfterGeneration": true,
                        "poseDependentHorizontalFootMotionPreserved": true,
                        "providerConstraint": "at least one boot sole within 16px of F1 baseline"
                    },
                    "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                    "sourceFrameCount": 4,
                    "sourceFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/final/sprite.png",
                            "finalSha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-01",
                            "identityBaselineY": 906,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/prompt.txt",
                            "promptSha256": "0903e6028d271e8caea9e650d480451ff3d25b6e126e84becec84371f463b960",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                            "rawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/final/sprite.png",
                            "finalSha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-02",
                            "identityBaselineY": 906,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/prompt.txt",
                            "promptSha256": "738b6c2e3a0a9d3342152921dc26b662a1b35c56303ea0217f2fcbdf48f080df",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                            "rawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                            "referenceSha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                    "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/final/sprite.png",
                            "finalSha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-03",
                            "identityBaselineY": 906,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/prompt.txt",
                            "promptSha256": "f661202944e8bdb93727cee7261ca4d9d025625737b33ddb7b80c457e1947fb8",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                            "rawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                            "referenceSha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                    "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
                                    "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/final/sprite.png",
                            "finalSha256": "c157a47a2a8afbd048401b087161a9f08705fb3814c94f2d7700800d8cd2863e",
                            "frameId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--frames-04",
                            "identityBaselineY": 906,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/prompt.txt",
                            "promptSha256": "7197145f4bdca9b9fd36166957fd46079b9f00953d7d5675620f3e35f30bbfc5",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/raw/source.png",
                            "rawSha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                            "referenceSha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
                                    "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
                                    "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        }
                    ],
                    "stylePolicy": "elder-a-master"
                },
                "artifactId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14--request-json",
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Selene Starward Mage",
                "classSource": "request-title",
                "command": "ragnarok-create --animate",
                "createdAt": "2026-07-24T22:42:40.398079Z",
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "provider": {
                    "animationInputFidelity": "unsupported-omitted",
                    "animationModel": "gpt-image-2-2026-04-21",
                    "attemptedCalls": 4,
                    "completedCalls": 4,
                    "f1InputFidelity": "unsupported-omitted",
                    "f1Model": "gpt-image-2-2026-04-21",
                    "quality": "medium",
                    "size": "1024x1024"
                },
                "request": "Create a white adult human woman academy mage in a deep violet robe with silver trim, holding a slim star-tipped wand upright in her wand hand.",
                "runId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "source": null,
                "sourceGenerationId": null,
                "title": "Selene Starward Mage"
            }
        },
        "review/onion-audit/report.json": {
            "sha256": "59c3df64523ee8517b5222af5ab9cc5a3f19a039f8da75d324c70d982b392895",
            "bytes": 6731,
            "value": {
                "artifacts": [
                    {
                        "path": "review/onion-audit/f1-to-f02.png",
                        "sha256": "0220cee7046b7594e6d51089b44a686fbe3be6d51e37ff9c38f62ab6f8383beb"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f01-f02.png",
                        "sha256": "0220cee7046b7594e6d51089b44a686fbe3be6d51e37ff9c38f62ab6f8383beb"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f03.png",
                        "sha256": "25d7a29d7be3cfc748c0124de9d5764311b9d865c8688382c001c2917e4b1244"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f02-f03.png",
                        "sha256": "fd4054c6794963f2f93be8a1262cd6b602944567e8aab0df7e933946fd040662"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f04.png",
                        "sha256": "0df30e93b3b61008cd9fd85c1c621b1728fe7793c39feb0fb673c6a1c2ac63c4"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f03-f04.png",
                        "sha256": "06148a902f735d2ff5c6a348c8c8462f5821a9fecafe0fb3d3f74cf435846971"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f05.png",
                        "sha256": "25d7a29d7be3cfc748c0124de9d5764311b9d865c8688382c001c2917e4b1244"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f04-f05.png",
                        "sha256": "2dbd5c1d3925603c0afa3f7aef54aceb0f39230b77858cdefbd6b76d39168f51"
                    },
                    {
                        "path": "review/onion-audit/f1-to-f06.png",
                        "sha256": "0220cee7046b7594e6d51089b44a686fbe3be6d51e37ff9c38f62ab6f8383beb"
                    },
                    {
                        "path": "review/onion-audit/adjacent-f05-f06.png",
                        "sha256": "346cf32f12d374224ba0e95f9318aea70bb606d01abb1354c4ec426113053099"
                    },
                    {
                        "path": "review/onion-audit/f1-onion-sheet.png",
                        "sha256": "86cc24de88e15b726453fdab37522a2221aff411aa4e349565fa31df2120be73"
                    }
                ],
                "frames": [
                    {
                        "baselineY": 906,
                        "bodyBandAreaRatioToF1": 1,
                        "bodyBandBounds": [
                            343,
                            138,
                            689,
                            907
                        ],
                        "bodyBandCentroid": [
                            521.8429,
                            531.0883
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            0,
                            0
                        ],
                        "bodyBandHeight": 769,
                        "bodyBandHeightRatioToF1": 1,
                        "bodyBandVisiblePixels": 197846,
                        "frame": 1,
                        "fullBounds": [
                            281,
                            138,
                            714,
                            907
                        ],
                        "fullCentroid": [
                            516.0801,
                            524.2059
                        ],
                        "path": "frames/01/final/sprite.png",
                        "sha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16"
                    },
                    {
                        "baselineY": 894,
                        "bodyBandAreaRatioToF1": 0.917451,
                        "bodyBandBounds": [
                            343,
                            151,
                            689,
                            895
                        ],
                        "bodyBandCentroid": [
                            538.9412,
                            529.975
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            17.0983,
                            -1.1133
                        ],
                        "bodyBandHeight": 744,
                        "bodyBandHeightRatioToF1": 0.96749,
                        "bodyBandVisiblePixels": 181514,
                        "frame": 2,
                        "fullBounds": [
                            83,
                            151,
                            726,
                            895
                        ],
                        "fullCentroid": [
                            526.2344,
                            526.7624
                        ],
                        "path": "frames/02/final/sprite.png",
                        "sha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf"
                    },
                    {
                        "baselineY": 890,
                        "bodyBandAreaRatioToF1": 0.86026,
                        "bodyBandBounds": [
                            343,
                            173,
                            689,
                            891
                        ],
                        "bodyBandCentroid": [
                            545.5129,
                            538.541
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            23.67,
                            7.4527
                        ],
                        "bodyBandHeight": 718,
                        "bodyBandHeightRatioToF1": 0.93368,
                        "bodyBandVisiblePixels": 170199,
                        "frame": 3,
                        "fullBounds": [
                            96,
                            173,
                            730,
                            891
                        ],
                        "fullCentroid": [
                            535.3209,
                            539.0641
                        ],
                        "path": "frames/03/final/sprite.png",
                        "sha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da"
                    },
                    {
                        "baselineY": 889,
                        "bodyBandAreaRatioToF1": 0.859744,
                        "bodyBandBounds": [
                            343,
                            173,
                            689,
                            890
                        ],
                        "bodyBandCentroid": [
                            545.4835,
                            538.7144
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            23.6406,
                            7.6261
                        ],
                        "bodyBandHeight": 717,
                        "bodyBandHeightRatioToF1": 0.93238,
                        "bodyBandVisiblePixels": 170097,
                        "frame": 4,
                        "fullBounds": [
                            96,
                            173,
                            729,
                            890
                        ],
                        "fullCentroid": [
                            534.8149,
                            539.4677
                        ],
                        "path": "frames/04/final/sprite.png",
                        "sha256": "c157a47a2a8afbd048401b087161a9f08705fb3814c94f2d7700800d8cd2863e"
                    },
                    {
                        "baselineY": 890,
                        "bodyBandAreaRatioToF1": 0.86026,
                        "bodyBandBounds": [
                            343,
                            173,
                            689,
                            891
                        ],
                        "bodyBandCentroid": [
                            545.5129,
                            538.541
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            23.67,
                            7.4527
                        ],
                        "bodyBandHeight": 718,
                        "bodyBandHeightRatioToF1": 0.93368,
                        "bodyBandVisiblePixels": 170199,
                        "frame": 5,
                        "fullBounds": [
                            96,
                            173,
                            730,
                            891
                        ],
                        "fullCentroid": [
                            535.3209,
                            539.0641
                        ],
                        "path": "frames/05/final/sprite.png",
                        "sha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da"
                    },
                    {
                        "baselineY": 894,
                        "bodyBandAreaRatioToF1": 0.917451,
                        "bodyBandBounds": [
                            343,
                            151,
                            689,
                            895
                        ],
                        "bodyBandCentroid": [
                            538.9412,
                            529.975
                        ],
                        "bodyBandCentroidDeltaFromF1": [
                            17.0983,
                            -1.1133
                        ],
                        "bodyBandHeight": 744,
                        "bodyBandHeightRatioToF1": 0.96749,
                        "bodyBandVisiblePixels": 181514,
                        "frame": 6,
                        "fullBounds": [
                            83,
                            151,
                            726,
                            895
                        ],
                        "fullCentroid": [
                            526.2344,
                            526.7624
                        ],
                        "path": "frames/06/final/sprite.png",
                        "sha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf"
                    }
                ],
                "measurement": {
                    "bodyBandDerivedFrom": "F1 alpha centroid and 80% of F1 visible width",
                    "bodyBandX": [
                        343,
                        689
                    ],
                    "canvas": [
                        1024,
                        1024
                    ],
                    "onionColors": {
                        "background": "#10131d",
                        "comparisonOnly": "#24e0ee",
                        "f1Only": "#ff3399",
                        "shared": "#f6f1e7"
                    }
                },
                "runId": "ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14",
                "schemaVersion": "midgard-pixels.generation-onion-audit.v1",
                "summary": {
                    "baselineRangePx": 17,
                    "maximumAbsoluteBodyCentroidXDriftPx": 23.67,
                    "minimumBodyAreaRatioToF1": 0.859744,
                    "minimumBodyHeightRatioToF1": 0.93238,
                    "providerLateralDriftDetected": true,
                    "providerScaleDriftDetected": true
                }
            }
        }
    },
    "media": {
        "final/sprite.png": {
            "attachment_id": 4019,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/final/sprite.png",
            "sha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16",
            "bytes": 925904,
            "mime": "image/png"
        },
        "frames/01/final/sprite.png": {
            "attachment_id": 4020,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/final/sprite.png",
            "sha256": "e11d6f34e1f6b0d7c3d90c5d311b34536bc0cb9c9b371e798b4a644eab079b16",
            "bytes": 925904,
            "mime": "image/png"
        },
        "frames/01/raw/source.png": {
            "attachment_id": 4018,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/01/raw/source.png",
            "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
            "bytes": 952966,
            "mime": "image/png"
        },
        "frames/02/final/sprite.png": {
            "attachment_id": 4023,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/final/sprite.png",
            "sha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
            "bytes": 929224,
            "mime": "image/png"
        },
        "frames/02/raw/source.png": {
            "attachment_id": 4022,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/02/raw/source.png",
            "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
            "bytes": 960735,
            "mime": "image/png"
        },
        "frames/03/final/sprite.png": {
            "attachment_id": 4025,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/final/sprite.png",
            "sha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
            "bytes": 940809,
            "mime": "image/png"
        },
        "frames/03/raw/source.png": {
            "attachment_id": 4024,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/03/raw/source.png",
            "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
            "bytes": 970753,
            "mime": "image/png"
        },
        "frames/04/final/sprite.png": {
            "attachment_id": 4027,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/final/sprite.png",
            "sha256": "c157a47a2a8afbd048401b087161a9f08705fb3814c94f2d7700800d8cd2863e",
            "bytes": 945842,
            "mime": "image/png"
        },
        "frames/04/raw/source.png": {
            "attachment_id": 4026,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/04/raw/source.png",
            "sha256": "a966847779915ff1a49852dde1cd11bc4c4c815de3f39b02638d6f0242f6f560",
            "bytes": 966728,
            "mime": "image/png"
        },
        "frames/05/final/sprite.png": {
            "attachment_id": 4028,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/final/sprite.png",
            "sha256": "897f6bfd2b57239d29e5e364ad4914b7dcdf64c6890be959cd73cc11496784da",
            "bytes": 940809,
            "mime": "image/png"
        },
        "frames/05/raw/source.png": {
            "attachment_id": 4029,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/05/raw/source.png",
            "sha256": "652022c8be3e35638b95337db6321bbda6284f9e089bd399a3a1b6d21b53957e",
            "bytes": 970753,
            "mime": "image/png"
        },
        "frames/06/final/sprite.png": {
            "attachment_id": 4030,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/final/sprite.png",
            "sha256": "69e7dfc3ba26c384200b28a8ffa64d249a948c2ad0f31dea30697a5b72608acf",
            "bytes": 929224,
            "mime": "image/png"
        },
        "frames/06/raw/source.png": {
            "attachment_id": 4031,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/frames/06/raw/source.png",
            "sha256": "381b93c166049fc8e6d62e4c13407c91265b6df7f3dd22541675d94dfa47affa",
            "bytes": 960735,
            "mime": "image/png"
        },
        "preview/animation.gif": {
            "attachment_id": 4032,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/preview/animation.gif",
            "sha256": "99cbd92ce2d288d02648c2337f03c61f1043df07ae15dcdd730823343af902d1",
            "bytes": 506247,
            "mime": "image/gif"
        },
        "raw/source.png": {
            "attachment_id": 4021,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/raw/source.png",
            "sha256": "3c66753a1471e9ee7b3e658dd12e35a64fe3a700abfba0b6e2ccfd4b065f980e",
            "bytes": 952966,
            "mime": "image/png"
        },
        "review/onion-audit/adjacent-f01-f02.png": {
            "attachment_id": 4067,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/review/onion-audit/adjacent-f01-f02.png",
            "sha256": "0220cee7046b7594e6d51089b44a686fbe3be6d51e37ff9c38f62ab6f8383beb",
            "bytes": 9270,
            "mime": "image/png"
        },
        "review/onion-audit/adjacent-f02-f03.png": {
            "attachment_id": 4064,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/review/onion-audit/adjacent-f02-f03.png",
            "sha256": "fd4054c6794963f2f93be8a1262cd6b602944567e8aab0df7e933946fd040662",
            "bytes": 9527,
            "mime": "image/png"
        },
        "review/onion-audit/adjacent-f03-f04.png": {
            "attachment_id": 4065,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/review/onion-audit/adjacent-f03-f04.png",
            "sha256": "06148a902f735d2ff5c6a348c8c8462f5821a9fecafe0fb3d3f74cf435846971",
            "bytes": 9022,
            "mime": "image/png"
        },
        "review/onion-audit/adjacent-f04-f05.png": {
            "attachment_id": 4070,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/review/onion-audit/adjacent-f04-f05.png",
            "sha256": "2dbd5c1d3925603c0afa3f7aef54aceb0f39230b77858cdefbd6b76d39168f51",
            "bytes": 8972,
            "mime": "image/png"
        },
        "review/onion-audit/adjacent-f05-f06.png": {
            "attachment_id": 4068,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/review/onion-audit/adjacent-f05-f06.png",
            "sha256": "346cf32f12d374224ba0e95f9318aea70bb606d01abb1354c4ec426113053099",
            "bytes": 9569,
            "mime": "image/png"
        },
        "review/onion-audit/f1-onion-sheet.png": {
            "attachment_id": 4061,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/review/onion-audit/f1-onion-sheet.png",
            "sha256": "86cc24de88e15b726453fdab37522a2221aff411aa4e349565fa31df2120be73",
            "bytes": 9824,
            "mime": "image/png"
        },
        "review/onion-audit/f1-to-f02.png": {
            "attachment_id": 4069,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/review/onion-audit/f1-to-f02.png",
            "sha256": "0220cee7046b7594e6d51089b44a686fbe3be6d51e37ff9c38f62ab6f8383beb",
            "bytes": 9270,
            "mime": "image/png"
        },
        "review/onion-audit/f1-to-f03.png": {
            "attachment_id": 4062,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/review/onion-audit/f1-to-f03.png",
            "sha256": "25d7a29d7be3cfc748c0124de9d5764311b9d865c8688382c001c2917e4b1244",
            "bytes": 9268,
            "mime": "image/png"
        },
        "review/onion-audit/f1-to-f04.png": {
            "attachment_id": 4063,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/review/onion-audit/f1-to-f04.png",
            "sha256": "0df30e93b3b61008cd9fd85c1c621b1728fe7793c39feb0fb673c6a1c2ac63c4",
            "bytes": 9262,
            "mime": "image/png"
        },
        "review/onion-audit/f1-to-f05.png": {
            "attachment_id": 4066,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/review/onion-audit/f1-to-f05.png",
            "sha256": "25d7a29d7be3cfc748c0124de9d5764311b9d865c8688382c001c2917e4b1244",
            "bytes": 9268,
            "mime": "image/png"
        },
        "review/onion-audit/f1-to-f06.png": {
            "attachment_id": 4071,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T224240398079Z-selene-starward-mage-566f14/review/onion-audit/f1-to-f06.png",
            "sha256": "0220cee7046b7594e6d51089b44a686fbe3be6d51e37ff9c38f62ab6f8383beb",
            "bytes": 9270,
            "mime": "image/png"
        }
    },
    "importedAt": "2026-07-24T22:56:45+00:00",
    "archiveVisibility": "publish"
}

Astra Rune Mage · idle animation

Classes & Combat · 2026-07-24T22:38:42.740995Z · ID ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b

raw/source.png
Astra Rune Mage · idle animation
final/sprite.png
Astra Rune Mage · idle animation
frames/02/final/sprite.png
Astra Rune Mage · idle animation
frames/03/final/sprite.png
Astra Rune Mage · idle animation
frames/04/final/sprite.png
Astra Rune Mage · idle animation
frames/05/final/sprite.png
Astra Rune Mage · idle animation
frames/06/final/sprite.png
Astra Rune Mage · idle animation
preview/animation.gif
Astra Rune Mage · idle animation
CSS frame player · 6 frames
Additional output · frames/01/final/sprite.png
Astra Rune Mage · idle animation · frames/01/final/sprite.png
Additional output · frames/01/raw/source.png
Astra Rune Mage · idle animation · frames/01/raw/source.png
Additional output · frames/02/raw/source.png
Astra Rune Mage · idle animation · frames/02/raw/source.png
Additional output · frames/03/raw/source.png
Astra Rune Mage · idle animation · frames/03/raw/source.png
Additional output · frames/04/raw/source.png
Astra Rune Mage · idle animation · frames/04/raw/source.png
Additional output · frames/05/raw/source.png
Astra Rune Mage · idle animation · frames/05/raw/source.png
Additional output · frames/06/raw/source.png
Astra Rune Mage · idle animation · frames/06/raw/source.png
Full metadata
{
    "schemaVersion": "midgard-pixels.wordpress-generation.v1",
    "generationId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
    "runId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
    "title": "Astra Rune Mage · idle animation",
    "createdAt": "2026-07-24T22:38:42.740995Z",
    "request": "Create a white adult human woman academy mage in a midnight-blue robe with a small wooden wand held upright in her wand hand.",
    "category": "Classes & Combat",
    "categorySlug": "classes-combat",
    "class": "Astra Rune Mage",
    "gender": "woman",
    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
    "promptSha256": "beac92d1e6b27d4167785375a02c5ef2b7ce39fec2d2c1124b96d23bd2590874",
    "providerModel": "gpt-image-2-2026-04-21",
    "status": "animated-command-review-required",
    "sourcePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
    "manifest": {
        "animation": {
            "action": "idle",
            "anchorGuide": null,
            "anchorGuidePolicy": "none",
            "durationMs": 120,
            "f1ProviderModel": "gpt-image-2-2026-04-21",
            "frameCount": 6,
            "frames": [
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-prompt-txt",
                        "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-raw-source-png",
                        "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/final/sprite.png",
                    "finalSha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1",
                    "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01",
                    "identityBaselineY": 911,
                    "index": 1,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "settled identity pose; motion has not started",
                    "phaseProgressPercent": 0,
                    "playbackSourceFrameIndex": 1,
                    "posePolicy": "single-limb",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/prompt.txt",
                    "promptSha256": "beac92d1e6b27d4167785375a02c5ef2b7ce39fec2d2c1124b96d23bd2590874",
                    "providerCall": true,
                    "providerFrameIndex": 1,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                    "rawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                        }
                    ],
                    "sourceFrameIndex": 1,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-prompt-txt",
                        "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                        "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/final/sprite.png",
                    "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                    "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                    "identityBaselineY": 911,
                    "index": 2,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 1,
                    "parentRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                    "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 22,
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "single-limb",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/prompt.txt",
                    "promptSha256": "68917e64e4c3865299ab75b560e68c1edea501491d586e03357de624dfa18a77",
                    "providerCall": true,
                    "providerFrameIndex": 2,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                    "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                    "referenceSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                            "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                        }
                    ],
                    "sourceFrameIndex": 2,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-prompt-txt",
                        "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                        "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/final/sprite.png",
                    "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                    "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                    "identityBaselineY": 911,
                    "index": 3,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 2,
                    "parentRawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 44,
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "single-limb",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/prompt.txt",
                    "promptSha256": "144468e4fbe8db3d806f09cb214c1737db3a6c7ed4825dc94e3d5dbcce827a1b",
                    "providerCall": true,
                    "providerFrameIndex": 3,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                    "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                    "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                            "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                            "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                        }
                    ],
                    "sourceFrameIndex": 3,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-prompt-txt",
                        "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-raw-source-png",
                        "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/final/sprite.png",
                    "finalSha256": "537fb2f16b9f586d587a1a8411950eaa81ec6b7276bb74f32226a54b8fb6ba5f",
                    "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04",
                    "identityBaselineY": 911,
                    "index": 4,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 3,
                    "parentRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                    "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 100,
                    "playbackSourceFrameIndex": 4,
                    "posePolicy": "single-limb",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/prompt.txt",
                    "promptSha256": "c9a2e7696cc1b467376571cc95a79d2e52de1d17f2dd841081bf1b6faaacbd85",
                    "providerCall": true,
                    "providerFrameIndex": 4,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/raw/source.png",
                    "rawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                    "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                            "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                            "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                        }
                    ],
                    "sourceFrameIndex": 4,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-prompt-txt",
                        "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-raw-source-png",
                        "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-receipt-json"
                    },
                    "byteIdentityVerified": true,
                    "durationMs": 120,
                    "exactByteReuse": true,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/final/sprite.png",
                    "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                    "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05",
                    "identityBaselineY": 911,
                    "index": 5,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 44,
                    "playbackPreviousFrameIndex": 4,
                    "playbackPreviousRawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "single-limb",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/prompt.txt",
                    "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                    "providerCall": false,
                    "providerFrameIndex": 3,
                    "providerGenerated": false,
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/raw/source.png",
                    "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                    "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                    "references": [
                        {
                            "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                            "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                        }
                    ],
                    "sourceFinalArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                    "sourceFrameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                    "sourceFrameIndex": 3,
                    "sourceProvided": false,
                    "sourceRawArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png"
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-prompt-txt",
                        "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-raw-source-png",
                        "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-receipt-json"
                    },
                    "byteIdentityVerified": true,
                    "durationMs": 120,
                    "exactByteReuse": true,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/final/sprite.png",
                    "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                    "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06",
                    "identityBaselineY": 911,
                    "index": 6,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 22,
                    "playbackPreviousFrameIndex": 5,
                    "playbackPreviousRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "single-limb",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/prompt.txt",
                    "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                    "providerCall": false,
                    "providerFrameIndex": 2,
                    "providerGenerated": false,
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/raw/source.png",
                    "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                    "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                    "references": [
                        {
                            "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                            "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                        }
                    ],
                    "sourceFinalArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                    "sourceFrameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                    "sourceFrameIndex": 2,
                    "sourceProvided": false,
                    "sourceRawArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png"
                }
            ],
            "generationId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
            "ideaIdleBehaviorDeferred": null,
            "identityBaselineY": 911,
            "identityPolicy": "immutable-f1-raw-master",
            "idleBehavior": "Only the wand, wand hand, forearm, and upper arm move. Start with the wand raised vertically, lower it through small adjacent phases, and finish pointing screen-left at an unseen target. Freeze every other body, clothing, hair, face, accessory, foot, background, and camera pixel.",
            "idleBehaviorSource": "explicit-command",
            "lockedParts": [
                "recognizable face and identity",
                "costume and equipment design",
                "fine motifs, trim, fasteners, gems, and prop markings",
                "palette family and pixel rendering language",
                "body proportions and overall scale band",
                "screen-left three-quarter facing",
                "1024x1024 canvas and flat #ff00ff background"
            ],
            "loop": true,
            "loopMode": "ping-pong",
            "movingParts": [
                "whole pose silhouette",
                "center of mass",
                "torso and hips",
                "both arms and hands",
                "knees, legs, boots, and stance",
                "hair and sleeves",
                "coat tails, dress, cape, and hem",
                "held equipment following the hands"
            ],
            "parentPolicy": "f1-plus-previous",
            "phaseProgressPercent": [
                0,
                22,
                44,
                100,
                44,
                22
            ],
            "phases": [
                "settled identity pose; motion has not started",
                "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
            ],
            "playbackSourceFrameIndices": [
                1,
                2,
                3,
                4,
                3,
                2
            ],
            "posePolicy": "single-limb",
            "preview": {
                "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--preview-animation-gif",
                "format": "derived-gif-preview",
                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/preview/animation.gif",
                "sha256": "3644b284e0f815de56aa13537ea5bf66ea7b1ecf97014fcfb72903ea55423aa4",
                "sourcePolicy": "final-frame-pngs-unchanged"
            },
            "providerCallCount": 4,
            "providerFrameCount": 4,
            "providerFrames": [
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-prompt-txt",
                        "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-raw-source-png",
                        "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/final/sprite.png",
                    "finalSha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1",
                    "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01",
                    "identityBaselineY": 911,
                    "index": 1,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "settled identity pose; motion has not started",
                    "phaseProgressPercent": 0,
                    "playbackSourceFrameIndex": 1,
                    "posePolicy": "single-limb",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/prompt.txt",
                    "promptSha256": "beac92d1e6b27d4167785375a02c5ef2b7ce39fec2d2c1124b96d23bd2590874",
                    "providerCall": true,
                    "providerFrameIndex": 1,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                    "rawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                        }
                    ],
                    "sourceFrameIndex": 1,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-prompt-txt",
                        "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                        "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/final/sprite.png",
                    "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                    "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                    "identityBaselineY": 911,
                    "index": 2,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 1,
                    "parentRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                    "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 22,
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "single-limb",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/prompt.txt",
                    "promptSha256": "68917e64e4c3865299ab75b560e68c1edea501491d586e03357de624dfa18a77",
                    "providerCall": true,
                    "providerFrameIndex": 2,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                    "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                    "referenceSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                            "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                        }
                    ],
                    "sourceFrameIndex": 2,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-prompt-txt",
                        "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                        "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/final/sprite.png",
                    "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                    "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                    "identityBaselineY": 911,
                    "index": 3,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 2,
                    "parentRawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 44,
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "single-limb",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/prompt.txt",
                    "promptSha256": "144468e4fbe8db3d806f09cb214c1737db3a6c7ed4825dc94e3d5dbcce827a1b",
                    "providerCall": true,
                    "providerFrameIndex": 3,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                    "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                    "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                            "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                            "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                        }
                    ],
                    "sourceFrameIndex": 3,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-prompt-txt",
                        "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-raw-source-png",
                        "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/final/sprite.png",
                    "finalSha256": "537fb2f16b9f586d587a1a8411950eaa81ec6b7276bb74f32226a54b8fb6ba5f",
                    "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04",
                    "identityBaselineY": 911,
                    "index": 4,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 3,
                    "parentRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                    "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 100,
                    "playbackSourceFrameIndex": 4,
                    "posePolicy": "single-limb",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/prompt.txt",
                    "promptSha256": "c9a2e7696cc1b467376571cc95a79d2e52de1d17f2dd841081bf1b6faaacbd85",
                    "providerCall": true,
                    "providerFrameIndex": 4,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/raw/source.png",
                    "rawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                    "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                            "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                            "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                        }
                    ],
                    "sourceFrameIndex": 4,
                    "sourceProvided": false
                }
            ],
            "providerModel": "gpt-image-2-2026-04-21",
            "rootPolicy": {
                "allowedCorrection": "lossless whole-canvas integer translation only",
                "exactProviderRootRequired": false,
                "measuredAfterGeneration": true,
                "poseDependentHorizontalFootMotionPreserved": true,
                "providerConstraint": "at least one boot sole within 16px of F1 baseline"
            },
            "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
            "sourceFrameCount": 4,
            "sourceFrames": [
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-prompt-txt",
                        "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-raw-source-png",
                        "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/final/sprite.png",
                    "finalSha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1",
                    "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01",
                    "identityBaselineY": 911,
                    "index": 1,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "settled identity pose; motion has not started",
                    "phaseProgressPercent": 0,
                    "playbackSourceFrameIndex": 1,
                    "posePolicy": "single-limb",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/prompt.txt",
                    "promptSha256": "beac92d1e6b27d4167785375a02c5ef2b7ce39fec2d2c1124b96d23bd2590874",
                    "providerCall": true,
                    "providerFrameIndex": 1,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                    "rawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                        }
                    ],
                    "sourceFrameIndex": 1,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-prompt-txt",
                        "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                        "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/final/sprite.png",
                    "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                    "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                    "identityBaselineY": 911,
                    "index": 2,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 1,
                    "parentRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                    "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 22,
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "single-limb",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/prompt.txt",
                    "promptSha256": "68917e64e4c3865299ab75b560e68c1edea501491d586e03357de624dfa18a77",
                    "providerCall": true,
                    "providerFrameIndex": 2,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                    "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                    "referenceSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                            "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                        }
                    ],
                    "sourceFrameIndex": 2,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-prompt-txt",
                        "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                        "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/final/sprite.png",
                    "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                    "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                    "identityBaselineY": 911,
                    "index": 3,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 2,
                    "parentRawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 44,
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "single-limb",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/prompt.txt",
                    "promptSha256": "144468e4fbe8db3d806f09cb214c1737db3a6c7ed4825dc94e3d5dbcce827a1b",
                    "providerCall": true,
                    "providerFrameIndex": 3,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                    "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                    "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                            "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                            "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                        }
                    ],
                    "sourceFrameIndex": 3,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-prompt-txt",
                        "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-raw-source-png",
                        "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/final/sprite.png",
                    "finalSha256": "537fb2f16b9f586d587a1a8411950eaa81ec6b7276bb74f32226a54b8fb6ba5f",
                    "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04",
                    "identityBaselineY": 911,
                    "index": 4,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 3,
                    "parentRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                    "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 100,
                    "playbackSourceFrameIndex": 4,
                    "posePolicy": "single-limb",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/prompt.txt",
                    "promptSha256": "c9a2e7696cc1b467376571cc95a79d2e52de1d17f2dd841081bf1b6faaacbd85",
                    "providerCall": true,
                    "providerFrameIndex": 4,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/raw/source.png",
                    "rawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                    "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                            "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                            "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                        }
                    ],
                    "sourceFrameIndex": 4,
                    "sourceProvided": false
                }
            ],
            "stylePolicy": "elder-a-master"
        },
        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--manifest-json",
        "artifactIndex": {
            "artifactCount": 31,
            "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--artifact-index-json",
            "exclusions": [
                "manifest.json",
                "artifact-index.json"
            ],
            "path": "artifact-index.json",
            "sha256": "079129afc8bbea9305aec0b817fb775ef8138e49b8d30ee3305234a82defb1e7"
        },
        "artifacts": {
            "animation": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--animation-json",
            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--final-sprite-png",
            "generationId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
            "manifest": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--manifest-json",
            "preview": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--preview-animation-gif",
            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--prompt-txt",
            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--raw-source-png",
            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--receipt-json",
            "request": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--request-json"
        },
        "category": "Classes & Combat",
        "categorySlug": "classes-combat",
        "class": "Astra Rune Mage",
        "classSource": "request-title",
        "createdAt": "2026-07-24T22:38:42.740995Z",
        "final": "final/sprite.png",
        "finalArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--final-sprite-png",
        "finalSha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1",
        "frames": [
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-prompt-txt",
                    "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-raw-source-png",
                    "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/final/sprite.png",
                "finalSha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1",
                "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01",
                "identityBaselineY": 911,
                "index": 1,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "single-limb",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/prompt.txt",
                "promptSha256": "beac92d1e6b27d4167785375a02c5ef2b7ce39fec2d2c1124b96d23bd2590874",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                "rawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "sourceFrameIndex": 1,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-prompt-txt",
                    "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                    "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/final/sprite.png",
                "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                "identityBaselineY": 911,
                "index": 2,
                "loopMode": "ping-pong",
                "parentFrameIndex": 1,
                "parentRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "single-limb",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/prompt.txt",
                "promptSha256": "68917e64e4c3865299ab75b560e68c1edea501491d586e03357de624dfa18a77",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                "referenceSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                    }
                ],
                "sourceFrameIndex": 2,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-prompt-txt",
                    "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                    "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/final/sprite.png",
                "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                "identityBaselineY": 911,
                "index": 3,
                "loopMode": "ping-pong",
                "parentFrameIndex": 2,
                "parentRawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "single-limb",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/prompt.txt",
                "promptSha256": "144468e4fbe8db3d806f09cb214c1737db3a6c7ed4825dc94e3d5dbcce827a1b",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                    }
                ],
                "sourceFrameIndex": 3,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-prompt-txt",
                    "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-raw-source-png",
                    "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/final/sprite.png",
                "finalSha256": "537fb2f16b9f586d587a1a8411950eaa81ec6b7276bb74f32226a54b8fb6ba5f",
                "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04",
                "identityBaselineY": 911,
                "index": 4,
                "loopMode": "ping-pong",
                "parentFrameIndex": 3,
                "parentRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "single-limb",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/prompt.txt",
                "promptSha256": "c9a2e7696cc1b467376571cc95a79d2e52de1d17f2dd841081bf1b6faaacbd85",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/raw/source.png",
                "rawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                    }
                ],
                "sourceFrameIndex": 4,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-prompt-txt",
                    "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-raw-source-png",
                    "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-receipt-json"
                },
                "byteIdentityVerified": true,
                "durationMs": 120,
                "exactByteReuse": true,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/final/sprite.png",
                "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05",
                "identityBaselineY": 911,
                "index": 5,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackPreviousFrameIndex": 4,
                "playbackPreviousRawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                "playbackSourceFrameIndex": 3,
                "posePolicy": "single-limb",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/prompt.txt",
                "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                "providerCall": false,
                "providerFrameIndex": 3,
                "providerGenerated": false,
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/raw/source.png",
                "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                    }
                ],
                "sourceFinalArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                "sourceFrameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                "sourceFrameIndex": 3,
                "sourceProvided": false,
                "sourceRawArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png"
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-prompt-txt",
                    "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-raw-source-png",
                    "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-receipt-json"
                },
                "byteIdentityVerified": true,
                "durationMs": 120,
                "exactByteReuse": true,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/final/sprite.png",
                "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06",
                "identityBaselineY": 911,
                "index": 6,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackPreviousFrameIndex": 5,
                "playbackPreviousRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                "playbackSourceFrameIndex": 2,
                "posePolicy": "single-limb",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/prompt.txt",
                "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                "providerCall": false,
                "providerFrameIndex": 2,
                "providerGenerated": false,
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/raw/source.png",
                "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                    }
                ],
                "sourceFinalArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                "sourceFrameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                "sourceFrameIndex": 2,
                "sourceProvided": false,
                "sourceRawArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png"
            }
        ],
        "gender": "woman",
        "genderSource": "request-text",
        "generation": {
            "anchorGuidePolicy": "none",
            "animationImageCount": 3,
            "animationModel": "gpt-image-2-2026-04-21",
            "attemptedCalls": 4,
            "completedCalls": 4,
            "f1ImageCount": 1,
            "f1Model": "gpt-image-2-2026-04-21",
            "imageCount": 4,
            "inputFidelity": "unsupported-omitted",
            "inputFidelityRequested": false,
            "loopMode": "ping-pong",
            "maximumReferenceCount": 2,
            "model": "gpt-image-2-2026-04-21",
            "operation": "chained-image-edit-plus-exact-ping-pong-reuse",
            "playbackFrameCount": 6,
            "playbackSourceFrameIndices": [
                1,
                2,
                3,
                4,
                3,
                2
            ],
            "posePolicy": "single-limb",
            "providerFrameCount": 4,
            "quality": "medium",
            "referenceCountsBySourceFrame": {
                "1": 1,
                "2": 1,
                "3": 2,
                "4": 2
            },
            "referenceOrderPolicy": [
                "f1RawIdentity",
                "previousRawOpaque"
            ],
            "size": "1024x1024",
            "sourceFrameCount": 4,
            "tool": "openai-image"
        },
        "generationId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
        "ideaId": null,
        "ideaSource": null,
        "ideaTitle": null,
        "postProcessing": {
            "alphaOnly": true,
            "despilled": false,
            "feathered": false,
            "filtered": false,
            "paletteReduced": false,
            "resampled": false,
            "resized": false,
            "translated": false
        },
        "prompt": "prompt.txt",
        "promptSha256": "beac92d1e6b27d4167785375a02c5ef2b7ce39fec2d2c1124b96d23bd2590874",
        "providerCallCount": 4,
        "providerFrames": [
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-prompt-txt",
                    "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-raw-source-png",
                    "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/final/sprite.png",
                "finalSha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1",
                "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01",
                "identityBaselineY": 911,
                "index": 1,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "single-limb",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/prompt.txt",
                "promptSha256": "beac92d1e6b27d4167785375a02c5ef2b7ce39fec2d2c1124b96d23bd2590874",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                "rawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "sourceFrameIndex": 1,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-prompt-txt",
                    "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                    "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/final/sprite.png",
                "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                "identityBaselineY": 911,
                "index": 2,
                "loopMode": "ping-pong",
                "parentFrameIndex": 1,
                "parentRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "single-limb",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/prompt.txt",
                "promptSha256": "68917e64e4c3865299ab75b560e68c1edea501491d586e03357de624dfa18a77",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                "referenceSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                    }
                ],
                "sourceFrameIndex": 2,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-prompt-txt",
                    "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                    "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/final/sprite.png",
                "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                "identityBaselineY": 911,
                "index": 3,
                "loopMode": "ping-pong",
                "parentFrameIndex": 2,
                "parentRawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "single-limb",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/prompt.txt",
                "promptSha256": "144468e4fbe8db3d806f09cb214c1737db3a6c7ed4825dc94e3d5dbcce827a1b",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                    }
                ],
                "sourceFrameIndex": 3,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-prompt-txt",
                    "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-raw-source-png",
                    "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/final/sprite.png",
                "finalSha256": "537fb2f16b9f586d587a1a8411950eaa81ec6b7276bb74f32226a54b8fb6ba5f",
                "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04",
                "identityBaselineY": 911,
                "index": 4,
                "loopMode": "ping-pong",
                "parentFrameIndex": 3,
                "parentRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "single-limb",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/prompt.txt",
                "promptSha256": "c9a2e7696cc1b467376571cc95a79d2e52de1d17f2dd841081bf1b6faaacbd85",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/raw/source.png",
                "rawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                    }
                ],
                "sourceFrameIndex": 4,
                "sourceProvided": false
            }
        ],
        "raw": "raw/source.png",
        "rawArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--raw-source-png",
        "rawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
        "representative": "final/sprite.png",
        "runId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
        "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
        "sourceFrames": [
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-prompt-txt",
                    "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-raw-source-png",
                    "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/final/sprite.png",
                "finalSha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1",
                "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01",
                "identityBaselineY": 911,
                "index": 1,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "single-limb",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/prompt.txt",
                "promptSha256": "beac92d1e6b27d4167785375a02c5ef2b7ce39fec2d2c1124b96d23bd2590874",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                "rawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "sourceFrameIndex": 1,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-prompt-txt",
                    "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                    "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/final/sprite.png",
                "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                "identityBaselineY": 911,
                "index": 2,
                "loopMode": "ping-pong",
                "parentFrameIndex": 1,
                "parentRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "single-limb",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/prompt.txt",
                "promptSha256": "68917e64e4c3865299ab75b560e68c1edea501491d586e03357de624dfa18a77",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                "referenceSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                    }
                ],
                "sourceFrameIndex": 2,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-prompt-txt",
                    "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                    "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/final/sprite.png",
                "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                "identityBaselineY": 911,
                "index": 3,
                "loopMode": "ping-pong",
                "parentFrameIndex": 2,
                "parentRawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "single-limb",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/prompt.txt",
                "promptSha256": "144468e4fbe8db3d806f09cb214c1737db3a6c7ed4825dc94e3d5dbcce827a1b",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                    }
                ],
                "sourceFrameIndex": 3,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-prompt-txt",
                    "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-raw-source-png",
                    "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/final/sprite.png",
                "finalSha256": "537fb2f16b9f586d587a1a8411950eaa81ec6b7276bb74f32226a54b8fb6ba5f",
                "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04",
                "identityBaselineY": 911,
                "index": 4,
                "loopMode": "ping-pong",
                "parentFrameIndex": 3,
                "parentRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "single-limb",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/prompt.txt",
                "promptSha256": "c9a2e7696cc1b467376571cc95a79d2e52de1d17f2dd841081bf1b6faaacbd85",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/raw/source.png",
                "rawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                    }
                ],
                "sourceFrameIndex": 4,
                "sourceProvided": false
            }
        ],
        "sourceGenerationId": null,
        "status": "animated-command-review-required",
        "summary": "f1-plus-previous 6-frame idle ping-pong animation from 4 provider-generated frame(s); every playback frame preserves raw and alpha-only final evidence.",
        "title": "ragnarok-create · Astra Rune Mage · idle animation",
        "userRequest": "Create a white adult human woman academy mage in a midnight-blue robe with a small wooden wand held upright in her wand hand."
    },
    "jsonArtifacts": {
        "animation.json": {
            "sha256": "b41f6b14b0e41f6252e5da8779eb6988ab486e00dfd6c25d892208359601ef01",
            "bytes": 62388,
            "value": {
                "action": "idle",
                "anchorGuide": null,
                "anchorGuidePolicy": "none",
                "durationMs": 120,
                "f1ProviderModel": "gpt-image-2-2026-04-21",
                "frameCount": 6,
                "frames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/final/sprite.png",
                        "finalSha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01",
                        "identityBaselineY": 911,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/prompt.txt",
                        "promptSha256": "beac92d1e6b27d4167785375a02c5ef2b7ce39fec2d2c1124b96d23bd2590874",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "rawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/final/sprite.png",
                        "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                        "identityBaselineY": 911,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/prompt.txt",
                        "promptSha256": "68917e64e4c3865299ab75b560e68c1edea501491d586e03357de624dfa18a77",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "referenceSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/final/sprite.png",
                        "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                        "identityBaselineY": 911,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/prompt.txt",
                        "promptSha256": "144468e4fbe8db3d806f09cb214c1737db3a6c7ed4825dc94e3d5dbcce827a1b",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                                "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/final/sprite.png",
                        "finalSha256": "537fb2f16b9f586d587a1a8411950eaa81ec6b7276bb74f32226a54b8fb6ba5f",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04",
                        "identityBaselineY": 911,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/prompt.txt",
                        "promptSha256": "c9a2e7696cc1b467376571cc95a79d2e52de1d17f2dd841081bf1b6faaacbd85",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/raw/source.png",
                        "rawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                                "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/final/sprite.png",
                        "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05",
                        "identityBaselineY": 911,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackPreviousFrameIndex": 4,
                        "playbackPreviousRawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/prompt.txt",
                        "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                        "providerCall": false,
                        "providerFrameIndex": 3,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/raw/source.png",
                        "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                                "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                        "sourceFrameIndex": 3,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/final/sprite.png",
                        "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06",
                        "identityBaselineY": 911,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackPreviousFrameIndex": 5,
                        "playbackPreviousRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/prompt.txt",
                        "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                        "providerCall": false,
                        "providerFrameIndex": 2,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/raw/source.png",
                        "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                                "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                        "sourceFrameIndex": 2,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png"
                    }
                ],
                "generationId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
                "ideaIdleBehaviorDeferred": null,
                "identityBaselineY": 911,
                "identityPolicy": "immutable-f1-raw-master",
                "idleBehavior": "Only the wand, wand hand, forearm, and upper arm move. Start with the wand raised vertically, lower it through small adjacent phases, and finish pointing screen-left at an unseen target. Freeze every other body, clothing, hair, face, accessory, foot, background, and camera pixel.",
                "idleBehaviorSource": "explicit-command",
                "lockedParts": [
                    "recognizable face and identity",
                    "costume and equipment design",
                    "fine motifs, trim, fasteners, gems, and prop markings",
                    "palette family and pixel rendering language",
                    "body proportions and overall scale band",
                    "screen-left three-quarter facing",
                    "1024x1024 canvas and flat #ff00ff background"
                ],
                "loop": true,
                "loopMode": "ping-pong",
                "movingParts": [
                    "whole pose silhouette",
                    "center of mass",
                    "torso and hips",
                    "both arms and hands",
                    "knees, legs, boots, and stance",
                    "hair and sleeves",
                    "coat tails, dress, cape, and hem",
                    "held equipment following the hands"
                ],
                "parentPolicy": "f1-plus-previous",
                "phaseProgressPercent": [
                    0,
                    22,
                    44,
                    100,
                    44,
                    22
                ],
                "phases": [
                    "settled identity pose; motion has not started",
                    "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
                ],
                "playbackSourceFrameIndices": [
                    1,
                    2,
                    3,
                    4,
                    3,
                    2
                ],
                "posePolicy": "single-limb",
                "preview": {
                    "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--preview-animation-gif",
                    "format": "derived-gif-preview",
                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/preview/animation.gif",
                    "sha256": "3644b284e0f815de56aa13537ea5bf66ea7b1ecf97014fcfb72903ea55423aa4",
                    "sourcePolicy": "final-frame-pngs-unchanged"
                },
                "providerCallCount": 4,
                "providerFrameCount": 4,
                "providerFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/final/sprite.png",
                        "finalSha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01",
                        "identityBaselineY": 911,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/prompt.txt",
                        "promptSha256": "beac92d1e6b27d4167785375a02c5ef2b7ce39fec2d2c1124b96d23bd2590874",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "rawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/final/sprite.png",
                        "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                        "identityBaselineY": 911,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/prompt.txt",
                        "promptSha256": "68917e64e4c3865299ab75b560e68c1edea501491d586e03357de624dfa18a77",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "referenceSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/final/sprite.png",
                        "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                        "identityBaselineY": 911,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/prompt.txt",
                        "promptSha256": "144468e4fbe8db3d806f09cb214c1737db3a6c7ed4825dc94e3d5dbcce827a1b",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                                "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/final/sprite.png",
                        "finalSha256": "537fb2f16b9f586d587a1a8411950eaa81ec6b7276bb74f32226a54b8fb6ba5f",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04",
                        "identityBaselineY": 911,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/prompt.txt",
                        "promptSha256": "c9a2e7696cc1b467376571cc95a79d2e52de1d17f2dd841081bf1b6faaacbd85",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/raw/source.png",
                        "rawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                                "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "providerModel": "gpt-image-2-2026-04-21",
                "rootPolicy": {
                    "allowedCorrection": "lossless whole-canvas integer translation only",
                    "exactProviderRootRequired": false,
                    "measuredAfterGeneration": true,
                    "poseDependentHorizontalFootMotionPreserved": true,
                    "providerConstraint": "at least one boot sole within 16px of F1 baseline"
                },
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameCount": 4,
                "sourceFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/final/sprite.png",
                        "finalSha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01",
                        "identityBaselineY": 911,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/prompt.txt",
                        "promptSha256": "beac92d1e6b27d4167785375a02c5ef2b7ce39fec2d2c1124b96d23bd2590874",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "rawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/final/sprite.png",
                        "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                        "identityBaselineY": 911,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/prompt.txt",
                        "promptSha256": "68917e64e4c3865299ab75b560e68c1edea501491d586e03357de624dfa18a77",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "referenceSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/final/sprite.png",
                        "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                        "identityBaselineY": 911,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/prompt.txt",
                        "promptSha256": "144468e4fbe8db3d806f09cb214c1737db3a6c7ed4825dc94e3d5dbcce827a1b",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                                "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/final/sprite.png",
                        "finalSha256": "537fb2f16b9f586d587a1a8411950eaa81ec6b7276bb74f32226a54b8fb6ba5f",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04",
                        "identityBaselineY": 911,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/prompt.txt",
                        "promptSha256": "c9a2e7696cc1b467376571cc95a79d2e52de1d17f2dd841081bf1b6faaacbd85",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/raw/source.png",
                        "rawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                                "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "stylePolicy": "elder-a-master"
            }
        },
        "artifact-index.json": {
            "sha256": "079129afc8bbea9305aec0b817fb775ef8138e49b8d30ee3305234a82defb1e7",
            "bytes": 8497,
            "value": {
                "artifactCount": 31,
                "artifacts": [
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--animation-json",
                        "bytes": 62388,
                        "path": "animation.json",
                        "sha256": "b41f6b14b0e41f6252e5da8779eb6988ab486e00dfd6c25d892208359601ef01"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--final-sprite-png",
                        "bytes": 929278,
                        "path": "final/sprite.png",
                        "sha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-final-sprite-png",
                        "bytes": 929278,
                        "path": "frames/01/final/sprite.png",
                        "sha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-prompt-txt",
                        "bytes": 1361,
                        "path": "frames/01/prompt.txt",
                        "sha256": "beac92d1e6b27d4167785375a02c5ef2b7ce39fec2d2c1124b96d23bd2590874"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-raw-source-png",
                        "bytes": 951144,
                        "path": "frames/01/raw/source.png",
                        "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-receipt-json",
                        "bytes": 4640,
                        "path": "frames/01/receipt.json",
                        "sha256": "7a7766ca8a003dce97d3680f128a5121bf9a53191f8c3f9e7a944920fd3b6537"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                        "bytes": 948942,
                        "path": "frames/02/final/sprite.png",
                        "sha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-prompt-txt",
                        "bytes": 3905,
                        "path": "frames/02/prompt.txt",
                        "sha256": "68917e64e4c3865299ab75b560e68c1edea501491d586e03357de624dfa18a77"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                        "bytes": 963356,
                        "path": "frames/02/raw/source.png",
                        "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-receipt-json",
                        "bytes": 5536,
                        "path": "frames/02/receipt.json",
                        "sha256": "b1991e5c5702cda4c9320abd58caa9903f2dc3c3233799d55edb16b1fbbba709"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                        "bytes": 951090,
                        "path": "frames/03/final/sprite.png",
                        "sha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-prompt-txt",
                        "bytes": 4041,
                        "path": "frames/03/prompt.txt",
                        "sha256": "144468e4fbe8db3d806f09cb214c1737db3a6c7ed4825dc94e3d5dbcce827a1b"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                        "bytes": 965943,
                        "path": "frames/03/raw/source.png",
                        "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-receipt-json",
                        "bytes": 5720,
                        "path": "frames/03/receipt.json",
                        "sha256": "00d8ccab36d958ade93eb1afb8c84a66b80d1d3c3757b4096935520b3dd3d773"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-final-sprite-png",
                        "bytes": 972002,
                        "path": "frames/04/final/sprite.png",
                        "sha256": "537fb2f16b9f586d587a1a8411950eaa81ec6b7276bb74f32226a54b8fb6ba5f"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-prompt-txt",
                        "bytes": 4042,
                        "path": "frames/04/prompt.txt",
                        "sha256": "c9a2e7696cc1b467376571cc95a79d2e52de1d17f2dd841081bf1b6faaacbd85"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-raw-source-png",
                        "bytes": 983724,
                        "path": "frames/04/raw/source.png",
                        "sha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-receipt-json",
                        "bytes": 5647,
                        "path": "frames/04/receipt.json",
                        "sha256": "d05804f922b657057f310b1e785d03969ee3d81ec0a5b3f75bfefd7d326f4157"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-final-sprite-png",
                        "bytes": 951090,
                        "path": "frames/05/final/sprite.png",
                        "sha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-prompt-txt",
                        "bytes": 125,
                        "path": "frames/05/prompt.txt",
                        "sha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-raw-source-png",
                        "bytes": 965943,
                        "path": "frames/05/raw/source.png",
                        "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-receipt-json",
                        "bytes": 4698,
                        "path": "frames/05/receipt.json",
                        "sha256": "22e2e4f879e8081446eb04a0ec43b1a85a7e6abb2413506e65b89ebda12ec32c"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-final-sprite-png",
                        "bytes": 948942,
                        "path": "frames/06/final/sprite.png",
                        "sha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-prompt-txt",
                        "bytes": 125,
                        "path": "frames/06/prompt.txt",
                        "sha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-raw-source-png",
                        "bytes": 963356,
                        "path": "frames/06/raw/source.png",
                        "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-receipt-json",
                        "bytes": 5287,
                        "path": "frames/06/receipt.json",
                        "sha256": "51bc64cecc506dad2b012f9217e0485fe704b20eeb7dc435a5781305220dc943"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--preview-animation-gif",
                        "bytes": 551635,
                        "path": "preview/animation.gif",
                        "sha256": "3644b284e0f815de56aa13537ea5bf66ea7b1ecf97014fcfb72903ea55423aa4"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--prompt-txt",
                        "bytes": 1361,
                        "path": "prompt.txt",
                        "sha256": "beac92d1e6b27d4167785375a02c5ef2b7ce39fec2d2c1124b96d23bd2590874"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--raw-source-png",
                        "bytes": 951144,
                        "path": "raw/source.png",
                        "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--receipt-json",
                        "bytes": 56123,
                        "path": "receipt.json",
                        "sha256": "fabc086c8ea0360cc34a6ff903a6e3b4c2fe4f3ca11f7e7d192c131eddb2c71e"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--request-json",
                        "bytes": 64991,
                        "path": "request.json",
                        "sha256": "9ace3e683cfb457357084515ebb13003c9942507a3010f1478cd2ee40e90a77b"
                    }
                ],
                "excludedSelfReferentialFiles": [
                    "manifest.json",
                    "artifact-index.json"
                ],
                "generationId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
                "schemaVersion": "midgard-pixels.ragnarok-artifact-index.v1"
            }
        },
        "frames/01/receipt.json": {
            "sha256": "7a7766ca8a003dce97d3680f128a5121bf9a53191f8c3f9e7a944920fd3b6537",
            "bytes": 4640,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 34.72751070837067,
                "borderColorMedian": [
                    245,
                    5,
                    236
                ],
                "borderConnectedChromaPixels": 846085,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 581,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Astra Rune Mage",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:38:42.740995Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 522,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 635,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 508,
                "enclosedComponentCount": 6,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-final-sprite-png",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01",
                "frameIndex": 1,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 911,
                "identityRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                "inputSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                "keyCoreBorderConnectedPixels": 846085,
                "keyCorePixels": 846593,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.97741770980699,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1",
                "paletteReduced": false,
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "single-limb",
                "preservedInternalChromaCandidatePixels": 1085,
                "preservedSmallKeyColorPixels": 0,
                "promptArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "removedChromaPixels": 848331,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman academy mage in a midnight-blue robe with a small wooden wand held upright in her wand hand.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 1,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/02/receipt.json": {
            "sha256": "b1991e5c5702cda4c9320abd58caa9903f2dc3c3233799d55edb16b1fbbba709",
            "bytes": 5536,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 33.60059523282288,
                "borderColorMedian": [
                    239,
                    6,
                    227
                ],
                "borderConnectedChromaPixels": 839737,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 718,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Astra Rune Mage",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:38:42.740995Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 554,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 690,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 559,
                "enclosedComponentCount": 6,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                "frameIndex": 2,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 911,
                "identityRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                "inputSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                "keyCoreBorderConnectedPixels": 839737,
                "keyCorePixels": 840296,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.99032227852163,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                "paletteReduced": false,
                "parentFrameIndex": 1,
                "parentRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "single-limb",
                "preservedInternalChromaCandidatePixels": 374,
                "preservedSmallKeyColorPixels": 0,
                "promptArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                "referenceSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                    }
                ],
                "removedChromaPixels": 842258,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman academy mage in a midnight-blue robe with a small wooden wand held upright in her wand hand.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 2,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/03/receipt.json": {
            "sha256": "00d8ccab36d958ade93eb1afb8c84a66b80d1d3c3757b4096935520b3dd3d773",
            "bytes": 5720,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 35.749125863438955,
                "borderColorMedian": [
                    233,
                    5,
                    224
                ],
                "borderConnectedChromaPixels": 840065,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 605,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Astra Rune Mage",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:38:42.740995Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 526,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 596,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 548,
                "enclosedComponentCount": 6,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                "frameIndex": 3,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 911,
                "identityRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                "inputSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                "keyCoreBorderConnectedPixels": 840065,
                "keyCorePixels": 840613,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.93869755487168,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                "paletteReduced": false,
                "parentFrameIndex": 2,
                "parentRawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "single-limb",
                "preservedInternalChromaCandidatePixels": 191,
                "preservedSmallKeyColorPixels": 0,
                "promptArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                    }
                ],
                "removedChromaPixels": 842340,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman academy mage in a midnight-blue robe with a small wooden wand held upright in her wand hand.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 3,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/04/receipt.json": {
            "sha256": "d05804f922b657057f310b1e785d03969ee3d81ec0a5b3f75bfefd7d326f4157",
            "bytes": 5647,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 34.336569426778794,
                "borderColorMedian": [
                    233,
                    6,
                    220
                ],
                "borderConnectedChromaPixels": 842902,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 685,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Astra Rune Mage",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:38:42.740995Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 560,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 589,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 498,
                "enclosedComponentCount": 6,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-final-sprite-png",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04",
                "frameIndex": 4,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 911,
                "identityRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/raw/source.png",
                "inputSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                "keyCoreBorderConnectedPixels": 842902,
                "keyCorePixels": 843400,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.93869755487168,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "537fb2f16b9f586d587a1a8411950eaa81ec6b7276bb74f32226a54b8fb6ba5f",
                "paletteReduced": false,
                "parentFrameIndex": 3,
                "parentRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "single-limb",
                "preservedInternalChromaCandidatePixels": 91,
                "preservedSmallKeyColorPixels": 0,
                "promptArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                    }
                ],
                "removedChromaPixels": 845234,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman academy mage in a midnight-blue robe with a small wooden wand held upright in her wand hand.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 4,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/05/receipt.json": {
            "sha256": "22e2e4f879e8081446eb04a0ec43b1a85a7e6abb2413506e65b89ebda12ec32c",
            "bytes": 4698,
            "value": {
                "action": "idle",
                "anchorGuide": null,
                "byteIdentityVerified": true,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Astra Rune Mage",
                "classSource": "request-title",
                "createdAt": "2026-07-24T22:38:42.740995Z",
                "durationMs": 120,
                "exactByteReuse": true,
                "finalArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-final-sprite-png",
                "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05",
                "frameIndex": 5,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 911,
                "identityRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                "loopMode": "ping-pong",
                "operation": "exact-byte-ping-pong-reuse",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackPreviousFrameIndex": 4,
                "playbackPreviousRawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                "playbackSourceFrameIndex": 3,
                "posePolicy": "single-limb",
                "promptArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-prompt-txt",
                "providerCall": false,
                "providerFrameIndex": 3,
                "providerGenerated": false,
                "rawArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-raw-source-png",
                "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                "receiptArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                    }
                ],
                "request": "Create a white adult human woman academy mage in a midnight-blue robe with a small wooden wand held upright in her wand hand.",
                "runId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFinal": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/final/sprite.png",
                "sourceFinalArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                "sourceFinalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                "sourceFrameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                "sourceFrameIndex": 3,
                "sourceProvided": false,
                "sourceRaw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                "sourceRawArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                "sourceRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
            }
        },
        "frames/06/receipt.json": {
            "sha256": "51bc64cecc506dad2b012f9217e0485fe704b20eeb7dc435a5781305220dc943",
            "bytes": 5287,
            "value": {
                "action": "idle",
                "anchorGuide": null,
                "byteIdentityVerified": true,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Astra Rune Mage",
                "classSource": "request-title",
                "createdAt": "2026-07-24T22:38:42.740995Z",
                "durationMs": 120,
                "exactByteReuse": true,
                "finalArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-final-sprite-png",
                "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06",
                "frameIndex": 6,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 911,
                "identityRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                "loopMode": "ping-pong",
                "operation": "exact-byte-ping-pong-reuse",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackPreviousFrameIndex": 5,
                "playbackPreviousRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                "playbackSourceFrameIndex": 2,
                "posePolicy": "single-limb",
                "promptArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-prompt-txt",
                "providerCall": false,
                "providerFrameIndex": 2,
                "providerGenerated": false,
                "rawArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-raw-source-png",
                "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                "receiptArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                    }
                ],
                "request": "Create a white adult human woman academy mage in a midnight-blue robe with a small wooden wand held upright in her wand hand.",
                "runId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFinal": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/final/sprite.png",
                "sourceFinalArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                "sourceFinalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                "sourceFrameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                "sourceFrameIndex": 2,
                "sourceProvided": false,
                "sourceRaw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                "sourceRawArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                "sourceRawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
            }
        },
        "manifest.json": {
            "sha256": "1649f54b90d90e9c64b70907b9097951de72c2fd28f0960c2860318df1ad5066",
            "bytes": 123600,
            "value": {
                "animation": {
                    "action": "idle",
                    "anchorGuide": null,
                    "anchorGuidePolicy": "none",
                    "durationMs": 120,
                    "f1ProviderModel": "gpt-image-2-2026-04-21",
                    "frameCount": 6,
                    "frames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/final/sprite.png",
                            "finalSha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01",
                            "identityBaselineY": 911,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/prompt.txt",
                            "promptSha256": "beac92d1e6b27d4167785375a02c5ef2b7ce39fec2d2c1124b96d23bd2590874",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                            "rawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/final/sprite.png",
                            "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                            "identityBaselineY": 911,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/prompt.txt",
                            "promptSha256": "68917e64e4c3865299ab75b560e68c1edea501491d586e03357de624dfa18a77",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                            "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                            "referenceSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                    "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/final/sprite.png",
                            "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                            "identityBaselineY": 911,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/prompt.txt",
                            "promptSha256": "144468e4fbe8db3d806f09cb214c1737db3a6c7ed4825dc94e3d5dbcce827a1b",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                            "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                            "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                    "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                                    "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/final/sprite.png",
                            "finalSha256": "537fb2f16b9f586d587a1a8411950eaa81ec6b7276bb74f32226a54b8fb6ba5f",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04",
                            "identityBaselineY": 911,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/prompt.txt",
                            "promptSha256": "c9a2e7696cc1b467376571cc95a79d2e52de1d17f2dd841081bf1b6faaacbd85",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/raw/source.png",
                            "rawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                            "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                    "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                                    "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/final/sprite.png",
                            "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05",
                            "identityBaselineY": 911,
                            "index": 5,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackPreviousFrameIndex": 4,
                            "playbackPreviousRawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/prompt.txt",
                            "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                            "providerCall": false,
                            "providerFrameIndex": 3,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/raw/source.png",
                            "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                            "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                                    "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                            "sourceFrameIndex": 3,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png"
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/final/sprite.png",
                            "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06",
                            "identityBaselineY": 911,
                            "index": 6,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackPreviousFrameIndex": 5,
                            "playbackPreviousRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/prompt.txt",
                            "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                            "providerCall": false,
                            "providerFrameIndex": 2,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/raw/source.png",
                            "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                            "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                                    "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                            "sourceFrameIndex": 2,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png"
                        }
                    ],
                    "generationId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
                    "ideaIdleBehaviorDeferred": null,
                    "identityBaselineY": 911,
                    "identityPolicy": "immutable-f1-raw-master",
                    "idleBehavior": "Only the wand, wand hand, forearm, and upper arm move. Start with the wand raised vertically, lower it through small adjacent phases, and finish pointing screen-left at an unseen target. Freeze every other body, clothing, hair, face, accessory, foot, background, and camera pixel.",
                    "idleBehaviorSource": "explicit-command",
                    "lockedParts": [
                        "recognizable face and identity",
                        "costume and equipment design",
                        "fine motifs, trim, fasteners, gems, and prop markings",
                        "palette family and pixel rendering language",
                        "body proportions and overall scale band",
                        "screen-left three-quarter facing",
                        "1024x1024 canvas and flat #ff00ff background"
                    ],
                    "loop": true,
                    "loopMode": "ping-pong",
                    "movingParts": [
                        "whole pose silhouette",
                        "center of mass",
                        "torso and hips",
                        "both arms and hands",
                        "knees, legs, boots, and stance",
                        "hair and sleeves",
                        "coat tails, dress, cape, and hem",
                        "held equipment following the hands"
                    ],
                    "parentPolicy": "f1-plus-previous",
                    "phaseProgressPercent": [
                        0,
                        22,
                        44,
                        100,
                        44,
                        22
                    ],
                    "phases": [
                        "settled identity pose; motion has not started",
                        "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
                    ],
                    "playbackSourceFrameIndices": [
                        1,
                        2,
                        3,
                        4,
                        3,
                        2
                    ],
                    "posePolicy": "single-limb",
                    "preview": {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--preview-animation-gif",
                        "format": "derived-gif-preview",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/preview/animation.gif",
                        "sha256": "3644b284e0f815de56aa13537ea5bf66ea7b1ecf97014fcfb72903ea55423aa4",
                        "sourcePolicy": "final-frame-pngs-unchanged"
                    },
                    "providerCallCount": 4,
                    "providerFrameCount": 4,
                    "providerFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/final/sprite.png",
                            "finalSha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01",
                            "identityBaselineY": 911,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/prompt.txt",
                            "promptSha256": "beac92d1e6b27d4167785375a02c5ef2b7ce39fec2d2c1124b96d23bd2590874",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                            "rawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/final/sprite.png",
                            "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                            "identityBaselineY": 911,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/prompt.txt",
                            "promptSha256": "68917e64e4c3865299ab75b560e68c1edea501491d586e03357de624dfa18a77",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                            "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                            "referenceSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                    "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/final/sprite.png",
                            "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                            "identityBaselineY": 911,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/prompt.txt",
                            "promptSha256": "144468e4fbe8db3d806f09cb214c1737db3a6c7ed4825dc94e3d5dbcce827a1b",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                            "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                            "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                    "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                                    "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/final/sprite.png",
                            "finalSha256": "537fb2f16b9f586d587a1a8411950eaa81ec6b7276bb74f32226a54b8fb6ba5f",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04",
                            "identityBaselineY": 911,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/prompt.txt",
                            "promptSha256": "c9a2e7696cc1b467376571cc95a79d2e52de1d17f2dd841081bf1b6faaacbd85",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/raw/source.png",
                            "rawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                            "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                    "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                                    "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        }
                    ],
                    "providerModel": "gpt-image-2-2026-04-21",
                    "rootPolicy": {
                        "allowedCorrection": "lossless whole-canvas integer translation only",
                        "exactProviderRootRequired": false,
                        "measuredAfterGeneration": true,
                        "poseDependentHorizontalFootMotionPreserved": true,
                        "providerConstraint": "at least one boot sole within 16px of F1 baseline"
                    },
                    "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                    "sourceFrameCount": 4,
                    "sourceFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/final/sprite.png",
                            "finalSha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01",
                            "identityBaselineY": 911,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/prompt.txt",
                            "promptSha256": "beac92d1e6b27d4167785375a02c5ef2b7ce39fec2d2c1124b96d23bd2590874",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                            "rawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/final/sprite.png",
                            "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                            "identityBaselineY": 911,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/prompt.txt",
                            "promptSha256": "68917e64e4c3865299ab75b560e68c1edea501491d586e03357de624dfa18a77",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                            "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                            "referenceSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                    "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/final/sprite.png",
                            "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                            "identityBaselineY": 911,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/prompt.txt",
                            "promptSha256": "144468e4fbe8db3d806f09cb214c1737db3a6c7ed4825dc94e3d5dbcce827a1b",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                            "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                            "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                    "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                                    "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/final/sprite.png",
                            "finalSha256": "537fb2f16b9f586d587a1a8411950eaa81ec6b7276bb74f32226a54b8fb6ba5f",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04",
                            "identityBaselineY": 911,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/prompt.txt",
                            "promptSha256": "c9a2e7696cc1b467376571cc95a79d2e52de1d17f2dd841081bf1b6faaacbd85",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/raw/source.png",
                            "rawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                            "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                    "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                                    "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        }
                    ],
                    "stylePolicy": "elder-a-master"
                },
                "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--manifest-json",
                "artifactIndex": {
                    "artifactCount": 31,
                    "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--artifact-index-json",
                    "exclusions": [
                        "manifest.json",
                        "artifact-index.json"
                    ],
                    "path": "artifact-index.json",
                    "sha256": "079129afc8bbea9305aec0b817fb775ef8138e49b8d30ee3305234a82defb1e7"
                },
                "artifacts": {
                    "animation": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--animation-json",
                    "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--final-sprite-png",
                    "generationId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
                    "manifest": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--manifest-json",
                    "preview": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--preview-animation-gif",
                    "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--prompt-txt",
                    "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--raw-source-png",
                    "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--receipt-json",
                    "request": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--request-json"
                },
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Astra Rune Mage",
                "classSource": "request-title",
                "createdAt": "2026-07-24T22:38:42.740995Z",
                "final": "final/sprite.png",
                "finalArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--final-sprite-png",
                "finalSha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1",
                "frames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/final/sprite.png",
                        "finalSha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01",
                        "identityBaselineY": 911,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/prompt.txt",
                        "promptSha256": "beac92d1e6b27d4167785375a02c5ef2b7ce39fec2d2c1124b96d23bd2590874",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "rawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/final/sprite.png",
                        "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                        "identityBaselineY": 911,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/prompt.txt",
                        "promptSha256": "68917e64e4c3865299ab75b560e68c1edea501491d586e03357de624dfa18a77",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "referenceSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/final/sprite.png",
                        "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                        "identityBaselineY": 911,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/prompt.txt",
                        "promptSha256": "144468e4fbe8db3d806f09cb214c1737db3a6c7ed4825dc94e3d5dbcce827a1b",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                                "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/final/sprite.png",
                        "finalSha256": "537fb2f16b9f586d587a1a8411950eaa81ec6b7276bb74f32226a54b8fb6ba5f",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04",
                        "identityBaselineY": 911,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/prompt.txt",
                        "promptSha256": "c9a2e7696cc1b467376571cc95a79d2e52de1d17f2dd841081bf1b6faaacbd85",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/raw/source.png",
                        "rawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                                "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/final/sprite.png",
                        "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05",
                        "identityBaselineY": 911,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackPreviousFrameIndex": 4,
                        "playbackPreviousRawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/prompt.txt",
                        "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                        "providerCall": false,
                        "providerFrameIndex": 3,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/raw/source.png",
                        "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                                "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                        "sourceFrameIndex": 3,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/final/sprite.png",
                        "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06",
                        "identityBaselineY": 911,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackPreviousFrameIndex": 5,
                        "playbackPreviousRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/prompt.txt",
                        "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                        "providerCall": false,
                        "providerFrameIndex": 2,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/raw/source.png",
                        "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                                "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                        "sourceFrameIndex": 2,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png"
                    }
                ],
                "gender": "woman",
                "genderSource": "request-text",
                "generation": {
                    "anchorGuidePolicy": "none",
                    "animationImageCount": 3,
                    "animationModel": "gpt-image-2-2026-04-21",
                    "attemptedCalls": 4,
                    "completedCalls": 4,
                    "f1ImageCount": 1,
                    "f1Model": "gpt-image-2-2026-04-21",
                    "imageCount": 4,
                    "inputFidelity": "unsupported-omitted",
                    "inputFidelityRequested": false,
                    "loopMode": "ping-pong",
                    "maximumReferenceCount": 2,
                    "model": "gpt-image-2-2026-04-21",
                    "operation": "chained-image-edit-plus-exact-ping-pong-reuse",
                    "playbackFrameCount": 6,
                    "playbackSourceFrameIndices": [
                        1,
                        2,
                        3,
                        4,
                        3,
                        2
                    ],
                    "posePolicy": "single-limb",
                    "providerFrameCount": 4,
                    "quality": "medium",
                    "referenceCountsBySourceFrame": {
                        "1": 1,
                        "2": 1,
                        "3": 2,
                        "4": 2
                    },
                    "referenceOrderPolicy": [
                        "f1RawIdentity",
                        "previousRawOpaque"
                    ],
                    "size": "1024x1024",
                    "sourceFrameCount": 4,
                    "tool": "openai-image"
                },
                "generationId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "postProcessing": {
                    "alphaOnly": true,
                    "despilled": false,
                    "feathered": false,
                    "filtered": false,
                    "paletteReduced": false,
                    "resampled": false,
                    "resized": false,
                    "translated": false
                },
                "prompt": "prompt.txt",
                "promptSha256": "beac92d1e6b27d4167785375a02c5ef2b7ce39fec2d2c1124b96d23bd2590874",
                "providerCallCount": 4,
                "providerFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/final/sprite.png",
                        "finalSha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01",
                        "identityBaselineY": 911,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/prompt.txt",
                        "promptSha256": "beac92d1e6b27d4167785375a02c5ef2b7ce39fec2d2c1124b96d23bd2590874",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "rawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/final/sprite.png",
                        "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                        "identityBaselineY": 911,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/prompt.txt",
                        "promptSha256": "68917e64e4c3865299ab75b560e68c1edea501491d586e03357de624dfa18a77",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "referenceSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/final/sprite.png",
                        "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                        "identityBaselineY": 911,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/prompt.txt",
                        "promptSha256": "144468e4fbe8db3d806f09cb214c1737db3a6c7ed4825dc94e3d5dbcce827a1b",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                                "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/final/sprite.png",
                        "finalSha256": "537fb2f16b9f586d587a1a8411950eaa81ec6b7276bb74f32226a54b8fb6ba5f",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04",
                        "identityBaselineY": 911,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/prompt.txt",
                        "promptSha256": "c9a2e7696cc1b467376571cc95a79d2e52de1d17f2dd841081bf1b6faaacbd85",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/raw/source.png",
                        "rawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                                "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "raw": "raw/source.png",
                "rawArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--raw-source-png",
                "rawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "representative": "final/sprite.png",
                "runId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/final/sprite.png",
                        "finalSha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01",
                        "identityBaselineY": 911,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/prompt.txt",
                        "promptSha256": "beac92d1e6b27d4167785375a02c5ef2b7ce39fec2d2c1124b96d23bd2590874",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "rawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/final/sprite.png",
                        "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                        "identityBaselineY": 911,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/prompt.txt",
                        "promptSha256": "68917e64e4c3865299ab75b560e68c1edea501491d586e03357de624dfa18a77",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "referenceSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/final/sprite.png",
                        "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                        "identityBaselineY": 911,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/prompt.txt",
                        "promptSha256": "144468e4fbe8db3d806f09cb214c1737db3a6c7ed4825dc94e3d5dbcce827a1b",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                                "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/final/sprite.png",
                        "finalSha256": "537fb2f16b9f586d587a1a8411950eaa81ec6b7276bb74f32226a54b8fb6ba5f",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04",
                        "identityBaselineY": 911,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/prompt.txt",
                        "promptSha256": "c9a2e7696cc1b467376571cc95a79d2e52de1d17f2dd841081bf1b6faaacbd85",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/raw/source.png",
                        "rawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                                "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "sourceGenerationId": null,
                "status": "animated-command-review-required",
                "summary": "f1-plus-previous 6-frame idle ping-pong animation from 4 provider-generated frame(s); every playback frame preserves raw and alpha-only final evidence.",
                "title": "ragnarok-create · Astra Rune Mage · idle animation",
                "userRequest": "Create a white adult human woman academy mage in a midnight-blue robe with a small wooden wand held upright in her wand hand."
            }
        },
        "receipt.json": {
            "sha256": "fabc086c8ea0360cc34a6ff903a6e3b4c2fe4f3ca11f7e7d192c131eddb2c71e",
            "bytes": 56123,
            "value": {
                "anchorGuide": null,
                "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--receipt-json",
                "f1ProviderModel": "gpt-image-2-2026-04-21",
                "frameCount": 6,
                "frames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/final/sprite.png",
                        "finalSha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01",
                        "identityBaselineY": 911,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/prompt.txt",
                        "promptSha256": "beac92d1e6b27d4167785375a02c5ef2b7ce39fec2d2c1124b96d23bd2590874",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "rawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/final/sprite.png",
                        "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                        "identityBaselineY": 911,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/prompt.txt",
                        "promptSha256": "68917e64e4c3865299ab75b560e68c1edea501491d586e03357de624dfa18a77",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "referenceSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/final/sprite.png",
                        "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                        "identityBaselineY": 911,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/prompt.txt",
                        "promptSha256": "144468e4fbe8db3d806f09cb214c1737db3a6c7ed4825dc94e3d5dbcce827a1b",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                                "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/final/sprite.png",
                        "finalSha256": "537fb2f16b9f586d587a1a8411950eaa81ec6b7276bb74f32226a54b8fb6ba5f",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04",
                        "identityBaselineY": 911,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/prompt.txt",
                        "promptSha256": "c9a2e7696cc1b467376571cc95a79d2e52de1d17f2dd841081bf1b6faaacbd85",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/raw/source.png",
                        "rawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                                "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/final/sprite.png",
                        "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05",
                        "identityBaselineY": 911,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackPreviousFrameIndex": 4,
                        "playbackPreviousRawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/prompt.txt",
                        "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                        "providerCall": false,
                        "providerFrameIndex": 3,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/raw/source.png",
                        "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                                "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                        "sourceFrameIndex": 3,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/final/sprite.png",
                        "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06",
                        "identityBaselineY": 911,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackPreviousFrameIndex": 5,
                        "playbackPreviousRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/prompt.txt",
                        "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                        "providerCall": false,
                        "providerFrameIndex": 2,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/raw/source.png",
                        "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                                "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                        "sourceFrameIndex": 2,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png"
                    }
                ],
                "generationId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
                "loopMode": "ping-pong",
                "playbackSourceFrameIndices": [
                    1,
                    2,
                    3,
                    4,
                    3,
                    2
                ],
                "posePolicy": "single-limb",
                "providerCallCount": 4,
                "providerCallCountAttempted": 4,
                "providerCallCountCompleted": 4,
                "providerFrameCount": 4,
                "providerFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/final/sprite.png",
                        "finalSha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01",
                        "identityBaselineY": 911,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/prompt.txt",
                        "promptSha256": "beac92d1e6b27d4167785375a02c5ef2b7ce39fec2d2c1124b96d23bd2590874",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "rawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/final/sprite.png",
                        "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                        "identityBaselineY": 911,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/prompt.txt",
                        "promptSha256": "68917e64e4c3865299ab75b560e68c1edea501491d586e03357de624dfa18a77",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "referenceSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/final/sprite.png",
                        "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                        "identityBaselineY": 911,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/prompt.txt",
                        "promptSha256": "144468e4fbe8db3d806f09cb214c1737db3a6c7ed4825dc94e3d5dbcce827a1b",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                                "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/final/sprite.png",
                        "finalSha256": "537fb2f16b9f586d587a1a8411950eaa81ec6b7276bb74f32226a54b8fb6ba5f",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04",
                        "identityBaselineY": 911,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/prompt.txt",
                        "promptSha256": "c9a2e7696cc1b467376571cc95a79d2e52de1d17f2dd841081bf1b6faaacbd85",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/raw/source.png",
                        "rawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                                "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "providerModel": "gpt-image-2-2026-04-21",
                "runId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameCount": 4,
                "sourceFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/final/sprite.png",
                        "finalSha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01",
                        "identityBaselineY": 911,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/prompt.txt",
                        "promptSha256": "beac92d1e6b27d4167785375a02c5ef2b7ce39fec2d2c1124b96d23bd2590874",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "rawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/final/sprite.png",
                        "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                        "identityBaselineY": 911,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/prompt.txt",
                        "promptSha256": "68917e64e4c3865299ab75b560e68c1edea501491d586e03357de624dfa18a77",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                        "referenceSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/final/sprite.png",
                        "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                        "identityBaselineY": 911,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/prompt.txt",
                        "promptSha256": "144468e4fbe8db3d806f09cb214c1737db3a6c7ed4825dc94e3d5dbcce827a1b",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                        "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                                "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/final/sprite.png",
                        "finalSha256": "537fb2f16b9f586d587a1a8411950eaa81ec6b7276bb74f32226a54b8fb6ba5f",
                        "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04",
                        "identityBaselineY": 911,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "single-limb",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/prompt.txt",
                        "promptSha256": "c9a2e7696cc1b467376571cc95a79d2e52de1d17f2dd841081bf1b6faaacbd85",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/raw/source.png",
                        "rawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                        "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                                "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "sourceGenerationId": null
            }
        },
        "request.json": {
            "sha256": "9ace3e683cfb457357084515ebb13003c9942507a3010f1478cd2ee40e90a77b",
            "bytes": 64991,
            "value": {
                "animation": {
                    "action": "idle",
                    "anchorGuide": null,
                    "anchorGuidePolicy": "none",
                    "durationMs": 120,
                    "f1ProviderModel": "gpt-image-2-2026-04-21",
                    "frameCount": 6,
                    "frames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/final/sprite.png",
                            "finalSha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01",
                            "identityBaselineY": 911,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/prompt.txt",
                            "promptSha256": "beac92d1e6b27d4167785375a02c5ef2b7ce39fec2d2c1124b96d23bd2590874",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                            "rawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/final/sprite.png",
                            "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                            "identityBaselineY": 911,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/prompt.txt",
                            "promptSha256": "68917e64e4c3865299ab75b560e68c1edea501491d586e03357de624dfa18a77",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                            "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                            "referenceSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                    "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/final/sprite.png",
                            "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                            "identityBaselineY": 911,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/prompt.txt",
                            "promptSha256": "144468e4fbe8db3d806f09cb214c1737db3a6c7ed4825dc94e3d5dbcce827a1b",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                            "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                            "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                    "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                                    "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/final/sprite.png",
                            "finalSha256": "537fb2f16b9f586d587a1a8411950eaa81ec6b7276bb74f32226a54b8fb6ba5f",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04",
                            "identityBaselineY": 911,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/prompt.txt",
                            "promptSha256": "c9a2e7696cc1b467376571cc95a79d2e52de1d17f2dd841081bf1b6faaacbd85",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/raw/source.png",
                            "rawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                            "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                    "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                                    "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/final/sprite.png",
                            "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-05",
                            "identityBaselineY": 911,
                            "index": 5,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackPreviousFrameIndex": 4,
                            "playbackPreviousRawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/prompt.txt",
                            "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                            "providerCall": false,
                            "providerFrameIndex": 3,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/raw/source.png",
                            "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                            "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                                    "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                            "sourceFrameIndex": 3,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png"
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/final/sprite.png",
                            "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-06",
                            "identityBaselineY": 911,
                            "index": 6,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackPreviousFrameIndex": 5,
                            "playbackPreviousRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/prompt.txt",
                            "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                            "providerCall": false,
                            "providerFrameIndex": 2,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/raw/source.png",
                            "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                            "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                                    "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                            "sourceFrameIndex": 2,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png"
                        }
                    ],
                    "generationId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
                    "ideaIdleBehaviorDeferred": null,
                    "identityBaselineY": 911,
                    "identityPolicy": "immutable-f1-raw-master",
                    "idleBehavior": "Only the wand, wand hand, forearm, and upper arm move. Start with the wand raised vertically, lower it through small adjacent phases, and finish pointing screen-left at an unseen target. Freeze every other body, clothing, hair, face, accessory, foot, background, and camera pixel.",
                    "idleBehaviorSource": "explicit-command",
                    "lockedParts": [
                        "recognizable face and identity",
                        "costume and equipment design",
                        "fine motifs, trim, fasteners, gems, and prop markings",
                        "palette family and pixel rendering language",
                        "body proportions and overall scale band",
                        "screen-left three-quarter facing",
                        "1024x1024 canvas and flat #ff00ff background"
                    ],
                    "loop": true,
                    "loopMode": "ping-pong",
                    "movingParts": [
                        "whole pose silhouette",
                        "center of mass",
                        "torso and hips",
                        "both arms and hands",
                        "knees, legs, boots, and stance",
                        "hair and sleeves",
                        "coat tails, dress, cape, and hem",
                        "held equipment following the hands"
                    ],
                    "parentPolicy": "f1-plus-previous",
                    "phaseProgressPercent": [
                        0,
                        22,
                        44,
                        100,
                        44,
                        22
                    ],
                    "phases": [
                        "settled identity pose; motion has not started",
                        "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
                    ],
                    "playbackSourceFrameIndices": [
                        1,
                        2,
                        3,
                        4,
                        3,
                        2
                    ],
                    "posePolicy": "single-limb",
                    "preview": {
                        "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--preview-animation-gif",
                        "format": "derived-gif-preview",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/preview/animation.gif",
                        "sha256": "3644b284e0f815de56aa13537ea5bf66ea7b1ecf97014fcfb72903ea55423aa4",
                        "sourcePolicy": "final-frame-pngs-unchanged"
                    },
                    "providerCallCount": 4,
                    "providerFrameCount": 4,
                    "providerFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/final/sprite.png",
                            "finalSha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01",
                            "identityBaselineY": 911,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/prompt.txt",
                            "promptSha256": "beac92d1e6b27d4167785375a02c5ef2b7ce39fec2d2c1124b96d23bd2590874",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                            "rawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/final/sprite.png",
                            "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                            "identityBaselineY": 911,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/prompt.txt",
                            "promptSha256": "68917e64e4c3865299ab75b560e68c1edea501491d586e03357de624dfa18a77",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                            "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                            "referenceSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                    "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/final/sprite.png",
                            "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                            "identityBaselineY": 911,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/prompt.txt",
                            "promptSha256": "144468e4fbe8db3d806f09cb214c1737db3a6c7ed4825dc94e3d5dbcce827a1b",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                            "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                            "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                    "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                                    "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/final/sprite.png",
                            "finalSha256": "537fb2f16b9f586d587a1a8411950eaa81ec6b7276bb74f32226a54b8fb6ba5f",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04",
                            "identityBaselineY": 911,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/prompt.txt",
                            "promptSha256": "c9a2e7696cc1b467376571cc95a79d2e52de1d17f2dd841081bf1b6faaacbd85",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/raw/source.png",
                            "rawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                            "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                    "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                                    "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        }
                    ],
                    "providerModel": "gpt-image-2-2026-04-21",
                    "rootPolicy": {
                        "allowedCorrection": "lossless whole-canvas integer translation only",
                        "exactProviderRootRequired": false,
                        "measuredAfterGeneration": true,
                        "poseDependentHorizontalFootMotionPreserved": true,
                        "providerConstraint": "at least one boot sole within 16px of F1 baseline"
                    },
                    "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                    "sourceFrameCount": 4,
                    "sourceFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/final/sprite.png",
                            "finalSha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-01",
                            "identityBaselineY": 911,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/prompt.txt",
                            "promptSha256": "beac92d1e6b27d4167785375a02c5ef2b7ce39fec2d2c1124b96d23bd2590874",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                            "rawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/final/sprite.png",
                            "finalSha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-02",
                            "identityBaselineY": 911,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/prompt.txt",
                            "promptSha256": "68917e64e4c3865299ab75b560e68c1edea501491d586e03357de624dfa18a77",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                            "rawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                            "referenceSha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                    "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/final/sprite.png",
                            "finalSha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-03",
                            "identityBaselineY": 911,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/prompt.txt",
                            "promptSha256": "144468e4fbe8db3d806f09cb214c1737db3a6c7ed4825dc94e3d5dbcce827a1b",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                            "rawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                            "referenceSha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                    "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
                                    "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/final/sprite.png",
                            "finalSha256": "537fb2f16b9f586d587a1a8411950eaa81ec6b7276bb74f32226a54b8fb6ba5f",
                            "frameId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--frames-04",
                            "identityBaselineY": 911,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "single-limb",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/prompt.txt",
                            "promptSha256": "c9a2e7696cc1b467376571cc95a79d2e52de1d17f2dd841081bf1b6faaacbd85",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/raw/source.png",
                            "rawSha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                            "referenceSha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
                                    "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
                                    "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        }
                    ],
                    "stylePolicy": "elder-a-master"
                },
                "artifactId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b--request-json",
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Astra Rune Mage",
                "classSource": "request-title",
                "command": "ragnarok-create --animate",
                "createdAt": "2026-07-24T22:38:42.740995Z",
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "provider": {
                    "animationInputFidelity": "unsupported-omitted",
                    "animationModel": "gpt-image-2-2026-04-21",
                    "attemptedCalls": 4,
                    "completedCalls": 4,
                    "f1InputFidelity": "unsupported-omitted",
                    "f1Model": "gpt-image-2-2026-04-21",
                    "quality": "medium",
                    "size": "1024x1024"
                },
                "request": "Create a white adult human woman academy mage in a midnight-blue robe with a small wooden wand held upright in her wand hand.",
                "runId": "ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "source": null,
                "sourceGenerationId": null,
                "title": "Astra Rune Mage"
            }
        }
    },
    "media": {
        "final/sprite.png": {
            "attachment_id": 4003,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/final/sprite.png",
            "sha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1",
            "bytes": 929278,
            "mime": "image/png"
        },
        "frames/01/final/sprite.png": {
            "attachment_id": 4004,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/final/sprite.png",
            "sha256": "ebb7950dce251704c10a31e50c062f58a1b3fbcfe4727b91fe3cfc3924c3fdf1",
            "bytes": 929278,
            "mime": "image/png"
        },
        "frames/01/raw/source.png": {
            "attachment_id": 4002,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/01/raw/source.png",
            "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
            "bytes": 951144,
            "mime": "image/png"
        },
        "frames/02/final/sprite.png": {
            "attachment_id": 4007,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/final/sprite.png",
            "sha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
            "bytes": 948942,
            "mime": "image/png"
        },
        "frames/02/raw/source.png": {
            "attachment_id": 4006,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/02/raw/source.png",
            "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
            "bytes": 963356,
            "mime": "image/png"
        },
        "frames/03/final/sprite.png": {
            "attachment_id": 4009,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/final/sprite.png",
            "sha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
            "bytes": 951090,
            "mime": "image/png"
        },
        "frames/03/raw/source.png": {
            "attachment_id": 4008,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/03/raw/source.png",
            "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
            "bytes": 965943,
            "mime": "image/png"
        },
        "frames/04/final/sprite.png": {
            "attachment_id": 4011,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/final/sprite.png",
            "sha256": "537fb2f16b9f586d587a1a8411950eaa81ec6b7276bb74f32226a54b8fb6ba5f",
            "bytes": 972002,
            "mime": "image/png"
        },
        "frames/04/raw/source.png": {
            "attachment_id": 4010,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/04/raw/source.png",
            "sha256": "967b8c013c056e9c93e2d19c23ba391858d2840a9a22a34f653f7a5409eae4e9",
            "bytes": 983724,
            "mime": "image/png"
        },
        "frames/05/final/sprite.png": {
            "attachment_id": 4012,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/final/sprite.png",
            "sha256": "0753e7f2f0d2f3b280bd673ca20962f334a9c724369b892d090e892d87f8a88e",
            "bytes": 951090,
            "mime": "image/png"
        },
        "frames/05/raw/source.png": {
            "attachment_id": 4013,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/05/raw/source.png",
            "sha256": "f97cddf04ddb25833e1f5101d967f38dbc1a9e55ffc2c95dc059c7c0a72c7e73",
            "bytes": 965943,
            "mime": "image/png"
        },
        "frames/06/final/sprite.png": {
            "attachment_id": 4014,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/final/sprite.png",
            "sha256": "7b27d56b2d48dc17a87b92096d6588ad8a0cbc8fee0ad7adbbc6d5acc4c62cbf",
            "bytes": 948942,
            "mime": "image/png"
        },
        "frames/06/raw/source.png": {
            "attachment_id": 4015,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/frames/06/raw/source.png",
            "sha256": "5bc3c102166b5961aa533e82e25692df728a284d712cea39518d2eb3c1c0c115",
            "bytes": 963356,
            "mime": "image/png"
        },
        "preview/animation.gif": {
            "attachment_id": 4016,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/preview/animation.gif",
            "sha256": "3644b284e0f815de56aa13537ea5bf66ea7b1ecf97014fcfb72903ea55423aa4",
            "bytes": 551635,
            "mime": "image/gif"
        },
        "raw/source.png": {
            "attachment_id": 4005,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T223842740995Z-astra-rune-mage-4eff2b/raw/source.png",
            "sha256": "1dc55ec61a14a3b2e1c6ff772826b5dbacd6afe7219c5624da943d2f5c563ae7",
            "bytes": 951144,
            "mime": "image/png"
        }
    },
    "importedAt": "2026-07-24T22:42:01+00:00",
    "archiveVisibility": "publish"
}

Mistblade Assassin · idle animation

Classes & Combat · 2026-07-24T22:27:06.174790Z · ID ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001

raw/source.png
Mistblade Assassin · idle animation
final/sprite.png
Mistblade Assassin · idle animation
frames/02/final/sprite.png
Mistblade Assassin · idle animation
frames/03/final/sprite.png
Mistblade Assassin · idle animation
frames/04/final/sprite.png
Mistblade Assassin · idle animation
frames/05/final/sprite.png
Mistblade Assassin · idle animation
frames/06/final/sprite.png
Mistblade Assassin · idle animation
preview/animation.gif
Mistblade Assassin · idle animation
CSS frame player · 6 frames
Additional output · frames/01/final/sprite.png
Mistblade Assassin · idle animation · frames/01/final/sprite.png
Additional output · frames/01/raw/source.png
Mistblade Assassin · idle animation · frames/01/raw/source.png
Additional output · frames/02/raw/source.png
Mistblade Assassin · idle animation · frames/02/raw/source.png
Additional output · frames/03/raw/source.png
Mistblade Assassin · idle animation · frames/03/raw/source.png
Additional output · frames/04/raw/source.png
Mistblade Assassin · idle animation · frames/04/raw/source.png
Additional output · frames/05/raw/source.png
Mistblade Assassin · idle animation · frames/05/raw/source.png
Additional output · frames/06/raw/source.png
Mistblade Assassin · idle animation · frames/06/raw/source.png
Full metadata
{
    "schemaVersion": "midgard-pixels.wordpress-generation.v1",
    "generationId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
    "runId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
    "title": "Mistblade Assassin · idle animation",
    "createdAt": "2026-07-24T22:27:06.174790Z",
    "request": "Create a white adult human woman Mistblade Assassin, wearing fitted dark field armor with a long scarf and twin short blades, holding a low controlled crouch with no exaggerated effects.",
    "category": "Classes & Combat",
    "categorySlug": "classes-combat",
    "class": "Mistblade Assassin",
    "gender": "woman",
    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
    "promptSha256": "ba169ba548051ea8e4dc3aa75b4b1eb1f5c9787241401806a64c4a34a1fafa36",
    "providerModel": "gpt-image-2-2026-04-21",
    "status": "animated-command-review-required",
    "sourcePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
    "manifest": {
        "animation": {
            "action": "idle",
            "anchorGuide": null,
            "anchorGuidePolicy": "none",
            "durationMs": 120,
            "f1ProviderModel": "gpt-image-2-2026-04-21",
            "frameCount": 6,
            "frames": [
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-prompt-txt",
                        "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-raw-source-png",
                        "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/final/sprite.png",
                    "finalSha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc",
                    "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01",
                    "identityBaselineY": 854,
                    "index": 1,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "settled identity pose; motion has not started",
                    "phaseProgressPercent": 0,
                    "playbackSourceFrameIndex": 1,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/prompt.txt",
                    "promptSha256": "ba169ba548051ea8e4dc3aa75b4b1eb1f5c9787241401806a64c4a34a1fafa36",
                    "providerCall": true,
                    "providerFrameIndex": 1,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                    "rawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                        }
                    ],
                    "sourceFrameIndex": 1,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-prompt-txt",
                        "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                        "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/final/sprite.png",
                    "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                    "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                    "identityBaselineY": 854,
                    "index": 2,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 1,
                    "parentRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                    "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 22,
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/prompt.txt",
                    "promptSha256": "07334419e08d201ff1cb8e27825bd6e1b2809b1b8598a3fe245813d0344b51ab",
                    "providerCall": true,
                    "providerFrameIndex": 2,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                    "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                    "referenceSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                            "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                        }
                    ],
                    "sourceFrameIndex": 2,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-prompt-txt",
                        "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                        "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/final/sprite.png",
                    "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                    "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                    "identityBaselineY": 854,
                    "index": 3,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 2,
                    "parentRawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 44,
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/prompt.txt",
                    "promptSha256": "318837e70bd500711096bdc84e804ae6c6f569da563bac31028c464ecf551bfa",
                    "providerCall": true,
                    "providerFrameIndex": 3,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                    "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                    "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                            "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                            "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                        }
                    ],
                    "sourceFrameIndex": 3,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-prompt-txt",
                        "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-raw-source-png",
                        "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/final/sprite.png",
                    "finalSha256": "d625f300897619c8231d51c9accc76d180a1f241d26c5ccc096219330cc8e277",
                    "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04",
                    "identityBaselineY": 854,
                    "index": 4,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 3,
                    "parentRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                    "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 100,
                    "playbackSourceFrameIndex": 4,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/prompt.txt",
                    "promptSha256": "b401e7f585714e67e3ecac872478c2faa1dcf733ccc1c0292c5da1304c4688f0",
                    "providerCall": true,
                    "providerFrameIndex": 4,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/raw/source.png",
                    "rawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                    "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                            "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                            "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                        }
                    ],
                    "sourceFrameIndex": 4,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-prompt-txt",
                        "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-raw-source-png",
                        "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-receipt-json"
                    },
                    "byteIdentityVerified": true,
                    "durationMs": 120,
                    "exactByteReuse": true,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/final/sprite.png",
                    "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                    "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05",
                    "identityBaselineY": 854,
                    "index": 5,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 44,
                    "playbackPreviousFrameIndex": 4,
                    "playbackPreviousRawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/prompt.txt",
                    "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                    "providerCall": false,
                    "providerFrameIndex": 3,
                    "providerGenerated": false,
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/raw/source.png",
                    "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                    "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                    "references": [
                        {
                            "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                            "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                        }
                    ],
                    "sourceFinalArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                    "sourceFrameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                    "sourceFrameIndex": 3,
                    "sourceProvided": false,
                    "sourceRawArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png"
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-prompt-txt",
                        "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-raw-source-png",
                        "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-receipt-json"
                    },
                    "byteIdentityVerified": true,
                    "durationMs": 120,
                    "exactByteReuse": true,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/final/sprite.png",
                    "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                    "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06",
                    "identityBaselineY": 854,
                    "index": 6,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 22,
                    "playbackPreviousFrameIndex": 5,
                    "playbackPreviousRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/prompt.txt",
                    "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                    "providerCall": false,
                    "providerFrameIndex": 2,
                    "providerGenerated": false,
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/raw/source.png",
                    "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                    "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                    "references": [
                        {
                            "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                            "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                        }
                    ],
                    "sourceFinalArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                    "sourceFrameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                    "sourceFrameIndex": 2,
                    "sourceProvided": false,
                    "sourceRawArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png"
                }
            ],
            "generationId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
            "ideaIdleBehaviorDeferred": "Lowers into a ready crouch with both blades apart.",
            "identityBaselineY": 854,
            "identityPolicy": "immutable-f1-raw-master",
            "idleBehavior": "One simple connected weight-shift and breath loop: lean the torso toward the screen-left planted foot, open both forearms visibly, bend both knees and shift the hips while both boot sole contacts stay at their exact F1 canvas positions, and let hair, sleeves, plus loose coat or dress hem show clear connected follow-through; then return. The pose may compress or extend naturally around the planted root, but the character must never be uniformly resized, stretched, sheared, or recentered. Keep head, torso, and boot pixel scale consistent. Held equipment follows the hands through one readable continuous arc; it never flips end-for-end or changes from carried to planted or resting.",
            "idleBehaviorSource": "locked-generic-whole-body-loop",
            "lockedParts": [
                "recognizable face and identity",
                "costume and equipment design",
                "fine motifs, trim, fasteners, gems, and prop markings",
                "palette family and pixel rendering language",
                "body proportions and overall scale band",
                "screen-left three-quarter facing",
                "1024x1024 canvas and flat #ff00ff background"
            ],
            "loop": true,
            "loopMode": "ping-pong",
            "movingParts": [
                "whole pose silhouette",
                "center of mass",
                "torso and hips",
                "both arms and hands",
                "knees, legs, boots, and stance",
                "hair and sleeves",
                "coat tails, dress, cape, and hem",
                "held equipment following the hands"
            ],
            "parentPolicy": "f1-plus-previous",
            "phaseProgressPercent": [
                0,
                22,
                44,
                100,
                44,
                22
            ],
            "phases": [
                "settled identity pose; motion has not started",
                "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
            ],
            "playbackSourceFrameIndices": [
                1,
                2,
                3,
                4,
                3,
                2
            ],
            "posePolicy": "natural-relational",
            "preview": {
                "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--preview-animation-gif",
                "format": "derived-gif-preview",
                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/preview/animation.gif",
                "sha256": "c48454be435d6468067f98e9e5813b9ed340499c101190ba17e5cc98d0dd2fa9",
                "sourcePolicy": "final-frame-pngs-unchanged"
            },
            "providerCallCount": 4,
            "providerFrameCount": 4,
            "providerFrames": [
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-prompt-txt",
                        "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-raw-source-png",
                        "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/final/sprite.png",
                    "finalSha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc",
                    "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01",
                    "identityBaselineY": 854,
                    "index": 1,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "settled identity pose; motion has not started",
                    "phaseProgressPercent": 0,
                    "playbackSourceFrameIndex": 1,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/prompt.txt",
                    "promptSha256": "ba169ba548051ea8e4dc3aa75b4b1eb1f5c9787241401806a64c4a34a1fafa36",
                    "providerCall": true,
                    "providerFrameIndex": 1,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                    "rawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                        }
                    ],
                    "sourceFrameIndex": 1,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-prompt-txt",
                        "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                        "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/final/sprite.png",
                    "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                    "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                    "identityBaselineY": 854,
                    "index": 2,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 1,
                    "parentRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                    "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 22,
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/prompt.txt",
                    "promptSha256": "07334419e08d201ff1cb8e27825bd6e1b2809b1b8598a3fe245813d0344b51ab",
                    "providerCall": true,
                    "providerFrameIndex": 2,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                    "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                    "referenceSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                            "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                        }
                    ],
                    "sourceFrameIndex": 2,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-prompt-txt",
                        "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                        "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/final/sprite.png",
                    "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                    "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                    "identityBaselineY": 854,
                    "index": 3,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 2,
                    "parentRawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 44,
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/prompt.txt",
                    "promptSha256": "318837e70bd500711096bdc84e804ae6c6f569da563bac31028c464ecf551bfa",
                    "providerCall": true,
                    "providerFrameIndex": 3,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                    "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                    "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                            "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                            "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                        }
                    ],
                    "sourceFrameIndex": 3,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-prompt-txt",
                        "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-raw-source-png",
                        "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/final/sprite.png",
                    "finalSha256": "d625f300897619c8231d51c9accc76d180a1f241d26c5ccc096219330cc8e277",
                    "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04",
                    "identityBaselineY": 854,
                    "index": 4,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 3,
                    "parentRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                    "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 100,
                    "playbackSourceFrameIndex": 4,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/prompt.txt",
                    "promptSha256": "b401e7f585714e67e3ecac872478c2faa1dcf733ccc1c0292c5da1304c4688f0",
                    "providerCall": true,
                    "providerFrameIndex": 4,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/raw/source.png",
                    "rawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                    "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                            "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                            "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                        }
                    ],
                    "sourceFrameIndex": 4,
                    "sourceProvided": false
                }
            ],
            "providerModel": "gpt-image-2-2026-04-21",
            "rootPolicy": {
                "allowedCorrection": "lossless whole-canvas integer translation only",
                "exactProviderRootRequired": false,
                "measuredAfterGeneration": true,
                "poseDependentHorizontalFootMotionPreserved": true,
                "providerConstraint": "at least one boot sole within 16px of F1 baseline"
            },
            "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
            "sourceFrameCount": 4,
            "sourceFrames": [
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-prompt-txt",
                        "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-raw-source-png",
                        "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/final/sprite.png",
                    "finalSha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc",
                    "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01",
                    "identityBaselineY": 854,
                    "index": 1,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "settled identity pose; motion has not started",
                    "phaseProgressPercent": 0,
                    "playbackSourceFrameIndex": 1,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/prompt.txt",
                    "promptSha256": "ba169ba548051ea8e4dc3aa75b4b1eb1f5c9787241401806a64c4a34a1fafa36",
                    "providerCall": true,
                    "providerFrameIndex": 1,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                    "rawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                        }
                    ],
                    "sourceFrameIndex": 1,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-prompt-txt",
                        "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                        "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/final/sprite.png",
                    "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                    "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                    "identityBaselineY": 854,
                    "index": 2,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 1,
                    "parentRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                    "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 22,
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/prompt.txt",
                    "promptSha256": "07334419e08d201ff1cb8e27825bd6e1b2809b1b8598a3fe245813d0344b51ab",
                    "providerCall": true,
                    "providerFrameIndex": 2,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                    "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                    "referenceSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                            "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                        }
                    ],
                    "sourceFrameIndex": 2,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-prompt-txt",
                        "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                        "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/final/sprite.png",
                    "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                    "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                    "identityBaselineY": 854,
                    "index": 3,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 2,
                    "parentRawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 44,
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/prompt.txt",
                    "promptSha256": "318837e70bd500711096bdc84e804ae6c6f569da563bac31028c464ecf551bfa",
                    "providerCall": true,
                    "providerFrameIndex": 3,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                    "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                    "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                            "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                            "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                        }
                    ],
                    "sourceFrameIndex": 3,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-prompt-txt",
                        "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-raw-source-png",
                        "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/final/sprite.png",
                    "finalSha256": "d625f300897619c8231d51c9accc76d180a1f241d26c5ccc096219330cc8e277",
                    "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04",
                    "identityBaselineY": 854,
                    "index": 4,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 3,
                    "parentRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                    "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 100,
                    "playbackSourceFrameIndex": 4,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/prompt.txt",
                    "promptSha256": "b401e7f585714e67e3ecac872478c2faa1dcf733ccc1c0292c5da1304c4688f0",
                    "providerCall": true,
                    "providerFrameIndex": 4,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/raw/source.png",
                    "rawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                    "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                            "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                            "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                        }
                    ],
                    "sourceFrameIndex": 4,
                    "sourceProvided": false
                }
            ],
            "stylePolicy": "elder-a-master"
        },
        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--manifest-json",
        "artifactIndex": {
            "artifactCount": 31,
            "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--artifact-index-json",
            "exclusions": [
                "manifest.json",
                "artifact-index.json"
            ],
            "path": "artifact-index.json",
            "sha256": "8c07b25d6c462c8e1367a06f45abbf9a708d82d6bf5c0ad14d2333fa0dc29d8e"
        },
        "artifacts": {
            "animation": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--animation-json",
            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--final-sprite-png",
            "generationId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
            "manifest": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--manifest-json",
            "preview": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--preview-animation-gif",
            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--prompt-txt",
            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--raw-source-png",
            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--receipt-json",
            "request": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--request-json"
        },
        "category": "Classes & Combat",
        "categorySlug": "classes-combat",
        "class": "Mistblade Assassin",
        "classSource": "idea-pool.title",
        "createdAt": "2026-07-24T22:27:06.174790Z",
        "final": "final/sprite.png",
        "finalArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--final-sprite-png",
        "finalSha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc",
        "frames": [
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-prompt-txt",
                    "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-raw-source-png",
                    "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/final/sprite.png",
                "finalSha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc",
                "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01",
                "identityBaselineY": 854,
                "index": 1,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/prompt.txt",
                "promptSha256": "ba169ba548051ea8e4dc3aa75b4b1eb1f5c9787241401806a64c4a34a1fafa36",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                "rawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "sourceFrameIndex": 1,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-prompt-txt",
                    "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                    "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/final/sprite.png",
                "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                "identityBaselineY": 854,
                "index": 2,
                "loopMode": "ping-pong",
                "parentFrameIndex": 1,
                "parentRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/prompt.txt",
                "promptSha256": "07334419e08d201ff1cb8e27825bd6e1b2809b1b8598a3fe245813d0344b51ab",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                "referenceSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                    }
                ],
                "sourceFrameIndex": 2,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-prompt-txt",
                    "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                    "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/final/sprite.png",
                "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                "identityBaselineY": 854,
                "index": 3,
                "loopMode": "ping-pong",
                "parentFrameIndex": 2,
                "parentRawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/prompt.txt",
                "promptSha256": "318837e70bd500711096bdc84e804ae6c6f569da563bac31028c464ecf551bfa",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                    }
                ],
                "sourceFrameIndex": 3,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-prompt-txt",
                    "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-raw-source-png",
                    "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/final/sprite.png",
                "finalSha256": "d625f300897619c8231d51c9accc76d180a1f241d26c5ccc096219330cc8e277",
                "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04",
                "identityBaselineY": 854,
                "index": 4,
                "loopMode": "ping-pong",
                "parentFrameIndex": 3,
                "parentRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/prompt.txt",
                "promptSha256": "b401e7f585714e67e3ecac872478c2faa1dcf733ccc1c0292c5da1304c4688f0",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/raw/source.png",
                "rawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                    }
                ],
                "sourceFrameIndex": 4,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-prompt-txt",
                    "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-raw-source-png",
                    "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-receipt-json"
                },
                "byteIdentityVerified": true,
                "durationMs": 120,
                "exactByteReuse": true,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/final/sprite.png",
                "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05",
                "identityBaselineY": 854,
                "index": 5,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackPreviousFrameIndex": 4,
                "playbackPreviousRawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/prompt.txt",
                "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                "providerCall": false,
                "providerFrameIndex": 3,
                "providerGenerated": false,
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/raw/source.png",
                "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                    }
                ],
                "sourceFinalArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                "sourceFrameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                "sourceFrameIndex": 3,
                "sourceProvided": false,
                "sourceRawArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png"
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-prompt-txt",
                    "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-raw-source-png",
                    "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-receipt-json"
                },
                "byteIdentityVerified": true,
                "durationMs": 120,
                "exactByteReuse": true,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/final/sprite.png",
                "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06",
                "identityBaselineY": 854,
                "index": 6,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackPreviousFrameIndex": 5,
                "playbackPreviousRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/prompt.txt",
                "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                "providerCall": false,
                "providerFrameIndex": 2,
                "providerGenerated": false,
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/raw/source.png",
                "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                    }
                ],
                "sourceFinalArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                "sourceFrameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                "sourceFrameIndex": 2,
                "sourceProvided": false,
                "sourceRawArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png"
            }
        ],
        "gender": "woman",
        "genderSource": "idea-pool.gender",
        "generation": {
            "anchorGuidePolicy": "none",
            "animationImageCount": 3,
            "animationModel": "gpt-image-2-2026-04-21",
            "attemptedCalls": 4,
            "completedCalls": 4,
            "f1ImageCount": 1,
            "f1Model": "gpt-image-2-2026-04-21",
            "imageCount": 4,
            "inputFidelity": "unsupported-omitted",
            "inputFidelityRequested": false,
            "loopMode": "ping-pong",
            "maximumReferenceCount": 2,
            "model": "gpt-image-2-2026-04-21",
            "operation": "chained-image-edit-plus-exact-ping-pong-reuse",
            "playbackFrameCount": 6,
            "playbackSourceFrameIndices": [
                1,
                2,
                3,
                4,
                3,
                2
            ],
            "posePolicy": "natural-relational",
            "providerFrameCount": 4,
            "quality": "medium",
            "referenceCountsBySourceFrame": {
                "1": 1,
                "2": 1,
                "3": 2,
                "4": 2
            },
            "referenceOrderPolicy": [
                "f1RawIdentity",
                "previousRawOpaque"
            ],
            "size": "1024x1024",
            "sourceFrameCount": 4,
            "tool": "openai-image"
        },
        "generationId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
        "ideaId": "mistblade-assassin",
        "ideaSource": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/character-test-idea-ledger-v1.json",
        "ideaTitle": "Mistblade Assassin",
        "postProcessing": {
            "alphaOnly": true,
            "despilled": false,
            "feathered": false,
            "filtered": false,
            "paletteReduced": false,
            "resampled": false,
            "resized": false,
            "translated": false
        },
        "prompt": "prompt.txt",
        "promptSha256": "ba169ba548051ea8e4dc3aa75b4b1eb1f5c9787241401806a64c4a34a1fafa36",
        "providerCallCount": 4,
        "providerFrames": [
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-prompt-txt",
                    "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-raw-source-png",
                    "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/final/sprite.png",
                "finalSha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc",
                "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01",
                "identityBaselineY": 854,
                "index": 1,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/prompt.txt",
                "promptSha256": "ba169ba548051ea8e4dc3aa75b4b1eb1f5c9787241401806a64c4a34a1fafa36",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                "rawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "sourceFrameIndex": 1,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-prompt-txt",
                    "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                    "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/final/sprite.png",
                "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                "identityBaselineY": 854,
                "index": 2,
                "loopMode": "ping-pong",
                "parentFrameIndex": 1,
                "parentRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/prompt.txt",
                "promptSha256": "07334419e08d201ff1cb8e27825bd6e1b2809b1b8598a3fe245813d0344b51ab",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                "referenceSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                    }
                ],
                "sourceFrameIndex": 2,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-prompt-txt",
                    "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                    "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/final/sprite.png",
                "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                "identityBaselineY": 854,
                "index": 3,
                "loopMode": "ping-pong",
                "parentFrameIndex": 2,
                "parentRawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/prompt.txt",
                "promptSha256": "318837e70bd500711096bdc84e804ae6c6f569da563bac31028c464ecf551bfa",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                    }
                ],
                "sourceFrameIndex": 3,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-prompt-txt",
                    "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-raw-source-png",
                    "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/final/sprite.png",
                "finalSha256": "d625f300897619c8231d51c9accc76d180a1f241d26c5ccc096219330cc8e277",
                "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04",
                "identityBaselineY": 854,
                "index": 4,
                "loopMode": "ping-pong",
                "parentFrameIndex": 3,
                "parentRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/prompt.txt",
                "promptSha256": "b401e7f585714e67e3ecac872478c2faa1dcf733ccc1c0292c5da1304c4688f0",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/raw/source.png",
                "rawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                    }
                ],
                "sourceFrameIndex": 4,
                "sourceProvided": false
            }
        ],
        "raw": "raw/source.png",
        "rawArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--raw-source-png",
        "rawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
        "representative": "final/sprite.png",
        "runId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
        "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
        "sourceFrames": [
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-prompt-txt",
                    "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-raw-source-png",
                    "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/final/sprite.png",
                "finalSha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc",
                "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01",
                "identityBaselineY": 854,
                "index": 1,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/prompt.txt",
                "promptSha256": "ba169ba548051ea8e4dc3aa75b4b1eb1f5c9787241401806a64c4a34a1fafa36",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                "rawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "sourceFrameIndex": 1,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-prompt-txt",
                    "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                    "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/final/sprite.png",
                "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                "identityBaselineY": 854,
                "index": 2,
                "loopMode": "ping-pong",
                "parentFrameIndex": 1,
                "parentRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/prompt.txt",
                "promptSha256": "07334419e08d201ff1cb8e27825bd6e1b2809b1b8598a3fe245813d0344b51ab",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                "referenceSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                    }
                ],
                "sourceFrameIndex": 2,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-prompt-txt",
                    "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                    "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/final/sprite.png",
                "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                "identityBaselineY": 854,
                "index": 3,
                "loopMode": "ping-pong",
                "parentFrameIndex": 2,
                "parentRawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/prompt.txt",
                "promptSha256": "318837e70bd500711096bdc84e804ae6c6f569da563bac31028c464ecf551bfa",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                    }
                ],
                "sourceFrameIndex": 3,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-prompt-txt",
                    "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-raw-source-png",
                    "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/final/sprite.png",
                "finalSha256": "d625f300897619c8231d51c9accc76d180a1f241d26c5ccc096219330cc8e277",
                "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04",
                "identityBaselineY": 854,
                "index": 4,
                "loopMode": "ping-pong",
                "parentFrameIndex": 3,
                "parentRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/prompt.txt",
                "promptSha256": "b401e7f585714e67e3ecac872478c2faa1dcf733ccc1c0292c5da1304c4688f0",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/raw/source.png",
                "rawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                    }
                ],
                "sourceFrameIndex": 4,
                "sourceProvided": false
            }
        ],
        "sourceGenerationId": null,
        "status": "animated-command-review-required",
        "summary": "f1-plus-previous 6-frame idle ping-pong animation from 4 provider-generated frame(s); every playback frame preserves raw and alpha-only final evidence.",
        "title": "ragnarok-create · Mistblade Assassin · idle animation",
        "userRequest": "Create a white adult human woman Mistblade Assassin, wearing fitted dark field armor with a long scarf and twin short blades, holding a low controlled crouch with no exaggerated effects."
    },
    "jsonArtifacts": {
        "animation.json": {
            "sha256": "e9b6ae4b54f50919514558b98c43bb2de9cec1bbe314ba626fb76d43c65482e4",
            "bytes": 63456,
            "value": {
                "action": "idle",
                "anchorGuide": null,
                "anchorGuidePolicy": "none",
                "durationMs": 120,
                "f1ProviderModel": "gpt-image-2-2026-04-21",
                "frameCount": 6,
                "frames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/final/sprite.png",
                        "finalSha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01",
                        "identityBaselineY": 854,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/prompt.txt",
                        "promptSha256": "ba169ba548051ea8e4dc3aa75b4b1eb1f5c9787241401806a64c4a34a1fafa36",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "rawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/final/sprite.png",
                        "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                        "identityBaselineY": 854,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/prompt.txt",
                        "promptSha256": "07334419e08d201ff1cb8e27825bd6e1b2809b1b8598a3fe245813d0344b51ab",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "referenceSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/final/sprite.png",
                        "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                        "identityBaselineY": 854,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/prompt.txt",
                        "promptSha256": "318837e70bd500711096bdc84e804ae6c6f569da563bac31028c464ecf551bfa",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                                "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/final/sprite.png",
                        "finalSha256": "d625f300897619c8231d51c9accc76d180a1f241d26c5ccc096219330cc8e277",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04",
                        "identityBaselineY": 854,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/prompt.txt",
                        "promptSha256": "b401e7f585714e67e3ecac872478c2faa1dcf733ccc1c0292c5da1304c4688f0",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/raw/source.png",
                        "rawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                                "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/final/sprite.png",
                        "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05",
                        "identityBaselineY": 854,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackPreviousFrameIndex": 4,
                        "playbackPreviousRawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/prompt.txt",
                        "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                        "providerCall": false,
                        "providerFrameIndex": 3,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/raw/source.png",
                        "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                                "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                        "sourceFrameIndex": 3,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/final/sprite.png",
                        "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06",
                        "identityBaselineY": 854,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackPreviousFrameIndex": 5,
                        "playbackPreviousRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/prompt.txt",
                        "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                        "providerCall": false,
                        "providerFrameIndex": 2,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/raw/source.png",
                        "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                                "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                        "sourceFrameIndex": 2,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png"
                    }
                ],
                "generationId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
                "ideaIdleBehaviorDeferred": "Lowers into a ready crouch with both blades apart.",
                "identityBaselineY": 854,
                "identityPolicy": "immutable-f1-raw-master",
                "idleBehavior": "One simple connected weight-shift and breath loop: lean the torso toward the screen-left planted foot, open both forearms visibly, bend both knees and shift the hips while both boot sole contacts stay at their exact F1 canvas positions, and let hair, sleeves, plus loose coat or dress hem show clear connected follow-through; then return. The pose may compress or extend naturally around the planted root, but the character must never be uniformly resized, stretched, sheared, or recentered. Keep head, torso, and boot pixel scale consistent. Held equipment follows the hands through one readable continuous arc; it never flips end-for-end or changes from carried to planted or resting.",
                "idleBehaviorSource": "locked-generic-whole-body-loop",
                "lockedParts": [
                    "recognizable face and identity",
                    "costume and equipment design",
                    "fine motifs, trim, fasteners, gems, and prop markings",
                    "palette family and pixel rendering language",
                    "body proportions and overall scale band",
                    "screen-left three-quarter facing",
                    "1024x1024 canvas and flat #ff00ff background"
                ],
                "loop": true,
                "loopMode": "ping-pong",
                "movingParts": [
                    "whole pose silhouette",
                    "center of mass",
                    "torso and hips",
                    "both arms and hands",
                    "knees, legs, boots, and stance",
                    "hair and sleeves",
                    "coat tails, dress, cape, and hem",
                    "held equipment following the hands"
                ],
                "parentPolicy": "f1-plus-previous",
                "phaseProgressPercent": [
                    0,
                    22,
                    44,
                    100,
                    44,
                    22
                ],
                "phases": [
                    "settled identity pose; motion has not started",
                    "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
                ],
                "playbackSourceFrameIndices": [
                    1,
                    2,
                    3,
                    4,
                    3,
                    2
                ],
                "posePolicy": "natural-relational",
                "preview": {
                    "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--preview-animation-gif",
                    "format": "derived-gif-preview",
                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/preview/animation.gif",
                    "sha256": "c48454be435d6468067f98e9e5813b9ed340499c101190ba17e5cc98d0dd2fa9",
                    "sourcePolicy": "final-frame-pngs-unchanged"
                },
                "providerCallCount": 4,
                "providerFrameCount": 4,
                "providerFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/final/sprite.png",
                        "finalSha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01",
                        "identityBaselineY": 854,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/prompt.txt",
                        "promptSha256": "ba169ba548051ea8e4dc3aa75b4b1eb1f5c9787241401806a64c4a34a1fafa36",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "rawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/final/sprite.png",
                        "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                        "identityBaselineY": 854,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/prompt.txt",
                        "promptSha256": "07334419e08d201ff1cb8e27825bd6e1b2809b1b8598a3fe245813d0344b51ab",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "referenceSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/final/sprite.png",
                        "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                        "identityBaselineY": 854,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/prompt.txt",
                        "promptSha256": "318837e70bd500711096bdc84e804ae6c6f569da563bac31028c464ecf551bfa",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                                "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/final/sprite.png",
                        "finalSha256": "d625f300897619c8231d51c9accc76d180a1f241d26c5ccc096219330cc8e277",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04",
                        "identityBaselineY": 854,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/prompt.txt",
                        "promptSha256": "b401e7f585714e67e3ecac872478c2faa1dcf733ccc1c0292c5da1304c4688f0",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/raw/source.png",
                        "rawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                                "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "providerModel": "gpt-image-2-2026-04-21",
                "rootPolicy": {
                    "allowedCorrection": "lossless whole-canvas integer translation only",
                    "exactProviderRootRequired": false,
                    "measuredAfterGeneration": true,
                    "poseDependentHorizontalFootMotionPreserved": true,
                    "providerConstraint": "at least one boot sole within 16px of F1 baseline"
                },
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameCount": 4,
                "sourceFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/final/sprite.png",
                        "finalSha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01",
                        "identityBaselineY": 854,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/prompt.txt",
                        "promptSha256": "ba169ba548051ea8e4dc3aa75b4b1eb1f5c9787241401806a64c4a34a1fafa36",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "rawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/final/sprite.png",
                        "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                        "identityBaselineY": 854,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/prompt.txt",
                        "promptSha256": "07334419e08d201ff1cb8e27825bd6e1b2809b1b8598a3fe245813d0344b51ab",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "referenceSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/final/sprite.png",
                        "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                        "identityBaselineY": 854,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/prompt.txt",
                        "promptSha256": "318837e70bd500711096bdc84e804ae6c6f569da563bac31028c464ecf551bfa",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                                "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/final/sprite.png",
                        "finalSha256": "d625f300897619c8231d51c9accc76d180a1f241d26c5ccc096219330cc8e277",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04",
                        "identityBaselineY": 854,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/prompt.txt",
                        "promptSha256": "b401e7f585714e67e3ecac872478c2faa1dcf733ccc1c0292c5da1304c4688f0",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/raw/source.png",
                        "rawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                                "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "stylePolicy": "elder-a-master"
            }
        },
        "artifact-index.json": {
            "sha256": "8c07b25d6c462c8e1367a06f45abbf9a708d82d6bf5c0ad14d2333fa0dc29d8e",
            "bytes": 8595,
            "value": {
                "artifactCount": 31,
                "artifacts": [
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--animation-json",
                        "bytes": 63456,
                        "path": "animation.json",
                        "sha256": "e9b6ae4b54f50919514558b98c43bb2de9cec1bbe314ba626fb76d43c65482e4"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--final-sprite-png",
                        "bytes": 913701,
                        "path": "final/sprite.png",
                        "sha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-final-sprite-png",
                        "bytes": 913701,
                        "path": "frames/01/final/sprite.png",
                        "sha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-prompt-txt",
                        "bytes": 1422,
                        "path": "frames/01/prompt.txt",
                        "sha256": "ba169ba548051ea8e4dc3aa75b4b1eb1f5c9787241401806a64c4a34a1fafa36"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-raw-source-png",
                        "bytes": 947310,
                        "path": "frames/01/raw/source.png",
                        "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-receipt-json",
                        "bytes": 4913,
                        "path": "frames/01/receipt.json",
                        "sha256": "72dda9df15d9acf5c3399c4d421c4e7976c00f275a38440091ac190c5c7b9fb6"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                        "bytes": 954150,
                        "path": "frames/02/final/sprite.png",
                        "sha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-prompt-txt",
                        "bytes": 5404,
                        "path": "frames/02/prompt.txt",
                        "sha256": "07334419e08d201ff1cb8e27825bd6e1b2809b1b8598a3fe245813d0344b51ab"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                        "bytes": 979358,
                        "path": "frames/02/raw/source.png",
                        "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-receipt-json",
                        "bytes": 5816,
                        "path": "frames/02/receipt.json",
                        "sha256": "7a2740b9e50f02cc13aadcb965f85bab0d56a231f57fb4effddd6323955c81bf"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                        "bytes": 971576,
                        "path": "frames/03/final/sprite.png",
                        "sha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-prompt-txt",
                        "bytes": 5287,
                        "path": "frames/03/prompt.txt",
                        "sha256": "318837e70bd500711096bdc84e804ae6c6f569da563bac31028c464ecf551bfa"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                        "bytes": 990527,
                        "path": "frames/03/raw/source.png",
                        "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-receipt-json",
                        "bytes": 6004,
                        "path": "frames/03/receipt.json",
                        "sha256": "aba9f51c649c1c4163dcf59eb6637f52a096bc35fa51142fbcf2a9ff314f1f52"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-final-sprite-png",
                        "bytes": 1109790,
                        "path": "frames/04/final/sprite.png",
                        "sha256": "d625f300897619c8231d51c9accc76d180a1f241d26c5ccc096219330cc8e277"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-prompt-txt",
                        "bytes": 5214,
                        "path": "frames/04/prompt.txt",
                        "sha256": "b401e7f585714e67e3ecac872478c2faa1dcf733ccc1c0292c5da1304c4688f0"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-raw-source-png",
                        "bytes": 1122757,
                        "path": "frames/04/raw/source.png",
                        "sha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-receipt-json",
                        "bytes": 5933,
                        "path": "frames/04/receipt.json",
                        "sha256": "2cbcdac8b0281b7dbaf41eb5aed6d04fb8124c0f4ded9178525aa26381065543"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-final-sprite-png",
                        "bytes": 971576,
                        "path": "frames/05/final/sprite.png",
                        "sha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-prompt-txt",
                        "bytes": 125,
                        "path": "frames/05/prompt.txt",
                        "sha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-raw-source-png",
                        "bytes": 990527,
                        "path": "frames/05/raw/source.png",
                        "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-receipt-json",
                        "bytes": 4991,
                        "path": "frames/05/receipt.json",
                        "sha256": "80a29006582e8afafde0efc360da8b577a0e10baedcd07a6e093fba90062c7c6"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-final-sprite-png",
                        "bytes": 954150,
                        "path": "frames/06/final/sprite.png",
                        "sha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-prompt-txt",
                        "bytes": 125,
                        "path": "frames/06/prompt.txt",
                        "sha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-raw-source-png",
                        "bytes": 979358,
                        "path": "frames/06/raw/source.png",
                        "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-receipt-json",
                        "bytes": 5580,
                        "path": "frames/06/receipt.json",
                        "sha256": "89c54575df3ea618f67e5cc0af104e5d4bdc836b2940f534119e0dba54587564"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--preview-animation-gif",
                        "bytes": 472260,
                        "path": "preview/animation.gif",
                        "sha256": "c48454be435d6468067f98e9e5813b9ed340499c101190ba17e5cc98d0dd2fa9"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--prompt-txt",
                        "bytes": 1422,
                        "path": "prompt.txt",
                        "sha256": "ba169ba548051ea8e4dc3aa75b4b1eb1f5c9787241401806a64c4a34a1fafa36"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--raw-source-png",
                        "bytes": 947310,
                        "path": "raw/source.png",
                        "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--receipt-json",
                        "bytes": 56723,
                        "path": "receipt.json",
                        "sha256": "ab57eb65e398a60a8c9c42c6d5bdb4a79d81c93d13e788e1bbc08f802a42626c"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--request-json",
                        "bytes": 66316,
                        "path": "request.json",
                        "sha256": "6ec4272438e8f3dfdb1487473bfb70feed790ef54863bfff7a556d06e4ddfef1"
                    }
                ],
                "excludedSelfReferentialFiles": [
                    "manifest.json",
                    "artifact-index.json"
                ],
                "generationId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
                "schemaVersion": "midgard-pixels.ragnarok-artifact-index.v1"
            }
        },
        "frames/01/receipt.json": {
            "sha256": "72dda9df15d9acf5c3399c4d421c4e7976c00f275a38440091ac190c5c7b9fb6",
            "bytes": 4913,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 35.73513677041127,
                "borderColorMedian": [
                    247,
                    4,
                    239
                ],
                "borderConnectedChromaPixels": 871727,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 822,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Mistblade Assassin",
                "classSource": "idea-pool.title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:27:06.174790Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 628,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 1021,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 0,
                "enclosedComponentCount": 0,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-final-sprite-png",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01",
                "frameIndex": 1,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
                "ideaId": "mistblade-assassin",
                "ideaSource": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/character-test-idea-ledger-v1.json",
                "ideaTitle": "Mistblade Assassin",
                "identityBaselineY": 854,
                "identityRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                "inputSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                "keyCoreBorderConnectedPixels": 871727,
                "keyCorePixels": 871727,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.98709623707387,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc",
                "paletteReduced": false,
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 958,
                "preservedSmallKeyColorPixels": 6,
                "promptArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "removedChromaPixels": 874198,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman Mistblade Assassin, wearing fitted dark field armor with a long scarf and twin short blades, holding a low controlled crouch with no exaggerated effects.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 1,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/02/receipt.json": {
            "sha256": "7a2740b9e50f02cc13aadcb965f85bab0d56a231f57fb4effddd6323955c81bf",
            "bytes": 5816,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 36.0416425818802,
                "borderColorMedian": [
                    248,
                    6,
                    231
                ],
                "borderConnectedChromaPixels": 873741,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 898,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Mistblade Assassin",
                "classSource": "idea-pool.title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:27:06.174790Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 666,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 910,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 174,
                "enclosedComponentCount": 5,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                "frameIndex": 2,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
                "ideaId": "mistblade-assassin",
                "ideaSource": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/character-test-idea-ledger-v1.json",
                "ideaTitle": "Mistblade Assassin",
                "identityBaselineY": 854,
                "identityRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                "inputSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                "keyCoreBorderConnectedPixels": 873741,
                "keyCorePixels": 873915,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.96451206647282,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                "paletteReduced": false,
                "parentFrameIndex": 1,
                "parentRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 606,
                "preservedSmallKeyColorPixels": 2,
                "promptArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                "referenceSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                    }
                ],
                "removedChromaPixels": 876389,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman Mistblade Assassin, wearing fitted dark field armor with a long scarf and twin short blades, holding a low controlled crouch with no exaggerated effects.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 2,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/03/receipt.json": {
            "sha256": "aba9f51c649c1c4163dcf59eb6637f52a096bc35fa51142fbcf2a9ff314f1f52",
            "bytes": 6004,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 32.28002478313795,
                "borderColorMedian": [
                    241,
                    6,
                    228
                ],
                "borderConnectedChromaPixels": 861509,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 670,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Mistblade Assassin",
                "classSource": "idea-pool.title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:27:06.174790Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 610,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 946,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 1504,
                "enclosedComponentCount": 6,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                "frameIndex": 3,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
                "ideaId": "mistblade-assassin",
                "ideaSource": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/character-test-idea-ledger-v1.json",
                "ideaTitle": "Mistblade Assassin",
                "identityBaselineY": 854,
                "identityRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                "inputSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                "keyCoreBorderConnectedPixels": 861509,
                "keyCorePixels": 863013,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.97419139972953,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                "paletteReduced": false,
                "parentFrameIndex": 2,
                "parentRawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 311,
                "preservedSmallKeyColorPixels": 0,
                "promptArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                    }
                ],
                "removedChromaPixels": 865239,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman Mistblade Assassin, wearing fitted dark field armor with a long scarf and twin short blades, holding a low controlled crouch with no exaggerated effects.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 3,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/04/receipt.json": {
            "sha256": "2cbcdac8b0281b7dbaf41eb5aed6d04fb8124c0f4ded9178525aa26381065543",
            "bytes": 5933,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 32.69556544854363,
                "borderColorMedian": [
                    238,
                    5,
                    224
                ],
                "borderConnectedChromaPixels": 840164,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 918,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Mistblade Assassin",
                "classSource": "idea-pool.title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:27:06.174790Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 693,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 1155,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 3265,
                "enclosedComponentCount": 4,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-final-sprite-png",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04",
                "frameIndex": 4,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
                "ideaId": "mistblade-assassin",
                "ideaSource": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/character-test-idea-ledger-v1.json",
                "ideaTitle": "Mistblade Assassin",
                "identityBaselineY": 854,
                "identityRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/raw/source.png",
                "inputSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                "keyCoreBorderConnectedPixels": 840164,
                "keyCorePixels": 843429,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.98709623707387,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "d625f300897619c8231d51c9accc76d180a1f241d26c5ccc096219330cc8e277",
                "paletteReduced": false,
                "parentFrameIndex": 3,
                "parentRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 248,
                "preservedSmallKeyColorPixels": 0,
                "promptArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                    }
                ],
                "removedChromaPixels": 846195,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman Mistblade Assassin, wearing fitted dark field armor with a long scarf and twin short blades, holding a low controlled crouch with no exaggerated effects.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 4,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/05/receipt.json": {
            "sha256": "80a29006582e8afafde0efc360da8b577a0e10baedcd07a6e093fba90062c7c6",
            "bytes": 4991,
            "value": {
                "action": "idle",
                "anchorGuide": null,
                "byteIdentityVerified": true,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Mistblade Assassin",
                "classSource": "idea-pool.title",
                "createdAt": "2026-07-24T22:27:06.174790Z",
                "durationMs": 120,
                "exactByteReuse": true,
                "finalArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-final-sprite-png",
                "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05",
                "frameIndex": 5,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
                "ideaId": "mistblade-assassin",
                "ideaSource": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/character-test-idea-ledger-v1.json",
                "ideaTitle": "Mistblade Assassin",
                "identityBaselineY": 854,
                "identityRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                "loopMode": "ping-pong",
                "operation": "exact-byte-ping-pong-reuse",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackPreviousFrameIndex": 4,
                "playbackPreviousRawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "promptArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-prompt-txt",
                "providerCall": false,
                "providerFrameIndex": 3,
                "providerGenerated": false,
                "rawArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-raw-source-png",
                "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                "receiptArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                    }
                ],
                "request": "Create a white adult human woman Mistblade Assassin, wearing fitted dark field armor with a long scarf and twin short blades, holding a low controlled crouch with no exaggerated effects.",
                "runId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFinal": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/final/sprite.png",
                "sourceFinalArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                "sourceFinalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                "sourceFrameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                "sourceFrameIndex": 3,
                "sourceProvided": false,
                "sourceRaw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                "sourceRawArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                "sourceRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
            }
        },
        "frames/06/receipt.json": {
            "sha256": "89c54575df3ea618f67e5cc0af104e5d4bdc836b2940f534119e0dba54587564",
            "bytes": 5580,
            "value": {
                "action": "idle",
                "anchorGuide": null,
                "byteIdentityVerified": true,
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Mistblade Assassin",
                "classSource": "idea-pool.title",
                "createdAt": "2026-07-24T22:27:06.174790Z",
                "durationMs": 120,
                "exactByteReuse": true,
                "finalArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-final-sprite-png",
                "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06",
                "frameIndex": 6,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
                "ideaId": "mistblade-assassin",
                "ideaSource": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/character-test-idea-ledger-v1.json",
                "ideaTitle": "Mistblade Assassin",
                "identityBaselineY": 854,
                "identityRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                "loopMode": "ping-pong",
                "operation": "exact-byte-ping-pong-reuse",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackPreviousFrameIndex": 5,
                "playbackPreviousRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "promptArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-prompt-txt",
                "providerCall": false,
                "providerFrameIndex": 2,
                "providerGenerated": false,
                "rawArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-raw-source-png",
                "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                "receiptArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                    }
                ],
                "request": "Create a white adult human woman Mistblade Assassin, wearing fitted dark field armor with a long scarf and twin short blades, holding a low controlled crouch with no exaggerated effects.",
                "runId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFinal": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/final/sprite.png",
                "sourceFinalArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                "sourceFinalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                "sourceFrameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                "sourceFrameIndex": 2,
                "sourceProvided": false,
                "sourceRaw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                "sourceRawArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                "sourceRawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
            }
        },
        "manifest.json": {
            "sha256": "3d53b098f3ca99380a6818e178da987b2495a4e9dbf2e8feeebe9e246ec9345f",
            "bytes": 125552,
            "value": {
                "animation": {
                    "action": "idle",
                    "anchorGuide": null,
                    "anchorGuidePolicy": "none",
                    "durationMs": 120,
                    "f1ProviderModel": "gpt-image-2-2026-04-21",
                    "frameCount": 6,
                    "frames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/final/sprite.png",
                            "finalSha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01",
                            "identityBaselineY": 854,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/prompt.txt",
                            "promptSha256": "ba169ba548051ea8e4dc3aa75b4b1eb1f5c9787241401806a64c4a34a1fafa36",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                            "rawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/final/sprite.png",
                            "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                            "identityBaselineY": 854,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/prompt.txt",
                            "promptSha256": "07334419e08d201ff1cb8e27825bd6e1b2809b1b8598a3fe245813d0344b51ab",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                            "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                            "referenceSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                    "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/final/sprite.png",
                            "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                            "identityBaselineY": 854,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/prompt.txt",
                            "promptSha256": "318837e70bd500711096bdc84e804ae6c6f569da563bac31028c464ecf551bfa",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                            "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                            "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                    "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                                    "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/final/sprite.png",
                            "finalSha256": "d625f300897619c8231d51c9accc76d180a1f241d26c5ccc096219330cc8e277",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04",
                            "identityBaselineY": 854,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/prompt.txt",
                            "promptSha256": "b401e7f585714e67e3ecac872478c2faa1dcf733ccc1c0292c5da1304c4688f0",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/raw/source.png",
                            "rawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                            "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                    "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                                    "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/final/sprite.png",
                            "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05",
                            "identityBaselineY": 854,
                            "index": 5,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackPreviousFrameIndex": 4,
                            "playbackPreviousRawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/prompt.txt",
                            "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                            "providerCall": false,
                            "providerFrameIndex": 3,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/raw/source.png",
                            "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                            "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                                    "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                            "sourceFrameIndex": 3,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png"
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/final/sprite.png",
                            "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06",
                            "identityBaselineY": 854,
                            "index": 6,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackPreviousFrameIndex": 5,
                            "playbackPreviousRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/prompt.txt",
                            "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                            "providerCall": false,
                            "providerFrameIndex": 2,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/raw/source.png",
                            "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                            "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                                    "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                            "sourceFrameIndex": 2,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png"
                        }
                    ],
                    "generationId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
                    "ideaIdleBehaviorDeferred": "Lowers into a ready crouch with both blades apart.",
                    "identityBaselineY": 854,
                    "identityPolicy": "immutable-f1-raw-master",
                    "idleBehavior": "One simple connected weight-shift and breath loop: lean the torso toward the screen-left planted foot, open both forearms visibly, bend both knees and shift the hips while both boot sole contacts stay at their exact F1 canvas positions, and let hair, sleeves, plus loose coat or dress hem show clear connected follow-through; then return. The pose may compress or extend naturally around the planted root, but the character must never be uniformly resized, stretched, sheared, or recentered. Keep head, torso, and boot pixel scale consistent. Held equipment follows the hands through one readable continuous arc; it never flips end-for-end or changes from carried to planted or resting.",
                    "idleBehaviorSource": "locked-generic-whole-body-loop",
                    "lockedParts": [
                        "recognizable face and identity",
                        "costume and equipment design",
                        "fine motifs, trim, fasteners, gems, and prop markings",
                        "palette family and pixel rendering language",
                        "body proportions and overall scale band",
                        "screen-left three-quarter facing",
                        "1024x1024 canvas and flat #ff00ff background"
                    ],
                    "loop": true,
                    "loopMode": "ping-pong",
                    "movingParts": [
                        "whole pose silhouette",
                        "center of mass",
                        "torso and hips",
                        "both arms and hands",
                        "knees, legs, boots, and stance",
                        "hair and sleeves",
                        "coat tails, dress, cape, and hem",
                        "held equipment following the hands"
                    ],
                    "parentPolicy": "f1-plus-previous",
                    "phaseProgressPercent": [
                        0,
                        22,
                        44,
                        100,
                        44,
                        22
                    ],
                    "phases": [
                        "settled identity pose; motion has not started",
                        "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
                    ],
                    "playbackSourceFrameIndices": [
                        1,
                        2,
                        3,
                        4,
                        3,
                        2
                    ],
                    "posePolicy": "natural-relational",
                    "preview": {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--preview-animation-gif",
                        "format": "derived-gif-preview",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/preview/animation.gif",
                        "sha256": "c48454be435d6468067f98e9e5813b9ed340499c101190ba17e5cc98d0dd2fa9",
                        "sourcePolicy": "final-frame-pngs-unchanged"
                    },
                    "providerCallCount": 4,
                    "providerFrameCount": 4,
                    "providerFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/final/sprite.png",
                            "finalSha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01",
                            "identityBaselineY": 854,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/prompt.txt",
                            "promptSha256": "ba169ba548051ea8e4dc3aa75b4b1eb1f5c9787241401806a64c4a34a1fafa36",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                            "rawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/final/sprite.png",
                            "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                            "identityBaselineY": 854,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/prompt.txt",
                            "promptSha256": "07334419e08d201ff1cb8e27825bd6e1b2809b1b8598a3fe245813d0344b51ab",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                            "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                            "referenceSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                    "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/final/sprite.png",
                            "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                            "identityBaselineY": 854,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/prompt.txt",
                            "promptSha256": "318837e70bd500711096bdc84e804ae6c6f569da563bac31028c464ecf551bfa",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                            "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                            "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                    "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                                    "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/final/sprite.png",
                            "finalSha256": "d625f300897619c8231d51c9accc76d180a1f241d26c5ccc096219330cc8e277",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04",
                            "identityBaselineY": 854,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/prompt.txt",
                            "promptSha256": "b401e7f585714e67e3ecac872478c2faa1dcf733ccc1c0292c5da1304c4688f0",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/raw/source.png",
                            "rawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                            "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                    "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                                    "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        }
                    ],
                    "providerModel": "gpt-image-2-2026-04-21",
                    "rootPolicy": {
                        "allowedCorrection": "lossless whole-canvas integer translation only",
                        "exactProviderRootRequired": false,
                        "measuredAfterGeneration": true,
                        "poseDependentHorizontalFootMotionPreserved": true,
                        "providerConstraint": "at least one boot sole within 16px of F1 baseline"
                    },
                    "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                    "sourceFrameCount": 4,
                    "sourceFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/final/sprite.png",
                            "finalSha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01",
                            "identityBaselineY": 854,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/prompt.txt",
                            "promptSha256": "ba169ba548051ea8e4dc3aa75b4b1eb1f5c9787241401806a64c4a34a1fafa36",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                            "rawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/final/sprite.png",
                            "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                            "identityBaselineY": 854,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/prompt.txt",
                            "promptSha256": "07334419e08d201ff1cb8e27825bd6e1b2809b1b8598a3fe245813d0344b51ab",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                            "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                            "referenceSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                    "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/final/sprite.png",
                            "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                            "identityBaselineY": 854,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/prompt.txt",
                            "promptSha256": "318837e70bd500711096bdc84e804ae6c6f569da563bac31028c464ecf551bfa",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                            "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                            "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                    "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                                    "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/final/sprite.png",
                            "finalSha256": "d625f300897619c8231d51c9accc76d180a1f241d26c5ccc096219330cc8e277",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04",
                            "identityBaselineY": 854,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/prompt.txt",
                            "promptSha256": "b401e7f585714e67e3ecac872478c2faa1dcf733ccc1c0292c5da1304c4688f0",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/raw/source.png",
                            "rawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                            "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                    "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                                    "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        }
                    ],
                    "stylePolicy": "elder-a-master"
                },
                "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--manifest-json",
                "artifactIndex": {
                    "artifactCount": 31,
                    "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--artifact-index-json",
                    "exclusions": [
                        "manifest.json",
                        "artifact-index.json"
                    ],
                    "path": "artifact-index.json",
                    "sha256": "8c07b25d6c462c8e1367a06f45abbf9a708d82d6bf5c0ad14d2333fa0dc29d8e"
                },
                "artifacts": {
                    "animation": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--animation-json",
                    "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--final-sprite-png",
                    "generationId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
                    "manifest": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--manifest-json",
                    "preview": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--preview-animation-gif",
                    "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--prompt-txt",
                    "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--raw-source-png",
                    "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--receipt-json",
                    "request": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--request-json"
                },
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Mistblade Assassin",
                "classSource": "idea-pool.title",
                "createdAt": "2026-07-24T22:27:06.174790Z",
                "final": "final/sprite.png",
                "finalArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--final-sprite-png",
                "finalSha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc",
                "frames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/final/sprite.png",
                        "finalSha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01",
                        "identityBaselineY": 854,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/prompt.txt",
                        "promptSha256": "ba169ba548051ea8e4dc3aa75b4b1eb1f5c9787241401806a64c4a34a1fafa36",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "rawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/final/sprite.png",
                        "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                        "identityBaselineY": 854,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/prompt.txt",
                        "promptSha256": "07334419e08d201ff1cb8e27825bd6e1b2809b1b8598a3fe245813d0344b51ab",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "referenceSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/final/sprite.png",
                        "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                        "identityBaselineY": 854,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/prompt.txt",
                        "promptSha256": "318837e70bd500711096bdc84e804ae6c6f569da563bac31028c464ecf551bfa",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                                "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/final/sprite.png",
                        "finalSha256": "d625f300897619c8231d51c9accc76d180a1f241d26c5ccc096219330cc8e277",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04",
                        "identityBaselineY": 854,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/prompt.txt",
                        "promptSha256": "b401e7f585714e67e3ecac872478c2faa1dcf733ccc1c0292c5da1304c4688f0",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/raw/source.png",
                        "rawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                                "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/final/sprite.png",
                        "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05",
                        "identityBaselineY": 854,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackPreviousFrameIndex": 4,
                        "playbackPreviousRawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/prompt.txt",
                        "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                        "providerCall": false,
                        "providerFrameIndex": 3,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/raw/source.png",
                        "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                                "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                        "sourceFrameIndex": 3,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/final/sprite.png",
                        "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06",
                        "identityBaselineY": 854,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackPreviousFrameIndex": 5,
                        "playbackPreviousRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/prompt.txt",
                        "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                        "providerCall": false,
                        "providerFrameIndex": 2,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/raw/source.png",
                        "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                                "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                        "sourceFrameIndex": 2,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png"
                    }
                ],
                "gender": "woman",
                "genderSource": "idea-pool.gender",
                "generation": {
                    "anchorGuidePolicy": "none",
                    "animationImageCount": 3,
                    "animationModel": "gpt-image-2-2026-04-21",
                    "attemptedCalls": 4,
                    "completedCalls": 4,
                    "f1ImageCount": 1,
                    "f1Model": "gpt-image-2-2026-04-21",
                    "imageCount": 4,
                    "inputFidelity": "unsupported-omitted",
                    "inputFidelityRequested": false,
                    "loopMode": "ping-pong",
                    "maximumReferenceCount": 2,
                    "model": "gpt-image-2-2026-04-21",
                    "operation": "chained-image-edit-plus-exact-ping-pong-reuse",
                    "playbackFrameCount": 6,
                    "playbackSourceFrameIndices": [
                        1,
                        2,
                        3,
                        4,
                        3,
                        2
                    ],
                    "posePolicy": "natural-relational",
                    "providerFrameCount": 4,
                    "quality": "medium",
                    "referenceCountsBySourceFrame": {
                        "1": 1,
                        "2": 1,
                        "3": 2,
                        "4": 2
                    },
                    "referenceOrderPolicy": [
                        "f1RawIdentity",
                        "previousRawOpaque"
                    ],
                    "size": "1024x1024",
                    "sourceFrameCount": 4,
                    "tool": "openai-image"
                },
                "generationId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
                "ideaId": "mistblade-assassin",
                "ideaSource": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/character-test-idea-ledger-v1.json",
                "ideaTitle": "Mistblade Assassin",
                "postProcessing": {
                    "alphaOnly": true,
                    "despilled": false,
                    "feathered": false,
                    "filtered": false,
                    "paletteReduced": false,
                    "resampled": false,
                    "resized": false,
                    "translated": false
                },
                "prompt": "prompt.txt",
                "promptSha256": "ba169ba548051ea8e4dc3aa75b4b1eb1f5c9787241401806a64c4a34a1fafa36",
                "providerCallCount": 4,
                "providerFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/final/sprite.png",
                        "finalSha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01",
                        "identityBaselineY": 854,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/prompt.txt",
                        "promptSha256": "ba169ba548051ea8e4dc3aa75b4b1eb1f5c9787241401806a64c4a34a1fafa36",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "rawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/final/sprite.png",
                        "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                        "identityBaselineY": 854,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/prompt.txt",
                        "promptSha256": "07334419e08d201ff1cb8e27825bd6e1b2809b1b8598a3fe245813d0344b51ab",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "referenceSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/final/sprite.png",
                        "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                        "identityBaselineY": 854,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/prompt.txt",
                        "promptSha256": "318837e70bd500711096bdc84e804ae6c6f569da563bac31028c464ecf551bfa",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                                "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/final/sprite.png",
                        "finalSha256": "d625f300897619c8231d51c9accc76d180a1f241d26c5ccc096219330cc8e277",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04",
                        "identityBaselineY": 854,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/prompt.txt",
                        "promptSha256": "b401e7f585714e67e3ecac872478c2faa1dcf733ccc1c0292c5da1304c4688f0",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/raw/source.png",
                        "rawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                                "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "raw": "raw/source.png",
                "rawArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--raw-source-png",
                "rawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "representative": "final/sprite.png",
                "runId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/final/sprite.png",
                        "finalSha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01",
                        "identityBaselineY": 854,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/prompt.txt",
                        "promptSha256": "ba169ba548051ea8e4dc3aa75b4b1eb1f5c9787241401806a64c4a34a1fafa36",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "rawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/final/sprite.png",
                        "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                        "identityBaselineY": 854,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/prompt.txt",
                        "promptSha256": "07334419e08d201ff1cb8e27825bd6e1b2809b1b8598a3fe245813d0344b51ab",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "referenceSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/final/sprite.png",
                        "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                        "identityBaselineY": 854,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/prompt.txt",
                        "promptSha256": "318837e70bd500711096bdc84e804ae6c6f569da563bac31028c464ecf551bfa",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                                "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/final/sprite.png",
                        "finalSha256": "d625f300897619c8231d51c9accc76d180a1f241d26c5ccc096219330cc8e277",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04",
                        "identityBaselineY": 854,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/prompt.txt",
                        "promptSha256": "b401e7f585714e67e3ecac872478c2faa1dcf733ccc1c0292c5da1304c4688f0",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/raw/source.png",
                        "rawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                                "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "sourceGenerationId": null,
                "status": "animated-command-review-required",
                "summary": "f1-plus-previous 6-frame idle ping-pong animation from 4 provider-generated frame(s); every playback frame preserves raw and alpha-only final evidence.",
                "title": "ragnarok-create · Mistblade Assassin · idle animation",
                "userRequest": "Create a white adult human woman Mistblade Assassin, wearing fitted dark field armor with a long scarf and twin short blades, holding a low controlled crouch with no exaggerated effects."
            }
        },
        "receipt.json": {
            "sha256": "ab57eb65e398a60a8c9c42c6d5bdb4a79d81c93d13e788e1bbc08f802a42626c",
            "bytes": 56723,
            "value": {
                "anchorGuide": null,
                "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--receipt-json",
                "f1ProviderModel": "gpt-image-2-2026-04-21",
                "frameCount": 6,
                "frames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/final/sprite.png",
                        "finalSha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01",
                        "identityBaselineY": 854,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/prompt.txt",
                        "promptSha256": "ba169ba548051ea8e4dc3aa75b4b1eb1f5c9787241401806a64c4a34a1fafa36",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "rawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/final/sprite.png",
                        "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                        "identityBaselineY": 854,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/prompt.txt",
                        "promptSha256": "07334419e08d201ff1cb8e27825bd6e1b2809b1b8598a3fe245813d0344b51ab",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "referenceSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/final/sprite.png",
                        "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                        "identityBaselineY": 854,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/prompt.txt",
                        "promptSha256": "318837e70bd500711096bdc84e804ae6c6f569da563bac31028c464ecf551bfa",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                                "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/final/sprite.png",
                        "finalSha256": "d625f300897619c8231d51c9accc76d180a1f241d26c5ccc096219330cc8e277",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04",
                        "identityBaselineY": 854,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/prompt.txt",
                        "promptSha256": "b401e7f585714e67e3ecac872478c2faa1dcf733ccc1c0292c5da1304c4688f0",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/raw/source.png",
                        "rawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                                "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/final/sprite.png",
                        "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05",
                        "identityBaselineY": 854,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackPreviousFrameIndex": 4,
                        "playbackPreviousRawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/prompt.txt",
                        "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                        "providerCall": false,
                        "providerFrameIndex": 3,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/raw/source.png",
                        "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                                "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                        "sourceFrameIndex": 3,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/final/sprite.png",
                        "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06",
                        "identityBaselineY": 854,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackPreviousFrameIndex": 5,
                        "playbackPreviousRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/prompt.txt",
                        "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                        "providerCall": false,
                        "providerFrameIndex": 2,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/raw/source.png",
                        "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                                "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                        "sourceFrameIndex": 2,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png"
                    }
                ],
                "generationId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
                "loopMode": "ping-pong",
                "playbackSourceFrameIndices": [
                    1,
                    2,
                    3,
                    4,
                    3,
                    2
                ],
                "posePolicy": "natural-relational",
                "providerCallCount": 4,
                "providerCallCountAttempted": 4,
                "providerCallCountCompleted": 4,
                "providerFrameCount": 4,
                "providerFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/final/sprite.png",
                        "finalSha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01",
                        "identityBaselineY": 854,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/prompt.txt",
                        "promptSha256": "ba169ba548051ea8e4dc3aa75b4b1eb1f5c9787241401806a64c4a34a1fafa36",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "rawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/final/sprite.png",
                        "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                        "identityBaselineY": 854,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/prompt.txt",
                        "promptSha256": "07334419e08d201ff1cb8e27825bd6e1b2809b1b8598a3fe245813d0344b51ab",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "referenceSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/final/sprite.png",
                        "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                        "identityBaselineY": 854,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/prompt.txt",
                        "promptSha256": "318837e70bd500711096bdc84e804ae6c6f569da563bac31028c464ecf551bfa",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                                "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/final/sprite.png",
                        "finalSha256": "d625f300897619c8231d51c9accc76d180a1f241d26c5ccc096219330cc8e277",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04",
                        "identityBaselineY": 854,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/prompt.txt",
                        "promptSha256": "b401e7f585714e67e3ecac872478c2faa1dcf733ccc1c0292c5da1304c4688f0",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/raw/source.png",
                        "rawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                                "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "providerModel": "gpt-image-2-2026-04-21",
                "runId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameCount": 4,
                "sourceFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/final/sprite.png",
                        "finalSha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01",
                        "identityBaselineY": 854,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/prompt.txt",
                        "promptSha256": "ba169ba548051ea8e4dc3aa75b4b1eb1f5c9787241401806a64c4a34a1fafa36",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "rawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/final/sprite.png",
                        "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                        "identityBaselineY": 854,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/prompt.txt",
                        "promptSha256": "07334419e08d201ff1cb8e27825bd6e1b2809b1b8598a3fe245813d0344b51ab",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                        "referenceSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/final/sprite.png",
                        "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                        "identityBaselineY": 854,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/prompt.txt",
                        "promptSha256": "318837e70bd500711096bdc84e804ae6c6f569da563bac31028c464ecf551bfa",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                        "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                                "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/final/sprite.png",
                        "finalSha256": "d625f300897619c8231d51c9accc76d180a1f241d26c5ccc096219330cc8e277",
                        "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04",
                        "identityBaselineY": 854,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/prompt.txt",
                        "promptSha256": "b401e7f585714e67e3ecac872478c2faa1dcf733ccc1c0292c5da1304c4688f0",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/raw/source.png",
                        "rawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                        "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                                "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "sourceGenerationId": null
            }
        },
        "request.json": {
            "sha256": "6ec4272438e8f3dfdb1487473bfb70feed790ef54863bfff7a556d06e4ddfef1",
            "bytes": 66316,
            "value": {
                "animation": {
                    "action": "idle",
                    "anchorGuide": null,
                    "anchorGuidePolicy": "none",
                    "durationMs": 120,
                    "f1ProviderModel": "gpt-image-2-2026-04-21",
                    "frameCount": 6,
                    "frames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/final/sprite.png",
                            "finalSha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01",
                            "identityBaselineY": 854,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/prompt.txt",
                            "promptSha256": "ba169ba548051ea8e4dc3aa75b4b1eb1f5c9787241401806a64c4a34a1fafa36",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                            "rawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/final/sprite.png",
                            "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                            "identityBaselineY": 854,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/prompt.txt",
                            "promptSha256": "07334419e08d201ff1cb8e27825bd6e1b2809b1b8598a3fe245813d0344b51ab",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                            "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                            "referenceSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                    "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/final/sprite.png",
                            "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                            "identityBaselineY": 854,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/prompt.txt",
                            "promptSha256": "318837e70bd500711096bdc84e804ae6c6f569da563bac31028c464ecf551bfa",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                            "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                            "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                    "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                                    "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/final/sprite.png",
                            "finalSha256": "d625f300897619c8231d51c9accc76d180a1f241d26c5ccc096219330cc8e277",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04",
                            "identityBaselineY": 854,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/prompt.txt",
                            "promptSha256": "b401e7f585714e67e3ecac872478c2faa1dcf733ccc1c0292c5da1304c4688f0",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/raw/source.png",
                            "rawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                            "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                    "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                                    "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/final/sprite.png",
                            "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-05",
                            "identityBaselineY": 854,
                            "index": 5,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackPreviousFrameIndex": 4,
                            "playbackPreviousRawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/prompt.txt",
                            "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                            "providerCall": false,
                            "providerFrameIndex": 3,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/raw/source.png",
                            "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                            "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                                    "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                            "sourceFrameIndex": 3,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png"
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/final/sprite.png",
                            "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-06",
                            "identityBaselineY": 854,
                            "index": 6,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackPreviousFrameIndex": 5,
                            "playbackPreviousRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/prompt.txt",
                            "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                            "providerCall": false,
                            "providerFrameIndex": 2,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/raw/source.png",
                            "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                            "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                                    "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                            "sourceFrameIndex": 2,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png"
                        }
                    ],
                    "generationId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
                    "ideaIdleBehaviorDeferred": "Lowers into a ready crouch with both blades apart.",
                    "identityBaselineY": 854,
                    "identityPolicy": "immutable-f1-raw-master",
                    "idleBehavior": "One simple connected weight-shift and breath loop: lean the torso toward the screen-left planted foot, open both forearms visibly, bend both knees and shift the hips while both boot sole contacts stay at their exact F1 canvas positions, and let hair, sleeves, plus loose coat or dress hem show clear connected follow-through; then return. The pose may compress or extend naturally around the planted root, but the character must never be uniformly resized, stretched, sheared, or recentered. Keep head, torso, and boot pixel scale consistent. Held equipment follows the hands through one readable continuous arc; it never flips end-for-end or changes from carried to planted or resting.",
                    "idleBehaviorSource": "locked-generic-whole-body-loop",
                    "lockedParts": [
                        "recognizable face and identity",
                        "costume and equipment design",
                        "fine motifs, trim, fasteners, gems, and prop markings",
                        "palette family and pixel rendering language",
                        "body proportions and overall scale band",
                        "screen-left three-quarter facing",
                        "1024x1024 canvas and flat #ff00ff background"
                    ],
                    "loop": true,
                    "loopMode": "ping-pong",
                    "movingParts": [
                        "whole pose silhouette",
                        "center of mass",
                        "torso and hips",
                        "both arms and hands",
                        "knees, legs, boots, and stance",
                        "hair and sleeves",
                        "coat tails, dress, cape, and hem",
                        "held equipment following the hands"
                    ],
                    "parentPolicy": "f1-plus-previous",
                    "phaseProgressPercent": [
                        0,
                        22,
                        44,
                        100,
                        44,
                        22
                    ],
                    "phases": [
                        "settled identity pose; motion has not started",
                        "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
                    ],
                    "playbackSourceFrameIndices": [
                        1,
                        2,
                        3,
                        4,
                        3,
                        2
                    ],
                    "posePolicy": "natural-relational",
                    "preview": {
                        "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--preview-animation-gif",
                        "format": "derived-gif-preview",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/preview/animation.gif",
                        "sha256": "c48454be435d6468067f98e9e5813b9ed340499c101190ba17e5cc98d0dd2fa9",
                        "sourcePolicy": "final-frame-pngs-unchanged"
                    },
                    "providerCallCount": 4,
                    "providerFrameCount": 4,
                    "providerFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/final/sprite.png",
                            "finalSha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01",
                            "identityBaselineY": 854,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/prompt.txt",
                            "promptSha256": "ba169ba548051ea8e4dc3aa75b4b1eb1f5c9787241401806a64c4a34a1fafa36",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                            "rawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/final/sprite.png",
                            "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                            "identityBaselineY": 854,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/prompt.txt",
                            "promptSha256": "07334419e08d201ff1cb8e27825bd6e1b2809b1b8598a3fe245813d0344b51ab",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                            "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                            "referenceSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                    "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/final/sprite.png",
                            "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                            "identityBaselineY": 854,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/prompt.txt",
                            "promptSha256": "318837e70bd500711096bdc84e804ae6c6f569da563bac31028c464ecf551bfa",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                            "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                            "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                    "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                                    "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/final/sprite.png",
                            "finalSha256": "d625f300897619c8231d51c9accc76d180a1f241d26c5ccc096219330cc8e277",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04",
                            "identityBaselineY": 854,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/prompt.txt",
                            "promptSha256": "b401e7f585714e67e3ecac872478c2faa1dcf733ccc1c0292c5da1304c4688f0",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/raw/source.png",
                            "rawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                            "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                    "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                                    "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        }
                    ],
                    "providerModel": "gpt-image-2-2026-04-21",
                    "rootPolicy": {
                        "allowedCorrection": "lossless whole-canvas integer translation only",
                        "exactProviderRootRequired": false,
                        "measuredAfterGeneration": true,
                        "poseDependentHorizontalFootMotionPreserved": true,
                        "providerConstraint": "at least one boot sole within 16px of F1 baseline"
                    },
                    "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                    "sourceFrameCount": 4,
                    "sourceFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/final/sprite.png",
                            "finalSha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-01",
                            "identityBaselineY": 854,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/prompt.txt",
                            "promptSha256": "ba169ba548051ea8e4dc3aa75b4b1eb1f5c9787241401806a64c4a34a1fafa36",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                            "rawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/final/sprite.png",
                            "finalSha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-02",
                            "identityBaselineY": 854,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/prompt.txt",
                            "promptSha256": "07334419e08d201ff1cb8e27825bd6e1b2809b1b8598a3fe245813d0344b51ab",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                            "rawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                            "referenceSha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                    "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/final/sprite.png",
                            "finalSha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-03",
                            "identityBaselineY": 854,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/prompt.txt",
                            "promptSha256": "318837e70bd500711096bdc84e804ae6c6f569da563bac31028c464ecf551bfa",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                            "rawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                            "referenceSha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                    "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
                                    "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/final/sprite.png",
                            "finalSha256": "d625f300897619c8231d51c9accc76d180a1f241d26c5ccc096219330cc8e277",
                            "frameId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--frames-04",
                            "identityBaselineY": 854,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/prompt.txt",
                            "promptSha256": "b401e7f585714e67e3ecac872478c2faa1dcf733ccc1c0292c5da1304c4688f0",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/raw/source.png",
                            "rawSha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                            "referenceSha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
                                    "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
                                    "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        }
                    ],
                    "stylePolicy": "elder-a-master"
                },
                "artifactId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001--request-json",
                "category": "Classes & Combat",
                "categorySlug": "classes-combat",
                "class": "Mistblade Assassin",
                "classSource": "idea-pool.title",
                "command": "ragnarok-create --animate",
                "createdAt": "2026-07-24T22:27:06.174790Z",
                "gender": "woman",
                "genderSource": "idea-pool.gender",
                "generationId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
                "ideaId": "mistblade-assassin",
                "ideaSource": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/character-test-idea-ledger-v1.json",
                "ideaTitle": "Mistblade Assassin",
                "provider": {
                    "animationInputFidelity": "unsupported-omitted",
                    "animationModel": "gpt-image-2-2026-04-21",
                    "attemptedCalls": 4,
                    "completedCalls": 4,
                    "f1InputFidelity": "unsupported-omitted",
                    "f1Model": "gpt-image-2-2026-04-21",
                    "quality": "medium",
                    "size": "1024x1024"
                },
                "request": "Create a white adult human woman Mistblade Assassin, wearing fitted dark field armor with a long scarf and twin short blades, holding a low controlled crouch with no exaggerated effects.",
                "runId": "ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "source": null,
                "sourceGenerationId": null,
                "title": "Mistblade Assassin"
            }
        }
    },
    "media": {
        "final/sprite.png": {
            "attachment_id": 3987,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/final/sprite.png",
            "sha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc",
            "bytes": 913701,
            "mime": "image/png"
        },
        "frames/01/final/sprite.png": {
            "attachment_id": 3988,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/final/sprite.png",
            "sha256": "7cd28e6cbb08a0347a09885d015322444f0ca19fe89a98706da2615e7d3624fc",
            "bytes": 913701,
            "mime": "image/png"
        },
        "frames/01/raw/source.png": {
            "attachment_id": 3986,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/01/raw/source.png",
            "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
            "bytes": 947310,
            "mime": "image/png"
        },
        "frames/02/final/sprite.png": {
            "attachment_id": 3991,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/final/sprite.png",
            "sha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
            "bytes": 954150,
            "mime": "image/png"
        },
        "frames/02/raw/source.png": {
            "attachment_id": 3990,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/02/raw/source.png",
            "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
            "bytes": 979358,
            "mime": "image/png"
        },
        "frames/03/final/sprite.png": {
            "attachment_id": 3993,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/final/sprite.png",
            "sha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
            "bytes": 971576,
            "mime": "image/png"
        },
        "frames/03/raw/source.png": {
            "attachment_id": 3992,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/03/raw/source.png",
            "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
            "bytes": 990527,
            "mime": "image/png"
        },
        "frames/04/final/sprite.png": {
            "attachment_id": 3995,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/final/sprite.png",
            "sha256": "d625f300897619c8231d51c9accc76d180a1f241d26c5ccc096219330cc8e277",
            "bytes": 1109790,
            "mime": "image/png"
        },
        "frames/04/raw/source.png": {
            "attachment_id": 3994,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/04/raw/source.png",
            "sha256": "397c30f9b5a5a48f26d8bdd0fb3da3b3fabee6033972be5fd2fdd7fb47a614f0",
            "bytes": 1122757,
            "mime": "image/png"
        },
        "frames/05/final/sprite.png": {
            "attachment_id": 3996,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/final/sprite.png",
            "sha256": "39e845f5ce8648e8274702daaf1fa8f338b9e955ed5a3c6b40d7c08e1921473b",
            "bytes": 971576,
            "mime": "image/png"
        },
        "frames/05/raw/source.png": {
            "attachment_id": 3997,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/05/raw/source.png",
            "sha256": "95dc11a71c9bf272ac01117706d346ca44d926453a3b4453bcf36074222caa9f",
            "bytes": 990527,
            "mime": "image/png"
        },
        "frames/06/final/sprite.png": {
            "attachment_id": 3998,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/final/sprite.png",
            "sha256": "f16d68ea9c94fbe8219483e72918509d1e932626d35147fa4a083608b67b94a8",
            "bytes": 954150,
            "mime": "image/png"
        },
        "frames/06/raw/source.png": {
            "attachment_id": 3999,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/frames/06/raw/source.png",
            "sha256": "764f7ea6f32ab6cae5bfd7140bf66d3a880ff7fda923882098d9f3fa2151af0e",
            "bytes": 979358,
            "mime": "image/png"
        },
        "preview/animation.gif": {
            "attachment_id": 4000,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/preview/animation.gif",
            "sha256": "c48454be435d6468067f98e9e5813b9ed340499c101190ba17e5cc98d0dd2fa9",
            "bytes": 472260,
            "mime": "image/gif"
        },
        "raw/source.png": {
            "attachment_id": 3989,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/classes-combat/ragnarok-create-20260724T222706174790Z-mistblade-assassin-d6d001/raw/source.png",
            "sha256": "9ea4a61b5e6bd6736fec55c78e93085d7f06bb8a68c9120792d30b6323cb648d",
            "bytes": 947310,
            "mime": "image/png"
        }
    },
    "importedAt": "2026-07-24T22:30:39+00:00",
    "archiveVisibility": "publish"
}

Willowglass Dream Archivist · idle animation

Knowledge & Mysteries · 2026-07-24T22:07:21.727577Z · ID ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357

raw/source.png
Willowglass Dream Archivist · idle animation
final/sprite.png
Willowglass Dream Archivist · idle animation
frames/02/final/sprite.png
Willowglass Dream Archivist · idle animation
frames/03/final/sprite.png
Willowglass Dream Archivist · idle animation
frames/04/final/sprite.png
Willowglass Dream Archivist · idle animation
frames/05/final/sprite.png
Willowglass Dream Archivist · idle animation
frames/06/final/sprite.png
Willowglass Dream Archivist · idle animation
preview/animation.gif
Willowglass Dream Archivist · idle animation
CSS frame player · 6 frames
Additional output · frames/01/final/sprite.png
Willowglass Dream Archivist · idle animation · frames/01/final/sprite.png
Additional output · frames/01/raw/source.png
Willowglass Dream Archivist · idle animation · frames/01/raw/source.png
Additional output · frames/02/raw/source.png
Willowglass Dream Archivist · idle animation · frames/02/raw/source.png
Additional output · frames/03/raw/source.png
Willowglass Dream Archivist · idle animation · frames/03/raw/source.png
Additional output · frames/04/raw/source.png
Willowglass Dream Archivist · idle animation · frames/04/raw/source.png
Additional output · frames/05/raw/source.png
Willowglass Dream Archivist · idle animation · frames/05/raw/source.png
Additional output · frames/06/raw/source.png
Willowglass Dream Archivist · idle animation · frames/06/raw/source.png
Full metadata
{
    "schemaVersion": "midgard-pixels.wordpress-generation.v1",
    "generationId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
    "runId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
    "title": "Willowglass Dream Archivist · idle animation",
    "createdAt": "2026-07-24T22:07:21.727577Z",
    "request": "Create a white adult human woman Willowglass Dream Archivist, wearing an original layered midnight-blue academy archivist robe with restrained silver trim, long fitted sleeves, soft sturdy shoes, and dark brown shoulder-length hair, holding one small closed book at chest height with both hands, standing upright in a calm balanced neutral pose with both boot soles level and close together, and no magical effect, loose papers, additional prop, floor, or scenery.",
    "category": "Knowledge & Mysteries",
    "categorySlug": "knowledge-mysteries",
    "class": "Willowglass Dream Archivist",
    "gender": "woman",
    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
    "promptSha256": "6ecfbc451d81a95353628fc58f9d80308075ca7038469a51ac5bf2d2e0ba6ee2",
    "providerModel": "gpt-image-2-2026-04-21",
    "status": "animated-command-review-required",
    "sourcePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
    "manifest": {
        "animation": {
            "action": "idle",
            "anchorGuide": null,
            "anchorGuidePolicy": "none",
            "durationMs": 120,
            "f1ProviderModel": "gpt-image-2-2026-04-21",
            "frameCount": 6,
            "frames": [
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-prompt-txt",
                        "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-raw-source-png",
                        "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/final/sprite.png",
                    "finalSha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817",
                    "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01",
                    "identityBaselineY": 923,
                    "index": 1,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "settled identity pose; motion has not started",
                    "phaseProgressPercent": 0,
                    "playbackSourceFrameIndex": 1,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/prompt.txt",
                    "promptSha256": "6ecfbc451d81a95353628fc58f9d80308075ca7038469a51ac5bf2d2e0ba6ee2",
                    "providerCall": true,
                    "providerFrameIndex": 1,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                    "rawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                        }
                    ],
                    "sourceFrameIndex": 1,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-prompt-txt",
                        "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                        "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/final/sprite.png",
                    "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                    "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                    "identityBaselineY": 923,
                    "index": 2,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 1,
                    "parentRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                    "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 22,
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/prompt.txt",
                    "promptSha256": "c292b78e27aadf1d0ad8f902baab4dd69b17e5cab0df4798ed4e519359630a2e",
                    "providerCall": true,
                    "providerFrameIndex": 2,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                    "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                    "referenceSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                            "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                        }
                    ],
                    "sourceFrameIndex": 2,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-prompt-txt",
                        "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                        "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/final/sprite.png",
                    "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                    "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                    "identityBaselineY": 923,
                    "index": 3,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 2,
                    "parentRawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 44,
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/prompt.txt",
                    "promptSha256": "61aa77a67f4f3fe2498cdc36f011d9dca99bfa9d3361c4c548cd2664bd8d5627",
                    "providerCall": true,
                    "providerFrameIndex": 3,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                    "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                    "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                            "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                            "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                        }
                    ],
                    "sourceFrameIndex": 3,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-prompt-txt",
                        "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-raw-source-png",
                        "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/final/sprite.png",
                    "finalSha256": "301fd2106a16a17db2ef30ec1daa820eeb65f2ebade719fbb7fef3fa1d5b55c7",
                    "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04",
                    "identityBaselineY": 923,
                    "index": 4,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 3,
                    "parentRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                    "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 100,
                    "playbackSourceFrameIndex": 4,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/prompt.txt",
                    "promptSha256": "5726b2ee5527a3033e5c630b41f4b3c2a92eb98c64673257a97142abc956deb9",
                    "providerCall": true,
                    "providerFrameIndex": 4,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/raw/source.png",
                    "rawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                    "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                            "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                            "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                        }
                    ],
                    "sourceFrameIndex": 4,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-prompt-txt",
                        "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-raw-source-png",
                        "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-receipt-json"
                    },
                    "byteIdentityVerified": true,
                    "durationMs": 120,
                    "exactByteReuse": true,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/final/sprite.png",
                    "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                    "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05",
                    "identityBaselineY": 923,
                    "index": 5,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 44,
                    "playbackPreviousFrameIndex": 4,
                    "playbackPreviousRawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/prompt.txt",
                    "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                    "providerCall": false,
                    "providerFrameIndex": 3,
                    "providerGenerated": false,
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/raw/source.png",
                    "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                    "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                    "references": [
                        {
                            "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                            "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                        }
                    ],
                    "sourceFinalArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                    "sourceFrameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                    "sourceFrameIndex": 3,
                    "sourceProvided": false,
                    "sourceRawArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png"
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-prompt-txt",
                        "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-raw-source-png",
                        "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-receipt-json"
                    },
                    "byteIdentityVerified": true,
                    "durationMs": 120,
                    "exactByteReuse": true,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/final/sprite.png",
                    "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                    "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06",
                    "identityBaselineY": 923,
                    "index": 6,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 22,
                    "playbackPreviousFrameIndex": 5,
                    "playbackPreviousRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/prompt.txt",
                    "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                    "providerCall": false,
                    "providerFrameIndex": 2,
                    "providerGenerated": false,
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/raw/source.png",
                    "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                    "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                    "references": [
                        {
                            "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                            "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                        }
                    ],
                    "sourceFinalArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                    "sourceFrameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                    "sourceFrameIndex": 2,
                    "sourceProvided": false,
                    "sourceRawArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png"
                }
            ],
            "generationId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
            "ideaIdleBehaviorDeferred": null,
            "identityBaselineY": 923,
            "identityPolicy": "immutable-f1-raw-master",
            "idleBehavior": "One smooth connected book-reading idle: she opens the small book slightly and leans her head and upper torso gently toward it, then returns. Both forearms and hands move with the book while her layered sleeves and hair follow softly. Keep both feet grounded. No separate gestures, no page-turning, no magical effects.",
            "idleBehaviorSource": "explicit-command",
            "lockedParts": [
                "recognizable face and identity",
                "costume and equipment design",
                "fine motifs, trim, fasteners, gems, and prop markings",
                "palette family and pixel rendering language",
                "body proportions and overall scale band",
                "screen-left three-quarter facing",
                "1024x1024 canvas and flat #ff00ff background"
            ],
            "loop": true,
            "loopMode": "ping-pong",
            "movingParts": [
                "whole pose silhouette",
                "center of mass",
                "torso and hips",
                "both arms and hands",
                "knees, legs, boots, and stance",
                "hair and sleeves",
                "coat tails, dress, cape, and hem",
                "held equipment following the hands"
            ],
            "parentPolicy": "f1-plus-previous",
            "phaseProgressPercent": [
                0,
                22,
                44,
                100,
                44,
                22
            ],
            "phases": [
                "settled identity pose; motion has not started",
                "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
            ],
            "playbackSourceFrameIndices": [
                1,
                2,
                3,
                4,
                3,
                2
            ],
            "posePolicy": "natural-relational",
            "preview": {
                "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--preview-animation-gif",
                "format": "derived-gif-preview",
                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/preview/animation.gif",
                "sha256": "e4c53e536887f9ffb969da60d0b6e46d93731793cff0e0c23a757ea89069f9c4",
                "sourcePolicy": "final-frame-pngs-unchanged"
            },
            "providerCallCount": 4,
            "providerFrameCount": 4,
            "providerFrames": [
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-prompt-txt",
                        "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-raw-source-png",
                        "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/final/sprite.png",
                    "finalSha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817",
                    "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01",
                    "identityBaselineY": 923,
                    "index": 1,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "settled identity pose; motion has not started",
                    "phaseProgressPercent": 0,
                    "playbackSourceFrameIndex": 1,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/prompt.txt",
                    "promptSha256": "6ecfbc451d81a95353628fc58f9d80308075ca7038469a51ac5bf2d2e0ba6ee2",
                    "providerCall": true,
                    "providerFrameIndex": 1,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                    "rawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                        }
                    ],
                    "sourceFrameIndex": 1,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-prompt-txt",
                        "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                        "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/final/sprite.png",
                    "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                    "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                    "identityBaselineY": 923,
                    "index": 2,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 1,
                    "parentRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                    "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 22,
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/prompt.txt",
                    "promptSha256": "c292b78e27aadf1d0ad8f902baab4dd69b17e5cab0df4798ed4e519359630a2e",
                    "providerCall": true,
                    "providerFrameIndex": 2,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                    "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                    "referenceSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                            "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                        }
                    ],
                    "sourceFrameIndex": 2,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-prompt-txt",
                        "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                        "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/final/sprite.png",
                    "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                    "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                    "identityBaselineY": 923,
                    "index": 3,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 2,
                    "parentRawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 44,
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/prompt.txt",
                    "promptSha256": "61aa77a67f4f3fe2498cdc36f011d9dca99bfa9d3361c4c548cd2664bd8d5627",
                    "providerCall": true,
                    "providerFrameIndex": 3,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                    "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                    "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                            "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                            "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                        }
                    ],
                    "sourceFrameIndex": 3,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-prompt-txt",
                        "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-raw-source-png",
                        "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/final/sprite.png",
                    "finalSha256": "301fd2106a16a17db2ef30ec1daa820eeb65f2ebade719fbb7fef3fa1d5b55c7",
                    "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04",
                    "identityBaselineY": 923,
                    "index": 4,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 3,
                    "parentRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                    "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 100,
                    "playbackSourceFrameIndex": 4,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/prompt.txt",
                    "promptSha256": "5726b2ee5527a3033e5c630b41f4b3c2a92eb98c64673257a97142abc956deb9",
                    "providerCall": true,
                    "providerFrameIndex": 4,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/raw/source.png",
                    "rawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                    "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                            "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                            "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                        }
                    ],
                    "sourceFrameIndex": 4,
                    "sourceProvided": false
                }
            ],
            "providerModel": "gpt-image-2-2026-04-21",
            "rootPolicy": {
                "allowedCorrection": "lossless whole-canvas integer translation only",
                "exactProviderRootRequired": false,
                "measuredAfterGeneration": true,
                "poseDependentHorizontalFootMotionPreserved": true,
                "providerConstraint": "at least one boot sole within 16px of F1 baseline"
            },
            "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
            "sourceFrameCount": 4,
            "sourceFrames": [
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-prompt-txt",
                        "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-raw-source-png",
                        "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/final/sprite.png",
                    "finalSha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817",
                    "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01",
                    "identityBaselineY": 923,
                    "index": 1,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "settled identity pose; motion has not started",
                    "phaseProgressPercent": 0,
                    "playbackSourceFrameIndex": 1,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/prompt.txt",
                    "promptSha256": "6ecfbc451d81a95353628fc58f9d80308075ca7038469a51ac5bf2d2e0ba6ee2",
                    "providerCall": true,
                    "providerFrameIndex": 1,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                    "rawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                        }
                    ],
                    "sourceFrameIndex": 1,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-prompt-txt",
                        "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                        "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/final/sprite.png",
                    "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                    "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                    "identityBaselineY": 923,
                    "index": 2,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 1,
                    "parentRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                    "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 22,
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/prompt.txt",
                    "promptSha256": "c292b78e27aadf1d0ad8f902baab4dd69b17e5cab0df4798ed4e519359630a2e",
                    "providerCall": true,
                    "providerFrameIndex": 2,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                    "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                    "referenceSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                            "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                        }
                    ],
                    "sourceFrameIndex": 2,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-prompt-txt",
                        "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                        "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/final/sprite.png",
                    "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                    "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                    "identityBaselineY": 923,
                    "index": 3,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 2,
                    "parentRawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 44,
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/prompt.txt",
                    "promptSha256": "61aa77a67f4f3fe2498cdc36f011d9dca99bfa9d3361c4c548cd2664bd8d5627",
                    "providerCall": true,
                    "providerFrameIndex": 3,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                    "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                    "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                            "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                            "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                        }
                    ],
                    "sourceFrameIndex": 3,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-prompt-txt",
                        "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-raw-source-png",
                        "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/final/sprite.png",
                    "finalSha256": "301fd2106a16a17db2ef30ec1daa820eeb65f2ebade719fbb7fef3fa1d5b55c7",
                    "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04",
                    "identityBaselineY": 923,
                    "index": 4,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 3,
                    "parentRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                    "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 100,
                    "playbackSourceFrameIndex": 4,
                    "posePolicy": "natural-relational",
                    "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/prompt.txt",
                    "promptSha256": "5726b2ee5527a3033e5c630b41f4b3c2a92eb98c64673257a97142abc956deb9",
                    "providerCall": true,
                    "providerFrameIndex": 4,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/raw/source.png",
                    "rawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                    "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/receipt.json",
                    "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                    "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                    "references": [
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                            "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                        },
                        {
                            "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                            "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                        }
                    ],
                    "sourceFrameIndex": 4,
                    "sourceProvided": false
                }
            ],
            "stylePolicy": "elder-a-master"
        },
        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--manifest-json",
        "artifactIndex": {
            "artifactCount": 31,
            "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--artifact-index-json",
            "exclusions": [
                "manifest.json",
                "artifact-index.json"
            ],
            "path": "artifact-index.json",
            "sha256": "be91dbda98b172ae0381355fdd0f814c1d232529c0a6ebbfed78b92b5144e9d7"
        },
        "artifacts": {
            "animation": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--animation-json",
            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--final-sprite-png",
            "generationId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
            "manifest": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--manifest-json",
            "preview": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--preview-animation-gif",
            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--prompt-txt",
            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--raw-source-png",
            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--receipt-json",
            "request": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--request-json"
        },
        "category": "Knowledge & Mysteries",
        "categorySlug": "knowledge-mysteries",
        "class": "Willowglass Dream Archivist",
        "classSource": "request-title",
        "createdAt": "2026-07-24T22:07:21.727577Z",
        "final": "final/sprite.png",
        "finalArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--final-sprite-png",
        "finalSha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817",
        "frames": [
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-prompt-txt",
                    "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-raw-source-png",
                    "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/final/sprite.png",
                "finalSha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817",
                "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01",
                "identityBaselineY": 923,
                "index": 1,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/prompt.txt",
                "promptSha256": "6ecfbc451d81a95353628fc58f9d80308075ca7038469a51ac5bf2d2e0ba6ee2",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                "rawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "sourceFrameIndex": 1,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-prompt-txt",
                    "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                    "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/final/sprite.png",
                "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                "identityBaselineY": 923,
                "index": 2,
                "loopMode": "ping-pong",
                "parentFrameIndex": 1,
                "parentRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/prompt.txt",
                "promptSha256": "c292b78e27aadf1d0ad8f902baab4dd69b17e5cab0df4798ed4e519359630a2e",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                "referenceSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                    }
                ],
                "sourceFrameIndex": 2,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-prompt-txt",
                    "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                    "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/final/sprite.png",
                "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                "identityBaselineY": 923,
                "index": 3,
                "loopMode": "ping-pong",
                "parentFrameIndex": 2,
                "parentRawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/prompt.txt",
                "promptSha256": "61aa77a67f4f3fe2498cdc36f011d9dca99bfa9d3361c4c548cd2664bd8d5627",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                    }
                ],
                "sourceFrameIndex": 3,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-prompt-txt",
                    "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-raw-source-png",
                    "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/final/sprite.png",
                "finalSha256": "301fd2106a16a17db2ef30ec1daa820eeb65f2ebade719fbb7fef3fa1d5b55c7",
                "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04",
                "identityBaselineY": 923,
                "index": 4,
                "loopMode": "ping-pong",
                "parentFrameIndex": 3,
                "parentRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/prompt.txt",
                "promptSha256": "5726b2ee5527a3033e5c630b41f4b3c2a92eb98c64673257a97142abc956deb9",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/raw/source.png",
                "rawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                    }
                ],
                "sourceFrameIndex": 4,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-prompt-txt",
                    "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-raw-source-png",
                    "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-receipt-json"
                },
                "byteIdentityVerified": true,
                "durationMs": 120,
                "exactByteReuse": true,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/final/sprite.png",
                "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05",
                "identityBaselineY": 923,
                "index": 5,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackPreviousFrameIndex": 4,
                "playbackPreviousRawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/prompt.txt",
                "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                "providerCall": false,
                "providerFrameIndex": 3,
                "providerGenerated": false,
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/raw/source.png",
                "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                    }
                ],
                "sourceFinalArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                "sourceFrameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                "sourceFrameIndex": 3,
                "sourceProvided": false,
                "sourceRawArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png"
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-prompt-txt",
                    "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-raw-source-png",
                    "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-receipt-json"
                },
                "byteIdentityVerified": true,
                "durationMs": 120,
                "exactByteReuse": true,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/final/sprite.png",
                "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06",
                "identityBaselineY": 923,
                "index": 6,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackPreviousFrameIndex": 5,
                "playbackPreviousRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/prompt.txt",
                "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                "providerCall": false,
                "providerFrameIndex": 2,
                "providerGenerated": false,
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/raw/source.png",
                "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                    }
                ],
                "sourceFinalArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                "sourceFrameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                "sourceFrameIndex": 2,
                "sourceProvided": false,
                "sourceRawArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png"
            }
        ],
        "gender": "woman",
        "genderSource": "request-text",
        "generation": {
            "anchorGuidePolicy": "none",
            "animationImageCount": 3,
            "animationModel": "gpt-image-2-2026-04-21",
            "attemptedCalls": 4,
            "completedCalls": 4,
            "f1ImageCount": 1,
            "f1Model": "gpt-image-2-2026-04-21",
            "imageCount": 4,
            "inputFidelity": "unsupported-omitted",
            "inputFidelityRequested": false,
            "loopMode": "ping-pong",
            "maximumReferenceCount": 2,
            "model": "gpt-image-2-2026-04-21",
            "operation": "chained-image-edit-plus-exact-ping-pong-reuse",
            "playbackFrameCount": 6,
            "playbackSourceFrameIndices": [
                1,
                2,
                3,
                4,
                3,
                2
            ],
            "posePolicy": "natural-relational",
            "providerFrameCount": 4,
            "quality": "medium",
            "referenceCountsBySourceFrame": {
                "1": 1,
                "2": 1,
                "3": 2,
                "4": 2
            },
            "referenceOrderPolicy": [
                "f1RawIdentity",
                "previousRawOpaque"
            ],
            "size": "1024x1024",
            "sourceFrameCount": 4,
            "tool": "openai-image"
        },
        "generationId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
        "ideaId": null,
        "ideaSource": null,
        "ideaTitle": null,
        "postProcessing": {
            "alphaOnly": true,
            "despilled": false,
            "feathered": false,
            "filtered": false,
            "paletteReduced": false,
            "resampled": false,
            "resized": false,
            "translated": false
        },
        "prompt": "prompt.txt",
        "promptSha256": "6ecfbc451d81a95353628fc58f9d80308075ca7038469a51ac5bf2d2e0ba6ee2",
        "providerCallCount": 4,
        "providerFrames": [
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-prompt-txt",
                    "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-raw-source-png",
                    "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/final/sprite.png",
                "finalSha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817",
                "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01",
                "identityBaselineY": 923,
                "index": 1,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/prompt.txt",
                "promptSha256": "6ecfbc451d81a95353628fc58f9d80308075ca7038469a51ac5bf2d2e0ba6ee2",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                "rawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "sourceFrameIndex": 1,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-prompt-txt",
                    "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                    "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/final/sprite.png",
                "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                "identityBaselineY": 923,
                "index": 2,
                "loopMode": "ping-pong",
                "parentFrameIndex": 1,
                "parentRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/prompt.txt",
                "promptSha256": "c292b78e27aadf1d0ad8f902baab4dd69b17e5cab0df4798ed4e519359630a2e",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                "referenceSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                    }
                ],
                "sourceFrameIndex": 2,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-prompt-txt",
                    "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                    "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/final/sprite.png",
                "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                "identityBaselineY": 923,
                "index": 3,
                "loopMode": "ping-pong",
                "parentFrameIndex": 2,
                "parentRawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/prompt.txt",
                "promptSha256": "61aa77a67f4f3fe2498cdc36f011d9dca99bfa9d3361c4c548cd2664bd8d5627",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                    }
                ],
                "sourceFrameIndex": 3,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-prompt-txt",
                    "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-raw-source-png",
                    "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/final/sprite.png",
                "finalSha256": "301fd2106a16a17db2ef30ec1daa820eeb65f2ebade719fbb7fef3fa1d5b55c7",
                "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04",
                "identityBaselineY": 923,
                "index": 4,
                "loopMode": "ping-pong",
                "parentFrameIndex": 3,
                "parentRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/prompt.txt",
                "promptSha256": "5726b2ee5527a3033e5c630b41f4b3c2a92eb98c64673257a97142abc956deb9",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/raw/source.png",
                "rawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                    }
                ],
                "sourceFrameIndex": 4,
                "sourceProvided": false
            }
        ],
        "raw": "raw/source.png",
        "rawArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--raw-source-png",
        "rawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
        "representative": "final/sprite.png",
        "runId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
        "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
        "sourceFrames": [
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-prompt-txt",
                    "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-raw-source-png",
                    "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/final/sprite.png",
                "finalSha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817",
                "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01",
                "identityBaselineY": 923,
                "index": 1,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/prompt.txt",
                "promptSha256": "6ecfbc451d81a95353628fc58f9d80308075ca7038469a51ac5bf2d2e0ba6ee2",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                "rawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "sourceFrameIndex": 1,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-prompt-txt",
                    "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                    "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/final/sprite.png",
                "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                "identityBaselineY": 923,
                "index": 2,
                "loopMode": "ping-pong",
                "parentFrameIndex": 1,
                "parentRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/prompt.txt",
                "promptSha256": "c292b78e27aadf1d0ad8f902baab4dd69b17e5cab0df4798ed4e519359630a2e",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                "referenceSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                    }
                ],
                "sourceFrameIndex": 2,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-prompt-txt",
                    "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                    "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/final/sprite.png",
                "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                "identityBaselineY": 923,
                "index": 3,
                "loopMode": "ping-pong",
                "parentFrameIndex": 2,
                "parentRawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/prompt.txt",
                "promptSha256": "61aa77a67f4f3fe2498cdc36f011d9dca99bfa9d3361c4c548cd2664bd8d5627",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                    }
                ],
                "sourceFrameIndex": 3,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-prompt-txt",
                    "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-raw-source-png",
                    "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-receipt-json"
                },
                "durationMs": 120,
                "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/final/sprite.png",
                "finalSha256": "301fd2106a16a17db2ef30ec1daa820eeb65f2ebade719fbb7fef3fa1d5b55c7",
                "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04",
                "identityBaselineY": 923,
                "index": 4,
                "loopMode": "ping-pong",
                "parentFrameIndex": 3,
                "parentRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "natural-relational",
                "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/prompt.txt",
                "promptSha256": "5726b2ee5527a3033e5c630b41f4b3c2a92eb98c64673257a97142abc956deb9",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/raw/source.png",
                "rawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/receipt.json",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                    }
                ],
                "sourceFrameIndex": 4,
                "sourceProvided": false
            }
        ],
        "sourceGenerationId": null,
        "status": "animated-command-review-required",
        "summary": "f1-plus-previous 6-frame idle ping-pong animation from 4 provider-generated frame(s); every playback frame preserves raw and alpha-only final evidence.",
        "title": "ragnarok-create · Willowglass Dream Archivist · idle animation",
        "userRequest": "Create a white adult human woman Willowglass Dream Archivist, wearing an original layered midnight-blue academy archivist robe with restrained silver trim, long fitted sleeves, soft sturdy shoes, and dark brown shoulder-length hair, holding one small closed book at chest height with both hands, standing upright in a calm balanced neutral pose with both boot soles level and close together, and no magical effect, loose papers, additional prop, floor, or scenery."
    },
    "jsonArtifacts": {
        "animation.json": {
            "sha256": "c85b6c4920578d43ba59a16952d3c0d41ca7bd99bdd202eed79a2e4b4b3cfe4d",
            "bytes": 64935,
            "value": {
                "action": "idle",
                "anchorGuide": null,
                "anchorGuidePolicy": "none",
                "durationMs": 120,
                "f1ProviderModel": "gpt-image-2-2026-04-21",
                "frameCount": 6,
                "frames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/final/sprite.png",
                        "finalSha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01",
                        "identityBaselineY": 923,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/prompt.txt",
                        "promptSha256": "6ecfbc451d81a95353628fc58f9d80308075ca7038469a51ac5bf2d2e0ba6ee2",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "rawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/final/sprite.png",
                        "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                        "identityBaselineY": 923,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/prompt.txt",
                        "promptSha256": "c292b78e27aadf1d0ad8f902baab4dd69b17e5cab0df4798ed4e519359630a2e",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "referenceSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/final/sprite.png",
                        "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                        "identityBaselineY": 923,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/prompt.txt",
                        "promptSha256": "61aa77a67f4f3fe2498cdc36f011d9dca99bfa9d3361c4c548cd2664bd8d5627",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                                "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/final/sprite.png",
                        "finalSha256": "301fd2106a16a17db2ef30ec1daa820eeb65f2ebade719fbb7fef3fa1d5b55c7",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04",
                        "identityBaselineY": 923,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/prompt.txt",
                        "promptSha256": "5726b2ee5527a3033e5c630b41f4b3c2a92eb98c64673257a97142abc956deb9",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/raw/source.png",
                        "rawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                                "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/final/sprite.png",
                        "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05",
                        "identityBaselineY": 923,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackPreviousFrameIndex": 4,
                        "playbackPreviousRawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/prompt.txt",
                        "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                        "providerCall": false,
                        "providerFrameIndex": 3,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/raw/source.png",
                        "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                                "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                        "sourceFrameIndex": 3,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/final/sprite.png",
                        "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06",
                        "identityBaselineY": 923,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackPreviousFrameIndex": 5,
                        "playbackPreviousRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/prompt.txt",
                        "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                        "providerCall": false,
                        "providerFrameIndex": 2,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/raw/source.png",
                        "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                                "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                        "sourceFrameIndex": 2,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png"
                    }
                ],
                "generationId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
                "ideaIdleBehaviorDeferred": null,
                "identityBaselineY": 923,
                "identityPolicy": "immutable-f1-raw-master",
                "idleBehavior": "One smooth connected book-reading idle: she opens the small book slightly and leans her head and upper torso gently toward it, then returns. Both forearms and hands move with the book while her layered sleeves and hair follow softly. Keep both feet grounded. No separate gestures, no page-turning, no magical effects.",
                "idleBehaviorSource": "explicit-command",
                "lockedParts": [
                    "recognizable face and identity",
                    "costume and equipment design",
                    "fine motifs, trim, fasteners, gems, and prop markings",
                    "palette family and pixel rendering language",
                    "body proportions and overall scale band",
                    "screen-left three-quarter facing",
                    "1024x1024 canvas and flat #ff00ff background"
                ],
                "loop": true,
                "loopMode": "ping-pong",
                "movingParts": [
                    "whole pose silhouette",
                    "center of mass",
                    "torso and hips",
                    "both arms and hands",
                    "knees, legs, boots, and stance",
                    "hair and sleeves",
                    "coat tails, dress, cape, and hem",
                    "held equipment following the hands"
                ],
                "parentPolicy": "f1-plus-previous",
                "phaseProgressPercent": [
                    0,
                    22,
                    44,
                    100,
                    44,
                    22
                ],
                "phases": [
                    "settled identity pose; motion has not started",
                    "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
                ],
                "playbackSourceFrameIndices": [
                    1,
                    2,
                    3,
                    4,
                    3,
                    2
                ],
                "posePolicy": "natural-relational",
                "preview": {
                    "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--preview-animation-gif",
                    "format": "derived-gif-preview",
                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/preview/animation.gif",
                    "sha256": "e4c53e536887f9ffb969da60d0b6e46d93731793cff0e0c23a757ea89069f9c4",
                    "sourcePolicy": "final-frame-pngs-unchanged"
                },
                "providerCallCount": 4,
                "providerFrameCount": 4,
                "providerFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/final/sprite.png",
                        "finalSha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01",
                        "identityBaselineY": 923,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/prompt.txt",
                        "promptSha256": "6ecfbc451d81a95353628fc58f9d80308075ca7038469a51ac5bf2d2e0ba6ee2",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "rawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/final/sprite.png",
                        "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                        "identityBaselineY": 923,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/prompt.txt",
                        "promptSha256": "c292b78e27aadf1d0ad8f902baab4dd69b17e5cab0df4798ed4e519359630a2e",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "referenceSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/final/sprite.png",
                        "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                        "identityBaselineY": 923,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/prompt.txt",
                        "promptSha256": "61aa77a67f4f3fe2498cdc36f011d9dca99bfa9d3361c4c548cd2664bd8d5627",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                                "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/final/sprite.png",
                        "finalSha256": "301fd2106a16a17db2ef30ec1daa820eeb65f2ebade719fbb7fef3fa1d5b55c7",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04",
                        "identityBaselineY": 923,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/prompt.txt",
                        "promptSha256": "5726b2ee5527a3033e5c630b41f4b3c2a92eb98c64673257a97142abc956deb9",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/raw/source.png",
                        "rawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                                "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "providerModel": "gpt-image-2-2026-04-21",
                "rootPolicy": {
                    "allowedCorrection": "lossless whole-canvas integer translation only",
                    "exactProviderRootRequired": false,
                    "measuredAfterGeneration": true,
                    "poseDependentHorizontalFootMotionPreserved": true,
                    "providerConstraint": "at least one boot sole within 16px of F1 baseline"
                },
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameCount": 4,
                "sourceFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/final/sprite.png",
                        "finalSha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01",
                        "identityBaselineY": 923,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/prompt.txt",
                        "promptSha256": "6ecfbc451d81a95353628fc58f9d80308075ca7038469a51ac5bf2d2e0ba6ee2",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "rawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/final/sprite.png",
                        "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                        "identityBaselineY": 923,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/prompt.txt",
                        "promptSha256": "c292b78e27aadf1d0ad8f902baab4dd69b17e5cab0df4798ed4e519359630a2e",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "referenceSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/final/sprite.png",
                        "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                        "identityBaselineY": 923,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/prompt.txt",
                        "promptSha256": "61aa77a67f4f3fe2498cdc36f011d9dca99bfa9d3361c4c548cd2664bd8d5627",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                                "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/final/sprite.png",
                        "finalSha256": "301fd2106a16a17db2ef30ec1daa820eeb65f2ebade719fbb7fef3fa1d5b55c7",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04",
                        "identityBaselineY": 923,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/prompt.txt",
                        "promptSha256": "5726b2ee5527a3033e5c630b41f4b3c2a92eb98c64673257a97142abc956deb9",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/raw/source.png",
                        "rawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                                "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "stylePolicy": "elder-a-master"
            }
        },
        "artifact-index.json": {
            "sha256": "be91dbda98b172ae0381355fdd0f814c1d232529c0a6ebbfed78b92b5144e9d7",
            "bytes": 8885,
            "value": {
                "artifactCount": 31,
                "artifacts": [
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--animation-json",
                        "bytes": 64935,
                        "path": "animation.json",
                        "sha256": "c85b6c4920578d43ba59a16952d3c0d41ca7bd99bdd202eed79a2e4b4b3cfe4d"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--final-sprite-png",
                        "bytes": 943416,
                        "path": "final/sprite.png",
                        "sha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-final-sprite-png",
                        "bytes": 943416,
                        "path": "frames/01/final/sprite.png",
                        "sha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-prompt-txt",
                        "bytes": 1700,
                        "path": "frames/01/prompt.txt",
                        "sha256": "6ecfbc451d81a95353628fc58f9d80308075ca7038469a51ac5bf2d2e0ba6ee2"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-raw-source-png",
                        "bytes": 966068,
                        "path": "frames/01/raw/source.png",
                        "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-receipt-json",
                        "bytes": 5126,
                        "path": "frames/01/receipt.json",
                        "sha256": "b223f598b1aad58cb4cd1ad06c7807f5a257d48d421fe20ddb319a4c7a4625db"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                        "bytes": 960632,
                        "path": "frames/02/final/sprite.png",
                        "sha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-prompt-txt",
                        "bytes": 5313,
                        "path": "frames/02/prompt.txt",
                        "sha256": "c292b78e27aadf1d0ad8f902baab4dd69b17e5cab0df4798ed4e519359630a2e"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                        "bytes": 979191,
                        "path": "frames/02/raw/source.png",
                        "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-receipt-json",
                        "bytes": 6056,
                        "path": "frames/02/receipt.json",
                        "sha256": "560b8438bf276a5343b9cef315cf30666e19e91f2cb17dcc6b645c1d1c42a2f5"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                        "bytes": 988911,
                        "path": "frames/03/final/sprite.png",
                        "sha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-prompt-txt",
                        "bytes": 5196,
                        "path": "frames/03/prompt.txt",
                        "sha256": "61aa77a67f4f3fe2498cdc36f011d9dca99bfa9d3361c4c548cd2664bd8d5627"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                        "bytes": 1003674,
                        "path": "frames/03/raw/source.png",
                        "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-receipt-json",
                        "bytes": 6254,
                        "path": "frames/03/receipt.json",
                        "sha256": "c6ba1ed786346e1a55f403c9f20976d72702845fbc32e071f472f6671b4aa5f9"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-final-sprite-png",
                        "bytes": 1093207,
                        "path": "frames/04/final/sprite.png",
                        "sha256": "301fd2106a16a17db2ef30ec1daa820eeb65f2ebade719fbb7fef3fa1d5b55c7"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-prompt-txt",
                        "bytes": 5123,
                        "path": "frames/04/prompt.txt",
                        "sha256": "5726b2ee5527a3033e5c630b41f4b3c2a92eb98c64673257a97142abc956deb9"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-raw-source-png",
                        "bytes": 1110229,
                        "path": "frames/04/raw/source.png",
                        "sha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-receipt-json",
                        "bytes": 6179,
                        "path": "frames/04/receipt.json",
                        "sha256": "ec1b1121a3ebaf7c65b37b6846d9a5ad9247654020727d9a323c99d4414bfa1b"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-final-sprite-png",
                        "bytes": 988911,
                        "path": "frames/05/final/sprite.png",
                        "sha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-prompt-txt",
                        "bytes": 125,
                        "path": "frames/05/prompt.txt",
                        "sha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-raw-source-png",
                        "bytes": 1003674,
                        "path": "frames/05/raw/source.png",
                        "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-receipt-json",
                        "bytes": 5266,
                        "path": "frames/05/receipt.json",
                        "sha256": "0769ef0fbd5ac3713a01840bb5b9ab4836beb5da28a07770ebf938883ab5002d"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-final-sprite-png",
                        "bytes": 960632,
                        "path": "frames/06/final/sprite.png",
                        "sha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-prompt-txt",
                        "bytes": 125,
                        "path": "frames/06/prompt.txt",
                        "sha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-raw-source-png",
                        "bytes": 979191,
                        "path": "frames/06/raw/source.png",
                        "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-receipt-json",
                        "bytes": 5855,
                        "path": "frames/06/receipt.json",
                        "sha256": "6d306cc2afb582ec69e58541ff4ca0fac8b1067b4f3471d382f938f2eaf6a700"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--preview-animation-gif",
                        "bytes": 518339,
                        "path": "preview/animation.gif",
                        "sha256": "e4c53e536887f9ffb969da60d0b6e46d93731793cff0e0c23a757ea89069f9c4"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--prompt-txt",
                        "bytes": 1700,
                        "path": "prompt.txt",
                        "sha256": "6ecfbc451d81a95353628fc58f9d80308075ca7038469a51ac5bf2d2e0ba6ee2"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--raw-source-png",
                        "bytes": 966068,
                        "path": "raw/source.png",
                        "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--receipt-json",
                        "bytes": 58628,
                        "path": "receipt.json",
                        "sha256": "df18416cbd4952e1e6740a09db350e19af1428485dcbae9eccb5eadd551e2ff5"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--request-json",
                        "bytes": 67947,
                        "path": "request.json",
                        "sha256": "c96bcd04bbc511ec3db60902c48632f6ffab94087ed0cfd0f19292b7806966c1"
                    }
                ],
                "excludedSelfReferentialFiles": [
                    "manifest.json",
                    "artifact-index.json"
                ],
                "generationId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
                "schemaVersion": "midgard-pixels.ragnarok-artifact-index.v1"
            }
        },
        "frames/01/receipt.json": {
            "sha256": "b223f598b1aad58cb4cd1ad06c7807f5a257d48d421fe20ddb319a4c7a4625db",
            "bytes": 5126,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 34.597687784012386,
                "borderColorMedian": [
                    247,
                    4,
                    237
                ],
                "borderConnectedChromaPixels": 860995,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 434,
                "category": "Knowledge & Mysteries",
                "categorySlug": "knowledge-mysteries",
                "class": "Willowglass Dream Archivist",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:07:21.727577Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 354,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 482,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 251,
                "enclosedComponentCount": 1,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-final-sprite-png",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01",
                "frameIndex": 1,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 923,
                "identityRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                "inputSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                "keyCoreBorderConnectedPixels": 860995,
                "keyCorePixels": 861246,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.99032227852163,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817",
                "paletteReduced": false,
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 225,
                "preservedSmallKeyColorPixels": 0,
                "promptArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "removedChromaPixels": 862516,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman Willowglass Dream Archivist, wearing an original layered midnight-blue academy archivist robe with restrained silver trim, long fitted sleeves, soft sturdy shoes, and dark brown shoulder-length hair, holding one small closed book at chest height with both hands, standing upright in a calm balanced neutral pose with both boot soles level and close together, and no magical effect, loose papers, additional prop, floor, or scenery.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 1,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/02/receipt.json": {
            "sha256": "560b8438bf276a5343b9cef315cf30666e19e91f2cb17dcc6b645c1d1c42a2f5",
            "bytes": 6056,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 33.52610922848042,
                "borderColorMedian": [
                    247,
                    6,
                    232
                ],
                "borderConnectedChromaPixels": 857957,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 467,
                "category": "Knowledge & Mysteries",
                "categorySlug": "knowledge-mysteries",
                "class": "Willowglass Dream Archivist",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:07:21.727577Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 362,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 547,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 194,
                "enclosedComponentCount": 1,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                "frameIndex": 2,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 923,
                "identityRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                "inputSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                "keyCoreBorderConnectedPixels": 857957,
                "keyCorePixels": 858151,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.83539646992867,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                "paletteReduced": false,
                "parentFrameIndex": 1,
                "parentRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 176,
                "preservedSmallKeyColorPixels": 0,
                "promptArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                "referenceSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                    }
                ],
                "removedChromaPixels": 859527,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman Willowglass Dream Archivist, wearing an original layered midnight-blue academy archivist robe with restrained silver trim, long fitted sleeves, soft sturdy shoes, and dark brown shoulder-length hair, holding one small closed book at chest height with both hands, standing upright in a calm balanced neutral pose with both boot soles level and close together, and no magical effect, loose papers, additional prop, floor, or scenery.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 2,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/03/receipt.json": {
            "sha256": "c6ba1ed786346e1a55f403c9f20976d72702845fbc32e071f472f6671b4aa5f9",
            "bytes": 6254,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 35.482389998420345,
                "borderColorMedian": [
                    239,
                    5,
                    221
                ],
                "borderConnectedChromaPixels": 855350,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 511,
                "category": "Knowledge & Mysteries",
                "categorySlug": "knowledge-mysteries",
                "class": "Willowglass Dream Archivist",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:07:21.727577Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 290,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 496,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 0,
                "enclosedComponentCount": 0,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                "frameIndex": 3,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 923,
                "identityRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                "inputSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                "keyCoreBorderConnectedPixels": 855350,
                "keyCorePixels": 855350,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.99032227852163,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                "paletteReduced": false,
                "parentFrameIndex": 2,
                "parentRawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 87,
                "preservedSmallKeyColorPixels": 0,
                "promptArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                    }
                ],
                "removedChromaPixels": 856647,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman Willowglass Dream Archivist, wearing an original layered midnight-blue academy archivist robe with restrained silver trim, long fitted sleeves, soft sturdy shoes, and dark brown shoulder-length hair, holding one small closed book at chest height with both hands, standing upright in a calm balanced neutral pose with both boot soles level and close together, and no magical effect, loose papers, additional prop, floor, or scenery.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 3,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/04/receipt.json": {
            "sha256": "ec1b1121a3ebaf7c65b37b6846d9a5ad9247654020727d9a323c99d4414bfa1b",
            "bytes": 6179,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 34.0147027033899,
                "borderColorMedian": [
                    237,
                    5,
                    223
                ],
                "borderConnectedChromaPixels": 836388,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 492,
                "category": "Knowledge & Mysteries",
                "categorySlug": "knowledge-mysteries",
                "class": "Willowglass Dream Archivist",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T22:07:21.727577Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 401,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 550,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 0,
                "enclosedComponentCount": 0,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-final-sprite-png",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04",
                "frameIndex": 4,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 923,
                "identityRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                "input": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/raw/source.png",
                "inputSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                "keyCoreBorderConnectedPixels": 836388,
                "keyCorePixels": 836388,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.9548321285916,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "301fd2106a16a17db2ef30ec1daa820eeb65f2ebade719fbb7fef3fa1d5b55c7",
                "paletteReduced": false,
                "parentFrameIndex": 3,
                "parentRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 57,
                "preservedSmallKeyColorPixels": 0,
                "promptArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                "references": [
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                    },
                    {
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                    }
                ],
                "removedChromaPixels": 837831,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman Willowglass Dream Archivist, wearing an original layered midnight-blue academy archivist robe with restrained silver trim, long fitted sleeves, soft sturdy shoes, and dark brown shoulder-length hair, holding one small closed book at chest height with both hands, standing upright in a calm balanced neutral pose with both boot soles level and close together, and no magical effect, loose papers, additional prop, floor, or scenery.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 4,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/05/receipt.json": {
            "sha256": "0769ef0fbd5ac3713a01840bb5b9ab4836beb5da28a07770ebf938883ab5002d",
            "bytes": 5266,
            "value": {
                "action": "idle",
                "anchorGuide": null,
                "byteIdentityVerified": true,
                "category": "Knowledge & Mysteries",
                "categorySlug": "knowledge-mysteries",
                "class": "Willowglass Dream Archivist",
                "classSource": "request-title",
                "createdAt": "2026-07-24T22:07:21.727577Z",
                "durationMs": 120,
                "exactByteReuse": true,
                "finalArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-final-sprite-png",
                "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05",
                "frameIndex": 5,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 923,
                "identityRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                "loopMode": "ping-pong",
                "operation": "exact-byte-ping-pong-reuse",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackPreviousFrameIndex": 4,
                "playbackPreviousRawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "promptArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-prompt-txt",
                "providerCall": false,
                "providerFrameIndex": 3,
                "providerGenerated": false,
                "rawArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-raw-source-png",
                "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                "receiptArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                    }
                ],
                "request": "Create a white adult human woman Willowglass Dream Archivist, wearing an original layered midnight-blue academy archivist robe with restrained silver trim, long fitted sleeves, soft sturdy shoes, and dark brown shoulder-length hair, holding one small closed book at chest height with both hands, standing upright in a calm balanced neutral pose with both boot soles level and close together, and no magical effect, loose papers, additional prop, floor, or scenery.",
                "runId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFinal": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/final/sprite.png",
                "sourceFinalArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                "sourceFinalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                "sourceFrameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                "sourceFrameIndex": 3,
                "sourceProvided": false,
                "sourceRaw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                "sourceRawArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                "sourceRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
            }
        },
        "frames/06/receipt.json": {
            "sha256": "6d306cc2afb582ec69e58541ff4ca0fac8b1067b4f3471d382f938f2eaf6a700",
            "bytes": 5855,
            "value": {
                "action": "idle",
                "anchorGuide": null,
                "byteIdentityVerified": true,
                "category": "Knowledge & Mysteries",
                "categorySlug": "knowledge-mysteries",
                "class": "Willowglass Dream Archivist",
                "classSource": "request-title",
                "createdAt": "2026-07-24T22:07:21.727577Z",
                "durationMs": 120,
                "exactByteReuse": true,
                "finalArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-final-sprite-png",
                "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06",
                "frameIndex": 6,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 923,
                "identityRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                "loopMode": "ping-pong",
                "operation": "exact-byte-ping-pong-reuse",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackPreviousFrameIndex": 5,
                "playbackPreviousRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "promptArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-prompt-txt",
                "providerCall": false,
                "providerFrameIndex": 2,
                "providerGenerated": false,
                "rawArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-raw-source-png",
                "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                "receiptArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-receipt-json",
                "referencePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                    }
                ],
                "request": "Create a white adult human woman Willowglass Dream Archivist, wearing an original layered midnight-blue academy archivist robe with restrained silver trim, long fitted sleeves, soft sturdy shoes, and dark brown shoulder-length hair, holding one small closed book at chest height with both hands, standing upright in a calm balanced neutral pose with both boot soles level and close together, and no magical effect, loose papers, additional prop, floor, or scenery.",
                "runId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFinal": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/final/sprite.png",
                "sourceFinalArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                "sourceFinalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                "sourceFrameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                "sourceFrameIndex": 2,
                "sourceProvided": false,
                "sourceRaw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                "sourceRawArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                "sourceRawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
            }
        },
        "manifest.json": {
            "sha256": "73cce43a1c1be6f9ddd2b0ad76d6ad5994907c5d946d0f61a3ed471d3b32b81b",
            "bytes": 129169,
            "value": {
                "animation": {
                    "action": "idle",
                    "anchorGuide": null,
                    "anchorGuidePolicy": "none",
                    "durationMs": 120,
                    "f1ProviderModel": "gpt-image-2-2026-04-21",
                    "frameCount": 6,
                    "frames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/final/sprite.png",
                            "finalSha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01",
                            "identityBaselineY": 923,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/prompt.txt",
                            "promptSha256": "6ecfbc451d81a95353628fc58f9d80308075ca7038469a51ac5bf2d2e0ba6ee2",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                            "rawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/final/sprite.png",
                            "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                            "identityBaselineY": 923,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/prompt.txt",
                            "promptSha256": "c292b78e27aadf1d0ad8f902baab4dd69b17e5cab0df4798ed4e519359630a2e",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                            "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                            "referenceSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                    "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/final/sprite.png",
                            "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                            "identityBaselineY": 923,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/prompt.txt",
                            "promptSha256": "61aa77a67f4f3fe2498cdc36f011d9dca99bfa9d3361c4c548cd2664bd8d5627",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                            "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                            "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                    "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                                    "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/final/sprite.png",
                            "finalSha256": "301fd2106a16a17db2ef30ec1daa820eeb65f2ebade719fbb7fef3fa1d5b55c7",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04",
                            "identityBaselineY": 923,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/prompt.txt",
                            "promptSha256": "5726b2ee5527a3033e5c630b41f4b3c2a92eb98c64673257a97142abc956deb9",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/raw/source.png",
                            "rawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                            "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                    "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                                    "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/final/sprite.png",
                            "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05",
                            "identityBaselineY": 923,
                            "index": 5,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackPreviousFrameIndex": 4,
                            "playbackPreviousRawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/prompt.txt",
                            "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                            "providerCall": false,
                            "providerFrameIndex": 3,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/raw/source.png",
                            "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                            "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                                    "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                            "sourceFrameIndex": 3,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png"
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/final/sprite.png",
                            "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06",
                            "identityBaselineY": 923,
                            "index": 6,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackPreviousFrameIndex": 5,
                            "playbackPreviousRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/prompt.txt",
                            "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                            "providerCall": false,
                            "providerFrameIndex": 2,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/raw/source.png",
                            "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                            "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                                    "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                            "sourceFrameIndex": 2,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png"
                        }
                    ],
                    "generationId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
                    "ideaIdleBehaviorDeferred": null,
                    "identityBaselineY": 923,
                    "identityPolicy": "immutable-f1-raw-master",
                    "idleBehavior": "One smooth connected book-reading idle: she opens the small book slightly and leans her head and upper torso gently toward it, then returns. Both forearms and hands move with the book while her layered sleeves and hair follow softly. Keep both feet grounded. No separate gestures, no page-turning, no magical effects.",
                    "idleBehaviorSource": "explicit-command",
                    "lockedParts": [
                        "recognizable face and identity",
                        "costume and equipment design",
                        "fine motifs, trim, fasteners, gems, and prop markings",
                        "palette family and pixel rendering language",
                        "body proportions and overall scale band",
                        "screen-left three-quarter facing",
                        "1024x1024 canvas and flat #ff00ff background"
                    ],
                    "loop": true,
                    "loopMode": "ping-pong",
                    "movingParts": [
                        "whole pose silhouette",
                        "center of mass",
                        "torso and hips",
                        "both arms and hands",
                        "knees, legs, boots, and stance",
                        "hair and sleeves",
                        "coat tails, dress, cape, and hem",
                        "held equipment following the hands"
                    ],
                    "parentPolicy": "f1-plus-previous",
                    "phaseProgressPercent": [
                        0,
                        22,
                        44,
                        100,
                        44,
                        22
                    ],
                    "phases": [
                        "settled identity pose; motion has not started",
                        "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
                    ],
                    "playbackSourceFrameIndices": [
                        1,
                        2,
                        3,
                        4,
                        3,
                        2
                    ],
                    "posePolicy": "natural-relational",
                    "preview": {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--preview-animation-gif",
                        "format": "derived-gif-preview",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/preview/animation.gif",
                        "sha256": "e4c53e536887f9ffb969da60d0b6e46d93731793cff0e0c23a757ea89069f9c4",
                        "sourcePolicy": "final-frame-pngs-unchanged"
                    },
                    "providerCallCount": 4,
                    "providerFrameCount": 4,
                    "providerFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/final/sprite.png",
                            "finalSha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01",
                            "identityBaselineY": 923,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/prompt.txt",
                            "promptSha256": "6ecfbc451d81a95353628fc58f9d80308075ca7038469a51ac5bf2d2e0ba6ee2",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                            "rawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/final/sprite.png",
                            "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                            "identityBaselineY": 923,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/prompt.txt",
                            "promptSha256": "c292b78e27aadf1d0ad8f902baab4dd69b17e5cab0df4798ed4e519359630a2e",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                            "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                            "referenceSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                    "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/final/sprite.png",
                            "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                            "identityBaselineY": 923,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/prompt.txt",
                            "promptSha256": "61aa77a67f4f3fe2498cdc36f011d9dca99bfa9d3361c4c548cd2664bd8d5627",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                            "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                            "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                    "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                                    "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/final/sprite.png",
                            "finalSha256": "301fd2106a16a17db2ef30ec1daa820eeb65f2ebade719fbb7fef3fa1d5b55c7",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04",
                            "identityBaselineY": 923,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/prompt.txt",
                            "promptSha256": "5726b2ee5527a3033e5c630b41f4b3c2a92eb98c64673257a97142abc956deb9",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/raw/source.png",
                            "rawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                            "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                    "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                                    "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        }
                    ],
                    "providerModel": "gpt-image-2-2026-04-21",
                    "rootPolicy": {
                        "allowedCorrection": "lossless whole-canvas integer translation only",
                        "exactProviderRootRequired": false,
                        "measuredAfterGeneration": true,
                        "poseDependentHorizontalFootMotionPreserved": true,
                        "providerConstraint": "at least one boot sole within 16px of F1 baseline"
                    },
                    "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                    "sourceFrameCount": 4,
                    "sourceFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/final/sprite.png",
                            "finalSha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01",
                            "identityBaselineY": 923,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/prompt.txt",
                            "promptSha256": "6ecfbc451d81a95353628fc58f9d80308075ca7038469a51ac5bf2d2e0ba6ee2",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                            "rawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/final/sprite.png",
                            "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                            "identityBaselineY": 923,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/prompt.txt",
                            "promptSha256": "c292b78e27aadf1d0ad8f902baab4dd69b17e5cab0df4798ed4e519359630a2e",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                            "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                            "referenceSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                    "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/final/sprite.png",
                            "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                            "identityBaselineY": 923,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/prompt.txt",
                            "promptSha256": "61aa77a67f4f3fe2498cdc36f011d9dca99bfa9d3361c4c548cd2664bd8d5627",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                            "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                            "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                    "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                                    "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/final/sprite.png",
                            "finalSha256": "301fd2106a16a17db2ef30ec1daa820eeb65f2ebade719fbb7fef3fa1d5b55c7",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04",
                            "identityBaselineY": 923,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/prompt.txt",
                            "promptSha256": "5726b2ee5527a3033e5c630b41f4b3c2a92eb98c64673257a97142abc956deb9",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/raw/source.png",
                            "rawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                            "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                    "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                                    "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        }
                    ],
                    "stylePolicy": "elder-a-master"
                },
                "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--manifest-json",
                "artifactIndex": {
                    "artifactCount": 31,
                    "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--artifact-index-json",
                    "exclusions": [
                        "manifest.json",
                        "artifact-index.json"
                    ],
                    "path": "artifact-index.json",
                    "sha256": "be91dbda98b172ae0381355fdd0f814c1d232529c0a6ebbfed78b92b5144e9d7"
                },
                "artifacts": {
                    "animation": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--animation-json",
                    "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--final-sprite-png",
                    "generationId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
                    "manifest": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--manifest-json",
                    "preview": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--preview-animation-gif",
                    "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--prompt-txt",
                    "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--raw-source-png",
                    "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--receipt-json",
                    "request": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--request-json"
                },
                "category": "Knowledge & Mysteries",
                "categorySlug": "knowledge-mysteries",
                "class": "Willowglass Dream Archivist",
                "classSource": "request-title",
                "createdAt": "2026-07-24T22:07:21.727577Z",
                "final": "final/sprite.png",
                "finalArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--final-sprite-png",
                "finalSha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817",
                "frames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/final/sprite.png",
                        "finalSha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01",
                        "identityBaselineY": 923,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/prompt.txt",
                        "promptSha256": "6ecfbc451d81a95353628fc58f9d80308075ca7038469a51ac5bf2d2e0ba6ee2",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "rawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/final/sprite.png",
                        "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                        "identityBaselineY": 923,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/prompt.txt",
                        "promptSha256": "c292b78e27aadf1d0ad8f902baab4dd69b17e5cab0df4798ed4e519359630a2e",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "referenceSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/final/sprite.png",
                        "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                        "identityBaselineY": 923,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/prompt.txt",
                        "promptSha256": "61aa77a67f4f3fe2498cdc36f011d9dca99bfa9d3361c4c548cd2664bd8d5627",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                                "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/final/sprite.png",
                        "finalSha256": "301fd2106a16a17db2ef30ec1daa820eeb65f2ebade719fbb7fef3fa1d5b55c7",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04",
                        "identityBaselineY": 923,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/prompt.txt",
                        "promptSha256": "5726b2ee5527a3033e5c630b41f4b3c2a92eb98c64673257a97142abc956deb9",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/raw/source.png",
                        "rawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                                "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/final/sprite.png",
                        "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05",
                        "identityBaselineY": 923,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackPreviousFrameIndex": 4,
                        "playbackPreviousRawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/prompt.txt",
                        "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                        "providerCall": false,
                        "providerFrameIndex": 3,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/raw/source.png",
                        "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                                "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                        "sourceFrameIndex": 3,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/final/sprite.png",
                        "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06",
                        "identityBaselineY": 923,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackPreviousFrameIndex": 5,
                        "playbackPreviousRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/prompt.txt",
                        "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                        "providerCall": false,
                        "providerFrameIndex": 2,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/raw/source.png",
                        "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                                "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                        "sourceFrameIndex": 2,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png"
                    }
                ],
                "gender": "woman",
                "genderSource": "request-text",
                "generation": {
                    "anchorGuidePolicy": "none",
                    "animationImageCount": 3,
                    "animationModel": "gpt-image-2-2026-04-21",
                    "attemptedCalls": 4,
                    "completedCalls": 4,
                    "f1ImageCount": 1,
                    "f1Model": "gpt-image-2-2026-04-21",
                    "imageCount": 4,
                    "inputFidelity": "unsupported-omitted",
                    "inputFidelityRequested": false,
                    "loopMode": "ping-pong",
                    "maximumReferenceCount": 2,
                    "model": "gpt-image-2-2026-04-21",
                    "operation": "chained-image-edit-plus-exact-ping-pong-reuse",
                    "playbackFrameCount": 6,
                    "playbackSourceFrameIndices": [
                        1,
                        2,
                        3,
                        4,
                        3,
                        2
                    ],
                    "posePolicy": "natural-relational",
                    "providerFrameCount": 4,
                    "quality": "medium",
                    "referenceCountsBySourceFrame": {
                        "1": 1,
                        "2": 1,
                        "3": 2,
                        "4": 2
                    },
                    "referenceOrderPolicy": [
                        "f1RawIdentity",
                        "previousRawOpaque"
                    ],
                    "size": "1024x1024",
                    "sourceFrameCount": 4,
                    "tool": "openai-image"
                },
                "generationId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "postProcessing": {
                    "alphaOnly": true,
                    "despilled": false,
                    "feathered": false,
                    "filtered": false,
                    "paletteReduced": false,
                    "resampled": false,
                    "resized": false,
                    "translated": false
                },
                "prompt": "prompt.txt",
                "promptSha256": "6ecfbc451d81a95353628fc58f9d80308075ca7038469a51ac5bf2d2e0ba6ee2",
                "providerCallCount": 4,
                "providerFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/final/sprite.png",
                        "finalSha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01",
                        "identityBaselineY": 923,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/prompt.txt",
                        "promptSha256": "6ecfbc451d81a95353628fc58f9d80308075ca7038469a51ac5bf2d2e0ba6ee2",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "rawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/final/sprite.png",
                        "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                        "identityBaselineY": 923,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/prompt.txt",
                        "promptSha256": "c292b78e27aadf1d0ad8f902baab4dd69b17e5cab0df4798ed4e519359630a2e",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "referenceSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/final/sprite.png",
                        "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                        "identityBaselineY": 923,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/prompt.txt",
                        "promptSha256": "61aa77a67f4f3fe2498cdc36f011d9dca99bfa9d3361c4c548cd2664bd8d5627",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                                "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/final/sprite.png",
                        "finalSha256": "301fd2106a16a17db2ef30ec1daa820eeb65f2ebade719fbb7fef3fa1d5b55c7",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04",
                        "identityBaselineY": 923,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/prompt.txt",
                        "promptSha256": "5726b2ee5527a3033e5c630b41f4b3c2a92eb98c64673257a97142abc956deb9",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/raw/source.png",
                        "rawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                                "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "raw": "raw/source.png",
                "rawArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--raw-source-png",
                "rawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "representative": "final/sprite.png",
                "runId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/final/sprite.png",
                        "finalSha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01",
                        "identityBaselineY": 923,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/prompt.txt",
                        "promptSha256": "6ecfbc451d81a95353628fc58f9d80308075ca7038469a51ac5bf2d2e0ba6ee2",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "rawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/final/sprite.png",
                        "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                        "identityBaselineY": 923,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/prompt.txt",
                        "promptSha256": "c292b78e27aadf1d0ad8f902baab4dd69b17e5cab0df4798ed4e519359630a2e",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "referenceSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/final/sprite.png",
                        "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                        "identityBaselineY": 923,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/prompt.txt",
                        "promptSha256": "61aa77a67f4f3fe2498cdc36f011d9dca99bfa9d3361c4c548cd2664bd8d5627",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                                "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/final/sprite.png",
                        "finalSha256": "301fd2106a16a17db2ef30ec1daa820eeb65f2ebade719fbb7fef3fa1d5b55c7",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04",
                        "identityBaselineY": 923,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/prompt.txt",
                        "promptSha256": "5726b2ee5527a3033e5c630b41f4b3c2a92eb98c64673257a97142abc956deb9",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/raw/source.png",
                        "rawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                                "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "sourceGenerationId": null,
                "status": "animated-command-review-required",
                "summary": "f1-plus-previous 6-frame idle ping-pong animation from 4 provider-generated frame(s); every playback frame preserves raw and alpha-only final evidence.",
                "title": "ragnarok-create · Willowglass Dream Archivist · idle animation",
                "userRequest": "Create a white adult human woman Willowglass Dream Archivist, wearing an original layered midnight-blue academy archivist robe with restrained silver trim, long fitted sleeves, soft sturdy shoes, and dark brown shoulder-length hair, holding one small closed book at chest height with both hands, standing upright in a calm balanced neutral pose with both boot soles level and close together, and no magical effect, loose papers, additional prop, floor, or scenery."
            }
        },
        "receipt.json": {
            "sha256": "df18416cbd4952e1e6740a09db350e19af1428485dcbae9eccb5eadd551e2ff5",
            "bytes": 58628,
            "value": {
                "anchorGuide": null,
                "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--receipt-json",
                "f1ProviderModel": "gpt-image-2-2026-04-21",
                "frameCount": 6,
                "frames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/final/sprite.png",
                        "finalSha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01",
                        "identityBaselineY": 923,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/prompt.txt",
                        "promptSha256": "6ecfbc451d81a95353628fc58f9d80308075ca7038469a51ac5bf2d2e0ba6ee2",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "rawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/final/sprite.png",
                        "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                        "identityBaselineY": 923,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/prompt.txt",
                        "promptSha256": "c292b78e27aadf1d0ad8f902baab4dd69b17e5cab0df4798ed4e519359630a2e",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "referenceSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/final/sprite.png",
                        "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                        "identityBaselineY": 923,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/prompt.txt",
                        "promptSha256": "61aa77a67f4f3fe2498cdc36f011d9dca99bfa9d3361c4c548cd2664bd8d5627",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                                "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/final/sprite.png",
                        "finalSha256": "301fd2106a16a17db2ef30ec1daa820eeb65f2ebade719fbb7fef3fa1d5b55c7",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04",
                        "identityBaselineY": 923,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/prompt.txt",
                        "promptSha256": "5726b2ee5527a3033e5c630b41f4b3c2a92eb98c64673257a97142abc956deb9",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/raw/source.png",
                        "rawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                                "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/final/sprite.png",
                        "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05",
                        "identityBaselineY": 923,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackPreviousFrameIndex": 4,
                        "playbackPreviousRawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/prompt.txt",
                        "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                        "providerCall": false,
                        "providerFrameIndex": 3,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/raw/source.png",
                        "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                                "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                        "sourceFrameIndex": 3,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/final/sprite.png",
                        "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06",
                        "identityBaselineY": 923,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackPreviousFrameIndex": 5,
                        "playbackPreviousRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/prompt.txt",
                        "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                        "providerCall": false,
                        "providerFrameIndex": 2,
                        "providerGenerated": false,
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/raw/source.png",
                        "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                                "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                        "sourceFrameIndex": 2,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png"
                    }
                ],
                "generationId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
                "loopMode": "ping-pong",
                "playbackSourceFrameIndices": [
                    1,
                    2,
                    3,
                    4,
                    3,
                    2
                ],
                "posePolicy": "natural-relational",
                "providerCallCount": 4,
                "providerCallCountAttempted": 4,
                "providerCallCountCompleted": 4,
                "providerFrameCount": 4,
                "providerFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/final/sprite.png",
                        "finalSha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01",
                        "identityBaselineY": 923,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/prompt.txt",
                        "promptSha256": "6ecfbc451d81a95353628fc58f9d80308075ca7038469a51ac5bf2d2e0ba6ee2",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "rawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/final/sprite.png",
                        "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                        "identityBaselineY": 923,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/prompt.txt",
                        "promptSha256": "c292b78e27aadf1d0ad8f902baab4dd69b17e5cab0df4798ed4e519359630a2e",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "referenceSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/final/sprite.png",
                        "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                        "identityBaselineY": 923,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/prompt.txt",
                        "promptSha256": "61aa77a67f4f3fe2498cdc36f011d9dca99bfa9d3361c4c548cd2664bd8d5627",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                                "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/final/sprite.png",
                        "finalSha256": "301fd2106a16a17db2ef30ec1daa820eeb65f2ebade719fbb7fef3fa1d5b55c7",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04",
                        "identityBaselineY": 923,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/prompt.txt",
                        "promptSha256": "5726b2ee5527a3033e5c630b41f4b3c2a92eb98c64673257a97142abc956deb9",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/raw/source.png",
                        "rawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                                "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "providerModel": "gpt-image-2-2026-04-21",
                "runId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameCount": 4,
                "sourceFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/final/sprite.png",
                        "finalSha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01",
                        "identityBaselineY": 923,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/prompt.txt",
                        "promptSha256": "6ecfbc451d81a95353628fc58f9d80308075ca7038469a51ac5bf2d2e0ba6ee2",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "rawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/final/sprite.png",
                        "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                        "identityBaselineY": 923,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/prompt.txt",
                        "promptSha256": "c292b78e27aadf1d0ad8f902baab4dd69b17e5cab0df4798ed4e519359630a2e",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                        "referenceSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/final/sprite.png",
                        "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                        "identityBaselineY": 923,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/prompt.txt",
                        "promptSha256": "61aa77a67f4f3fe2498cdc36f011d9dca99bfa9d3361c4c548cd2664bd8d5627",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                        "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                                "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/final/sprite.png",
                        "finalSha256": "301fd2106a16a17db2ef30ec1daa820eeb65f2ebade719fbb7fef3fa1d5b55c7",
                        "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04",
                        "identityBaselineY": 923,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/prompt.txt",
                        "promptSha256": "5726b2ee5527a3033e5c630b41f4b3c2a92eb98c64673257a97142abc956deb9",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/raw/source.png",
                        "rawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                        "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/receipt.json",
                        "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                        "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                        "references": [
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                            },
                            {
                                "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                                "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "sourceGenerationId": null
            }
        },
        "request.json": {
            "sha256": "c96bcd04bbc511ec3db60902c48632f6ffab94087ed0cfd0f19292b7806966c1",
            "bytes": 67947,
            "value": {
                "animation": {
                    "action": "idle",
                    "anchorGuide": null,
                    "anchorGuidePolicy": "none",
                    "durationMs": 120,
                    "f1ProviderModel": "gpt-image-2-2026-04-21",
                    "frameCount": 6,
                    "frames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/final/sprite.png",
                            "finalSha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01",
                            "identityBaselineY": 923,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/prompt.txt",
                            "promptSha256": "6ecfbc451d81a95353628fc58f9d80308075ca7038469a51ac5bf2d2e0ba6ee2",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                            "rawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/final/sprite.png",
                            "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                            "identityBaselineY": 923,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/prompt.txt",
                            "promptSha256": "c292b78e27aadf1d0ad8f902baab4dd69b17e5cab0df4798ed4e519359630a2e",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                            "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                            "referenceSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                    "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/final/sprite.png",
                            "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                            "identityBaselineY": 923,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/prompt.txt",
                            "promptSha256": "61aa77a67f4f3fe2498cdc36f011d9dca99bfa9d3361c4c548cd2664bd8d5627",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                            "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                            "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                    "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                                    "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/final/sprite.png",
                            "finalSha256": "301fd2106a16a17db2ef30ec1daa820eeb65f2ebade719fbb7fef3fa1d5b55c7",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04",
                            "identityBaselineY": 923,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/prompt.txt",
                            "promptSha256": "5726b2ee5527a3033e5c630b41f4b3c2a92eb98c64673257a97142abc956deb9",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/raw/source.png",
                            "rawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                            "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                    "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                                    "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/final/sprite.png",
                            "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-05",
                            "identityBaselineY": 923,
                            "index": 5,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackPreviousFrameIndex": 4,
                            "playbackPreviousRawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/prompt.txt",
                            "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                            "providerCall": false,
                            "providerFrameIndex": 3,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/raw/source.png",
                            "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                            "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                                    "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                            "sourceFrameIndex": 3,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png"
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/final/sprite.png",
                            "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-06",
                            "identityBaselineY": 923,
                            "index": 6,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackPreviousFrameIndex": 5,
                            "playbackPreviousRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/prompt.txt",
                            "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                            "providerCall": false,
                            "providerFrameIndex": 2,
                            "providerGenerated": false,
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/raw/source.png",
                            "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                            "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                                    "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                            "sourceFrameIndex": 2,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png"
                        }
                    ],
                    "generationId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
                    "ideaIdleBehaviorDeferred": null,
                    "identityBaselineY": 923,
                    "identityPolicy": "immutable-f1-raw-master",
                    "idleBehavior": "One smooth connected book-reading idle: she opens the small book slightly and leans her head and upper torso gently toward it, then returns. Both forearms and hands move with the book while her layered sleeves and hair follow softly. Keep both feet grounded. No separate gestures, no page-turning, no magical effects.",
                    "idleBehaviorSource": "explicit-command",
                    "lockedParts": [
                        "recognizable face and identity",
                        "costume and equipment design",
                        "fine motifs, trim, fasteners, gems, and prop markings",
                        "palette family and pixel rendering language",
                        "body proportions and overall scale band",
                        "screen-left three-quarter facing",
                        "1024x1024 canvas and flat #ff00ff background"
                    ],
                    "loop": true,
                    "loopMode": "ping-pong",
                    "movingParts": [
                        "whole pose silhouette",
                        "center of mass",
                        "torso and hips",
                        "both arms and hands",
                        "knees, legs, boots, and stance",
                        "hair and sleeves",
                        "coat tails, dress, cape, and hem",
                        "held equipment following the hands"
                    ],
                    "parentPolicy": "f1-plus-previous",
                    "phaseProgressPercent": [
                        0,
                        22,
                        44,
                        100,
                        44,
                        22
                    ],
                    "phases": [
                        "settled identity pose; motion has not started",
                        "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
                    ],
                    "playbackSourceFrameIndices": [
                        1,
                        2,
                        3,
                        4,
                        3,
                        2
                    ],
                    "posePolicy": "natural-relational",
                    "preview": {
                        "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--preview-animation-gif",
                        "format": "derived-gif-preview",
                        "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/preview/animation.gif",
                        "sha256": "e4c53e536887f9ffb969da60d0b6e46d93731793cff0e0c23a757ea89069f9c4",
                        "sourcePolicy": "final-frame-pngs-unchanged"
                    },
                    "providerCallCount": 4,
                    "providerFrameCount": 4,
                    "providerFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/final/sprite.png",
                            "finalSha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01",
                            "identityBaselineY": 923,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/prompt.txt",
                            "promptSha256": "6ecfbc451d81a95353628fc58f9d80308075ca7038469a51ac5bf2d2e0ba6ee2",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                            "rawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/final/sprite.png",
                            "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                            "identityBaselineY": 923,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/prompt.txt",
                            "promptSha256": "c292b78e27aadf1d0ad8f902baab4dd69b17e5cab0df4798ed4e519359630a2e",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                            "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                            "referenceSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                    "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/final/sprite.png",
                            "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                            "identityBaselineY": 923,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/prompt.txt",
                            "promptSha256": "61aa77a67f4f3fe2498cdc36f011d9dca99bfa9d3361c4c548cd2664bd8d5627",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                            "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                            "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                    "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                                    "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/final/sprite.png",
                            "finalSha256": "301fd2106a16a17db2ef30ec1daa820eeb65f2ebade719fbb7fef3fa1d5b55c7",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04",
                            "identityBaselineY": 923,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/prompt.txt",
                            "promptSha256": "5726b2ee5527a3033e5c630b41f4b3c2a92eb98c64673257a97142abc956deb9",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/raw/source.png",
                            "rawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                            "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                    "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                                    "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        }
                    ],
                    "providerModel": "gpt-image-2-2026-04-21",
                    "rootPolicy": {
                        "allowedCorrection": "lossless whole-canvas integer translation only",
                        "exactProviderRootRequired": false,
                        "measuredAfterGeneration": true,
                        "poseDependentHorizontalFootMotionPreserved": true,
                        "providerConstraint": "at least one boot sole within 16px of F1 baseline"
                    },
                    "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                    "sourceFrameCount": 4,
                    "sourceFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/final/sprite.png",
                            "finalSha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-01",
                            "identityBaselineY": 923,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/prompt.txt",
                            "promptSha256": "6ecfbc451d81a95353628fc58f9d80308075ca7038469a51ac5bf2d2e0ba6ee2",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                            "rawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/final/sprite.png",
                            "finalSha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-02",
                            "identityBaselineY": 923,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/prompt.txt",
                            "promptSha256": "c292b78e27aadf1d0ad8f902baab4dd69b17e5cab0df4798ed4e519359630a2e",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                            "rawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                            "referenceSha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                    "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/final/sprite.png",
                            "finalSha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-03",
                            "identityBaselineY": 923,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/prompt.txt",
                            "promptSha256": "61aa77a67f4f3fe2498cdc36f011d9dca99bfa9d3361c4c548cd2664bd8d5627",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                            "rawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                            "referenceSha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                    "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
                                    "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/final/sprite.png",
                            "finalSha256": "301fd2106a16a17db2ef30ec1daa820eeb65f2ebade719fbb7fef3fa1d5b55c7",
                            "frameId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--frames-04",
                            "identityBaselineY": 923,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/prompt.txt",
                            "promptSha256": "5726b2ee5527a3033e5c630b41f4b3c2a92eb98c64673257a97142abc956deb9",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/raw/source.png",
                            "rawSha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
                            "receipt": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/receipt.json",
                            "reference": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                            "referenceSha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
                            "references": [
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
                                    "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9"
                                },
                                {
                                    "path": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
                                    "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        }
                    ],
                    "stylePolicy": "elder-a-master"
                },
                "artifactId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357--request-json",
                "category": "Knowledge & Mysteries",
                "categorySlug": "knowledge-mysteries",
                "class": "Willowglass Dream Archivist",
                "classSource": "request-title",
                "command": "ragnarok-create --animate",
                "createdAt": "2026-07-24T22:07:21.727577Z",
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "provider": {
                    "animationInputFidelity": "unsupported-omitted",
                    "animationModel": "gpt-image-2-2026-04-21",
                    "attemptedCalls": 4,
                    "completedCalls": 4,
                    "f1InputFidelity": "unsupported-omitted",
                    "f1Model": "gpt-image-2-2026-04-21",
                    "quality": "medium",
                    "size": "1024x1024"
                },
                "request": "Create a white adult human woman Willowglass Dream Archivist, wearing an original layered midnight-blue academy archivist robe with restrained silver trim, long fitted sleeves, soft sturdy shoes, and dark brown shoulder-length hair, holding one small closed book at chest height with both hands, standing upright in a calm balanced neutral pose with both boot soles level and close together, and no magical effect, loose papers, additional prop, floor, or scenery.",
                "runId": "ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "source": null,
                "sourceGenerationId": null,
                "title": "Willowglass Dream Archivist"
            }
        }
    },
    "media": {
        "final/sprite.png": {
            "attachment_id": 3971,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/final/sprite.png",
            "sha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817",
            "bytes": 943416,
            "mime": "image/png"
        },
        "frames/01/final/sprite.png": {
            "attachment_id": 3974,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/final/sprite.png",
            "sha256": "db935d3f6dcf4b4796ffc2f9257e2f41085884a98b0cf59462fe53036336e817",
            "bytes": 943416,
            "mime": "image/png"
        },
        "frames/01/raw/source.png": {
            "attachment_id": 3975,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/01/raw/source.png",
            "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
            "bytes": 966068,
            "mime": "image/png"
        },
        "frames/02/final/sprite.png": {
            "attachment_id": 3982,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/final/sprite.png",
            "sha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
            "bytes": 960632,
            "mime": "image/png"
        },
        "frames/02/raw/source.png": {
            "attachment_id": 3983,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/02/raw/source.png",
            "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
            "bytes": 979191,
            "mime": "image/png"
        },
        "frames/03/final/sprite.png": {
            "attachment_id": 3980,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/final/sprite.png",
            "sha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
            "bytes": 988911,
            "mime": "image/png"
        },
        "frames/03/raw/source.png": {
            "attachment_id": 3981,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/03/raw/source.png",
            "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
            "bytes": 1003674,
            "mime": "image/png"
        },
        "frames/04/final/sprite.png": {
            "attachment_id": 3972,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/final/sprite.png",
            "sha256": "301fd2106a16a17db2ef30ec1daa820eeb65f2ebade719fbb7fef3fa1d5b55c7",
            "bytes": 1093207,
            "mime": "image/png"
        },
        "frames/04/raw/source.png": {
            "attachment_id": 3973,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/04/raw/source.png",
            "sha256": "2483a54d0f404da2f8258e1db0132b8f7463ac8d57c310e52de36fc38869344e",
            "bytes": 1110229,
            "mime": "image/png"
        },
        "frames/05/final/sprite.png": {
            "attachment_id": 3976,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/final/sprite.png",
            "sha256": "8eff85731f6fecdc98f4585dd8cff501f8b8a613f702624c80a6bf3fa8e3be3a",
            "bytes": 988911,
            "mime": "image/png"
        },
        "frames/05/raw/source.png": {
            "attachment_id": 3977,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/05/raw/source.png",
            "sha256": "0a52b35bc942e839329f4b422b1488e66cd1f65929a483f5644f24bbbdcd4e05",
            "bytes": 1003674,
            "mime": "image/png"
        },
        "frames/06/final/sprite.png": {
            "attachment_id": 3978,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/final/sprite.png",
            "sha256": "53d4c57b14e54db87f7a3fb013340c40848ec57cf5826e8971d84fff74dba256",
            "bytes": 960632,
            "mime": "image/png"
        },
        "frames/06/raw/source.png": {
            "attachment_id": 3979,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/frames/06/raw/source.png",
            "sha256": "d35ba58622a06b7946e68c5a0263b7faf74451c7fe7fe3344d44b093324c869c",
            "bytes": 979191,
            "mime": "image/png"
        },
        "preview/animation.gif": {
            "attachment_id": 3970,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/preview/animation.gif",
            "sha256": "e4c53e536887f9ffb969da60d0b6e46d93731793cff0e0c23a757ea89069f9c4",
            "bytes": 518339,
            "mime": "image/gif"
        },
        "raw/source.png": {
            "attachment_id": 3984,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/automated-character-runs-v1/knowledge-mysteries/ragnarok-create-20260724T220721727577Z-willowglass-dream-archivist-762357/raw/source.png",
            "sha256": "ea5d5beff623e44661ff083b17c0e9a64e5086e3d213ecb8268020fea4af4be9",
            "bytes": 966068,
            "mime": "image/png"
        }
    },
    "importedAt": "2026-07-24T22:10:35+00:00",
    "archiveVisibility": "publish"
}

Larkspur Academy Rune Attendant · idle animation

Academy & Town · 2026-07-24T20:03:21.582726Z · ID ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568

raw/source.png
Larkspur Academy Rune Attendant · idle animation
final/sprite.png
Larkspur Academy Rune Attendant · idle animation
frames/02/final/sprite.png
Larkspur Academy Rune Attendant · idle animation
frames/03/final/sprite.png
Larkspur Academy Rune Attendant · idle animation
frames/04/final/sprite.png
Larkspur Academy Rune Attendant · idle animation
frames/05/final/sprite.png
Larkspur Academy Rune Attendant · idle animation
frames/06/final/sprite.png
Larkspur Academy Rune Attendant · idle animation
preview/animation.gif
Larkspur Academy Rune Attendant · idle animation
CSS frame player · 6 frames
Additional output · frames/01/final/sprite.png
Larkspur Academy Rune Attendant · idle animation · frames/01/final/sprite.png
Additional output · frames/01/raw/source.png
Larkspur Academy Rune Attendant · idle animation · frames/01/raw/source.png
Additional output · frames/02/raw/source.png
Larkspur Academy Rune Attendant · idle animation · frames/02/raw/source.png
Additional output · frames/03/raw/source.png
Larkspur Academy Rune Attendant · idle animation · frames/03/raw/source.png
Additional output · frames/04/raw/source.png
Larkspur Academy Rune Attendant · idle animation · frames/04/raw/source.png
Additional output · frames/05/raw/source.png
Larkspur Academy Rune Attendant · idle animation · frames/05/raw/source.png
Additional output · frames/06/raw/source.png
Larkspur Academy Rune Attendant · idle animation · frames/06/raw/source.png
Full metadata
{
    "schemaVersion": "midgard-pixels.wordpress-generation.v1",
    "generationId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
    "runId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
    "title": "Larkspur Academy Rune Attendant · idle animation",
    "createdAt": "2026-07-24T20:03:21.582726Z",
    "request": "Create a white adult human woman Larkspur Academy Rune Attendant, wearing an original navy-and-cream academy service dress with a short fitted jacket, modest layered skirt, small shoulder ribbons, tied-back chestnut hair, and soft sturdy shoes, standing upright in a calm balanced neutral pose with both boot soles level and close together, both hands relaxed near her sides, and no prop, weapon, magical effect, detached object, floor, or scenery.",
    "category": "Academy & Town",
    "categorySlug": "academy-town",
    "class": "Larkspur Academy Rune Attendant",
    "gender": "woman",
    "reference": "research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
    "promptSha256": "7a1abdd9e657bcfd7f2ce0a09a468ff5ace51fea72c4b887d6c7437d0e8a5861",
    "providerModel": "gpt-image-2-2026-04-21",
    "status": "accepted-owner-golden-animation-lock",
    "sourcePath": "/home/hpanel/web/midgard.agentstories.io/public_html/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
    "manifest": {
        "animation": {
            "action": "idle",
            "anchorGuide": null,
            "anchorGuidePolicy": "none",
            "durationMs": 120,
            "f1ProviderModel": "gpt-image-2-2026-04-21",
            "frameCount": 6,
            "frames": [
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-prompt-txt",
                        "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-raw-source-png",
                        "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/final/sprite.png",
                    "finalSha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce",
                    "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01",
                    "identityBaselineY": 911,
                    "index": 1,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "settled identity pose; motion has not started",
                    "phaseProgressPercent": 0,
                    "playbackSourceFrameIndex": 1,
                    "posePolicy": "natural-relational",
                    "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/prompt.txt",
                    "promptSha256": "7a1abdd9e657bcfd7f2ce0a09a468ff5ace51fea72c4b887d6c7437d0e8a5861",
                    "providerCall": true,
                    "providerFrameIndex": 1,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                    "rawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                    "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/receipt.json",
                    "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                    "references": [
                        {
                            "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                        }
                    ],
                    "sourceFrameIndex": 1,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-prompt-txt",
                        "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                        "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/final/sprite.png",
                    "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                    "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                    "identityBaselineY": 911,
                    "index": 2,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 1,
                    "parentRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                    "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 22,
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "natural-relational",
                    "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/prompt.txt",
                    "promptSha256": "4169c6e1e4e7346f1128d87403dfa9828650892f59ec349057dfb2f3835fab91",
                    "providerCall": true,
                    "providerFrameIndex": 2,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                    "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                    "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/receipt.json",
                    "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                    "referenceSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                    "references": [
                        {
                            "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                            "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                        }
                    ],
                    "sourceFrameIndex": 2,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-prompt-txt",
                        "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                        "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/final/sprite.png",
                    "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                    "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                    "identityBaselineY": 911,
                    "index": 3,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 2,
                    "parentRawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 44,
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "natural-relational",
                    "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/prompt.txt",
                    "promptSha256": "96b344565266ad35f9b5ffc6ea542b4d614f320c35d71cdefed2dd1869183773",
                    "providerCall": true,
                    "providerFrameIndex": 3,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                    "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                    "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/receipt.json",
                    "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                    "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                    "references": [
                        {
                            "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                            "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                        },
                        {
                            "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                            "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                        }
                    ],
                    "sourceFrameIndex": 3,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-prompt-txt",
                        "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-raw-source-png",
                        "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/final/sprite.png",
                    "finalSha256": "2d8384ebc6a15248b9c44e3df03bf1486e95bac6e1d48f1367e05051aa30b471",
                    "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04",
                    "identityBaselineY": 911,
                    "index": 4,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 3,
                    "parentRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                    "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 100,
                    "playbackSourceFrameIndex": 4,
                    "posePolicy": "natural-relational",
                    "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/prompt.txt",
                    "promptSha256": "dff5c3086c12acfceaf8e2680697f958d6ce1452a863ab15206d1e92be2f79d4",
                    "providerCall": true,
                    "providerFrameIndex": 4,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/raw/source.png",
                    "rawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                    "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/receipt.json",
                    "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                    "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                    "references": [
                        {
                            "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                            "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                        },
                        {
                            "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                            "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                        }
                    ],
                    "sourceFrameIndex": 4,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-prompt-txt",
                        "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-raw-source-png",
                        "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-receipt-json"
                    },
                    "byteIdentityVerified": true,
                    "durationMs": 120,
                    "exactByteReuse": true,
                    "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/final/sprite.png",
                    "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                    "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05",
                    "identityBaselineY": 911,
                    "index": 5,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 44,
                    "playbackPreviousFrameIndex": 4,
                    "playbackPreviousRawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "natural-relational",
                    "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/prompt.txt",
                    "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                    "providerCall": false,
                    "providerFrameIndex": 3,
                    "providerGenerated": false,
                    "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/raw/source.png",
                    "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                    "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/receipt.json",
                    "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                    "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                    "references": [
                        {
                            "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                            "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                            "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                        }
                    ],
                    "sourceFinalArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                    "sourceFrameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                    "sourceFrameIndex": 3,
                    "sourceProvided": false,
                    "sourceRawArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png"
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-prompt-txt",
                        "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-raw-source-png",
                        "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-receipt-json"
                    },
                    "byteIdentityVerified": true,
                    "durationMs": 120,
                    "exactByteReuse": true,
                    "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/final/sprite.png",
                    "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                    "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06",
                    "identityBaselineY": 911,
                    "index": 6,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 22,
                    "playbackPreviousFrameIndex": 5,
                    "playbackPreviousRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "natural-relational",
                    "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/prompt.txt",
                    "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                    "providerCall": false,
                    "providerFrameIndex": 2,
                    "providerGenerated": false,
                    "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/raw/source.png",
                    "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                    "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/receipt.json",
                    "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                    "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                    "references": [
                        {
                            "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                            "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                            "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                        }
                    ],
                    "sourceFinalArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                    "sourceFrameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                    "sourceFrameIndex": 2,
                    "sourceProvided": false,
                    "sourceRawArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png"
                }
            ],
            "generationId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
            "ideaIdleBehaviorDeferred": null,
            "identityBaselineY": 911,
            "identityPolicy": "immutable-f1-raw-master",
            "idleBehavior": "One simple connected weight-shift and breath loop: lean the torso toward the screen-left planted foot, open both forearms visibly, bend both knees and shift the hips while both boot sole contacts stay at their exact F1 canvas positions, and let hair, sleeves, plus loose coat or dress hem show clear connected follow-through; then return. The pose may compress or extend naturally around the planted root, but the character must never be uniformly resized, stretched, sheared, or recentered. Keep head, torso, and boot pixel scale consistent. Held equipment follows the hands through one readable continuous arc; it never flips end-for-end or changes from carried to planted or resting.",
            "idleBehaviorSource": "locked-generic-whole-body-loop",
            "lockedParts": [
                "recognizable face and identity",
                "costume and equipment design",
                "fine motifs, trim, fasteners, gems, and prop markings",
                "palette family and pixel rendering language",
                "body proportions and overall scale band",
                "screen-left three-quarter facing",
                "1024x1024 canvas and flat #ff00ff background"
            ],
            "loop": true,
            "loopMode": "ping-pong",
            "movingParts": [
                "whole pose silhouette",
                "center of mass",
                "torso and hips",
                "both arms and hands",
                "knees, legs, boots, and stance",
                "hair and sleeves",
                "coat tails, dress, cape, and hem",
                "held equipment following the hands"
            ],
            "parentPolicy": "f1-plus-previous",
            "phaseProgressPercent": [
                0,
                22,
                44,
                100,
                44,
                22
            ],
            "phases": [
                "settled identity pose; motion has not started",
                "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
            ],
            "playbackSourceFrameIndices": [
                1,
                2,
                3,
                4,
                3,
                2
            ],
            "posePolicy": "natural-relational",
            "preview": {
                "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--preview-animation-gif",
                "format": "derived-gif-preview",
                "path": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/preview/animation.gif",
                "sha256": "55a4d6333f204733055c56fa849128962f355f9fdf877044ef8bbe4681e144da",
                "sourcePolicy": "final-frame-pngs-unchanged"
            },
            "providerCallCount": 4,
            "providerFrameCount": 4,
            "providerFrames": [
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-prompt-txt",
                        "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-raw-source-png",
                        "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/final/sprite.png",
                    "finalSha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce",
                    "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01",
                    "identityBaselineY": 911,
                    "index": 1,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "settled identity pose; motion has not started",
                    "phaseProgressPercent": 0,
                    "playbackSourceFrameIndex": 1,
                    "posePolicy": "natural-relational",
                    "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/prompt.txt",
                    "promptSha256": "7a1abdd9e657bcfd7f2ce0a09a468ff5ace51fea72c4b887d6c7437d0e8a5861",
                    "providerCall": true,
                    "providerFrameIndex": 1,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                    "rawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                    "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/receipt.json",
                    "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                    "references": [
                        {
                            "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                        }
                    ],
                    "sourceFrameIndex": 1,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-prompt-txt",
                        "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                        "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/final/sprite.png",
                    "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                    "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                    "identityBaselineY": 911,
                    "index": 2,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 1,
                    "parentRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                    "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 22,
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "natural-relational",
                    "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/prompt.txt",
                    "promptSha256": "4169c6e1e4e7346f1128d87403dfa9828650892f59ec349057dfb2f3835fab91",
                    "providerCall": true,
                    "providerFrameIndex": 2,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                    "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                    "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/receipt.json",
                    "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                    "referenceSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                    "references": [
                        {
                            "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                            "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                        }
                    ],
                    "sourceFrameIndex": 2,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-prompt-txt",
                        "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                        "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/final/sprite.png",
                    "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                    "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                    "identityBaselineY": 911,
                    "index": 3,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 2,
                    "parentRawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 44,
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "natural-relational",
                    "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/prompt.txt",
                    "promptSha256": "96b344565266ad35f9b5ffc6ea542b4d614f320c35d71cdefed2dd1869183773",
                    "providerCall": true,
                    "providerFrameIndex": 3,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                    "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                    "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/receipt.json",
                    "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                    "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                    "references": [
                        {
                            "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                            "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                        },
                        {
                            "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                            "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                        }
                    ],
                    "sourceFrameIndex": 3,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-prompt-txt",
                        "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-raw-source-png",
                        "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/final/sprite.png",
                    "finalSha256": "2d8384ebc6a15248b9c44e3df03bf1486e95bac6e1d48f1367e05051aa30b471",
                    "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04",
                    "identityBaselineY": 911,
                    "index": 4,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 3,
                    "parentRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                    "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 100,
                    "playbackSourceFrameIndex": 4,
                    "posePolicy": "natural-relational",
                    "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/prompt.txt",
                    "promptSha256": "dff5c3086c12acfceaf8e2680697f958d6ce1452a863ab15206d1e92be2f79d4",
                    "providerCall": true,
                    "providerFrameIndex": 4,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/raw/source.png",
                    "rawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                    "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/receipt.json",
                    "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                    "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                    "references": [
                        {
                            "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                            "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                        },
                        {
                            "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                            "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                        }
                    ],
                    "sourceFrameIndex": 4,
                    "sourceProvided": false
                }
            ],
            "providerModel": "gpt-image-2-2026-04-21",
            "rootPolicy": {
                "allowedCorrection": "lossless whole-canvas integer translation only",
                "exactProviderRootRequired": false,
                "measuredAfterGeneration": true,
                "poseDependentHorizontalFootMotionPreserved": true,
                "providerConstraint": "at least one boot sole within 16px of F1 baseline"
            },
            "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
            "sourceFrameCount": 4,
            "sourceFrames": [
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-prompt-txt",
                        "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-raw-source-png",
                        "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/final/sprite.png",
                    "finalSha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce",
                    "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01",
                    "identityBaselineY": 911,
                    "index": 1,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": null,
                    "parentRawSha256": null,
                    "phase": "settled identity pose; motion has not started",
                    "phaseProgressPercent": 0,
                    "playbackSourceFrameIndex": 1,
                    "posePolicy": "natural-relational",
                    "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/prompt.txt",
                    "promptSha256": "7a1abdd9e657bcfd7f2ce0a09a468ff5ace51fea72c4b887d6c7437d0e8a5861",
                    "providerCall": true,
                    "providerFrameIndex": 1,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                    "rawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                    "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/receipt.json",
                    "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                    "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                    "references": [
                        {
                            "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                        }
                    ],
                    "sourceFrameIndex": 1,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-prompt-txt",
                        "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                        "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/final/sprite.png",
                    "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                    "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                    "identityBaselineY": 911,
                    "index": 2,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 1,
                    "parentRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                    "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 22,
                    "playbackSourceFrameIndex": 2,
                    "posePolicy": "natural-relational",
                    "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/prompt.txt",
                    "promptSha256": "4169c6e1e4e7346f1128d87403dfa9828650892f59ec349057dfb2f3835fab91",
                    "providerCall": true,
                    "providerFrameIndex": 2,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                    "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                    "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/receipt.json",
                    "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                    "referenceSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                    "references": [
                        {
                            "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                            "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                        }
                    ],
                    "sourceFrameIndex": 2,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-prompt-txt",
                        "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                        "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/final/sprite.png",
                    "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                    "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                    "identityBaselineY": 911,
                    "index": 3,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 2,
                    "parentRawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                    "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 44,
                    "playbackSourceFrameIndex": 3,
                    "posePolicy": "natural-relational",
                    "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/prompt.txt",
                    "promptSha256": "96b344565266ad35f9b5ffc6ea542b4d614f320c35d71cdefed2dd1869183773",
                    "providerCall": true,
                    "providerFrameIndex": 3,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                    "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                    "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/receipt.json",
                    "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                    "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                    "references": [
                        {
                            "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                            "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                        },
                        {
                            "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                            "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                        }
                    ],
                    "sourceFrameIndex": 3,
                    "sourceProvided": false
                },
                {
                    "anchorGuide": null,
                    "artifacts": {
                        "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-final-sprite-png",
                        "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-prompt-txt",
                        "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-raw-source-png",
                        "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-receipt-json"
                    },
                    "durationMs": 120,
                    "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/final/sprite.png",
                    "finalSha256": "2d8384ebc6a15248b9c44e3df03bf1486e95bac6e1d48f1367e05051aa30b471",
                    "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04",
                    "identityBaselineY": 911,
                    "index": 4,
                    "loopMode": "ping-pong",
                    "parentFrameIndex": 3,
                    "parentRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                    "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "phaseProgressPercent": 100,
                    "playbackSourceFrameIndex": 4,
                    "posePolicy": "natural-relational",
                    "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/prompt.txt",
                    "promptSha256": "dff5c3086c12acfceaf8e2680697f958d6ce1452a863ab15206d1e92be2f79d4",
                    "providerCall": true,
                    "providerFrameIndex": 4,
                    "providerGenerated": true,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/raw/source.png",
                    "rawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                    "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/receipt.json",
                    "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                    "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                    "references": [
                        {
                            "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                            "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                        },
                        {
                            "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                            "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                        }
                    ],
                    "sourceFrameIndex": 4,
                    "sourceProvided": false
                }
            ],
            "stylePolicy": "elder-a-master"
        },
        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--manifest-json",
        "artifactIndex": {
            "artifactCount": 32,
            "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--artifact-index-json",
            "exclusions": [
                "manifest.json",
                "artifact-index.json"
            ],
            "path": "artifact-index.json",
            "sha256": "2e6c4507b08e2f1c296f0de80ffe832852fa0cbfcb8193f83036be24b67befd5"
        },
        "artifacts": {
            "animation": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--animation-json",
            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--final-sprite-png",
            "generationId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
            "manifest": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--manifest-json",
            "preview": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--preview-animation-gif",
            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--prompt-txt",
            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--raw-source-png",
            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--receipt-json",
            "request": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--request-json"
        },
        "category": "Academy & Town",
        "categorySlug": "academy-town",
        "class": "Larkspur Academy Rune Attendant",
        "classSource": "request-title",
        "createdAt": "2026-07-24T20:03:21.582726Z",
        "final": "final/sprite.png",
        "finalArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--final-sprite-png",
        "finalSha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce",
        "frames": [
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-prompt-txt",
                    "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-raw-source-png",
                    "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-receipt-json"
                },
                "durationMs": 120,
                "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/final/sprite.png",
                "finalSha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce",
                "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01",
                "identityBaselineY": 911,
                "index": 1,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "natural-relational",
                "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/prompt.txt",
                "promptSha256": "7a1abdd9e657bcfd7f2ce0a09a468ff5ace51fea72c4b887d6c7437d0e8a5861",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                "rawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/receipt.json",
                "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "sourceFrameIndex": 1,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-prompt-txt",
                    "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                    "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-receipt-json"
                },
                "durationMs": 120,
                "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/final/sprite.png",
                "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                "identityBaselineY": 911,
                "index": 2,
                "loopMode": "ping-pong",
                "parentFrameIndex": 1,
                "parentRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/prompt.txt",
                "promptSha256": "4169c6e1e4e7346f1128d87403dfa9828650892f59ec349057dfb2f3835fab91",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/receipt.json",
                "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                "referenceSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                "references": [
                    {
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                    }
                ],
                "sourceFrameIndex": 2,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-prompt-txt",
                    "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                    "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-receipt-json"
                },
                "durationMs": 120,
                "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/final/sprite.png",
                "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                "identityBaselineY": 911,
                "index": 3,
                "loopMode": "ping-pong",
                "parentFrameIndex": 2,
                "parentRawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/prompt.txt",
                "promptSha256": "96b344565266ad35f9b5ffc6ea542b4d614f320c35d71cdefed2dd1869183773",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/receipt.json",
                "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                "references": [
                    {
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                    },
                    {
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                    }
                ],
                "sourceFrameIndex": 3,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-prompt-txt",
                    "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-raw-source-png",
                    "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-receipt-json"
                },
                "durationMs": 120,
                "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/final/sprite.png",
                "finalSha256": "2d8384ebc6a15248b9c44e3df03bf1486e95bac6e1d48f1367e05051aa30b471",
                "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04",
                "identityBaselineY": 911,
                "index": 4,
                "loopMode": "ping-pong",
                "parentFrameIndex": 3,
                "parentRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "natural-relational",
                "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/prompt.txt",
                "promptSha256": "dff5c3086c12acfceaf8e2680697f958d6ce1452a863ab15206d1e92be2f79d4",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/raw/source.png",
                "rawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/receipt.json",
                "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                "references": [
                    {
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                    },
                    {
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                    }
                ],
                "sourceFrameIndex": 4,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-prompt-txt",
                    "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-raw-source-png",
                    "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-receipt-json"
                },
                "byteIdentityVerified": true,
                "durationMs": 120,
                "exactByteReuse": true,
                "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/final/sprite.png",
                "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05",
                "identityBaselineY": 911,
                "index": 5,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackPreviousFrameIndex": 4,
                "playbackPreviousRawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/prompt.txt",
                "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                "providerCall": false,
                "providerFrameIndex": 3,
                "providerGenerated": false,
                "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/raw/source.png",
                "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/receipt.json",
                "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                    }
                ],
                "sourceFinalArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                "sourceFrameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                "sourceFrameIndex": 3,
                "sourceProvided": false,
                "sourceRawArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png"
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-prompt-txt",
                    "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-raw-source-png",
                    "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-receipt-json"
                },
                "byteIdentityVerified": true,
                "durationMs": 120,
                "exactByteReuse": true,
                "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/final/sprite.png",
                "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06",
                "identityBaselineY": 911,
                "index": 6,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackPreviousFrameIndex": 5,
                "playbackPreviousRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/prompt.txt",
                "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                "providerCall": false,
                "providerFrameIndex": 2,
                "providerGenerated": false,
                "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/raw/source.png",
                "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/receipt.json",
                "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                    }
                ],
                "sourceFinalArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                "sourceFrameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                "sourceFrameIndex": 2,
                "sourceProvided": false,
                "sourceRawArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png"
            }
        ],
        "gender": "woman",
        "genderSource": "request-text",
        "generation": {
            "anchorGuidePolicy": "none",
            "animationImageCount": 3,
            "animationModel": "gpt-image-2-2026-04-21",
            "attemptedCalls": 4,
            "completedCalls": 4,
            "f1ImageCount": 1,
            "f1Model": "gpt-image-2-2026-04-21",
            "imageCount": 4,
            "inputFidelity": "unsupported-omitted",
            "inputFidelityRequested": false,
            "loopMode": "ping-pong",
            "maximumReferenceCount": 2,
            "model": "gpt-image-2-2026-04-21",
            "operation": "chained-image-edit-plus-exact-ping-pong-reuse",
            "playbackFrameCount": 6,
            "playbackSourceFrameIndices": [
                1,
                2,
                3,
                4,
                3,
                2
            ],
            "posePolicy": "natural-relational",
            "providerFrameCount": 4,
            "quality": "medium",
            "referenceCountsBySourceFrame": {
                "1": 1,
                "2": 1,
                "3": 2,
                "4": 2
            },
            "referenceOrderPolicy": [
                "f1RawIdentity",
                "previousRawOpaque"
            ],
            "size": "1024x1024",
            "sourceFrameCount": 4,
            "tool": "openai-image"
        },
        "generationId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
        "ideaId": null,
        "ideaSource": null,
        "ideaTitle": null,
        "ownerReview": {
            "authority": "repository-owner",
            "decision": "accepted",
            "reviewedAt": "2026-07-24T20:35:48Z"
        },
        "postProcessing": {
            "alphaOnly": true,
            "despilled": false,
            "feathered": false,
            "filtered": false,
            "paletteReduced": false,
            "resampled": false,
            "resized": false,
            "translated": false
        },
        "prompt": "prompt.txt",
        "promptSha256": "7a1abdd9e657bcfd7f2ce0a09a468ff5ace51fea72c4b887d6c7437d0e8a5861",
        "providerCallCount": 4,
        "providerFrames": [
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-prompt-txt",
                    "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-raw-source-png",
                    "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-receipt-json"
                },
                "durationMs": 120,
                "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/final/sprite.png",
                "finalSha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce",
                "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01",
                "identityBaselineY": 911,
                "index": 1,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "natural-relational",
                "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/prompt.txt",
                "promptSha256": "7a1abdd9e657bcfd7f2ce0a09a468ff5ace51fea72c4b887d6c7437d0e8a5861",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                "rawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/receipt.json",
                "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "sourceFrameIndex": 1,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-prompt-txt",
                    "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                    "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-receipt-json"
                },
                "durationMs": 120,
                "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/final/sprite.png",
                "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                "identityBaselineY": 911,
                "index": 2,
                "loopMode": "ping-pong",
                "parentFrameIndex": 1,
                "parentRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/prompt.txt",
                "promptSha256": "4169c6e1e4e7346f1128d87403dfa9828650892f59ec349057dfb2f3835fab91",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/receipt.json",
                "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                "referenceSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                "references": [
                    {
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                    }
                ],
                "sourceFrameIndex": 2,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-prompt-txt",
                    "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                    "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-receipt-json"
                },
                "durationMs": 120,
                "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/final/sprite.png",
                "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                "identityBaselineY": 911,
                "index": 3,
                "loopMode": "ping-pong",
                "parentFrameIndex": 2,
                "parentRawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/prompt.txt",
                "promptSha256": "96b344565266ad35f9b5ffc6ea542b4d614f320c35d71cdefed2dd1869183773",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/receipt.json",
                "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                "references": [
                    {
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                    },
                    {
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                    }
                ],
                "sourceFrameIndex": 3,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-prompt-txt",
                    "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-raw-source-png",
                    "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-receipt-json"
                },
                "durationMs": 120,
                "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/final/sprite.png",
                "finalSha256": "2d8384ebc6a15248b9c44e3df03bf1486e95bac6e1d48f1367e05051aa30b471",
                "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04",
                "identityBaselineY": 911,
                "index": 4,
                "loopMode": "ping-pong",
                "parentFrameIndex": 3,
                "parentRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "natural-relational",
                "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/prompt.txt",
                "promptSha256": "dff5c3086c12acfceaf8e2680697f958d6ce1452a863ab15206d1e92be2f79d4",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/raw/source.png",
                "rawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/receipt.json",
                "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                "references": [
                    {
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                    },
                    {
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                    }
                ],
                "sourceFrameIndex": 4,
                "sourceProvided": false
            }
        ],
        "raw": "raw/source.png",
        "rawArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--raw-source-png",
        "rawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
        "reference": "research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
        "representative": "final/sprite.png",
        "review": {
            "accepted": true,
            "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--review-json",
            "decision": "accepted-owner-golden-animation-lock",
            "displayStatus": "OWNER ACCEPTED · GOLDEN ANIMATION LOCK",
            "path": "review.json",
            "summary": "Owner-approved golden source-animation baseline. All four unique poses used pinned GPT Image 2. Exact four-pose/six-playback recipe is now command default."
        },
        "runId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
        "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
        "sourceFrames": [
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-prompt-txt",
                    "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-raw-source-png",
                    "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-receipt-json"
                },
                "durationMs": 120,
                "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/final/sprite.png",
                "finalSha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce",
                "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01",
                "identityBaselineY": 911,
                "index": 1,
                "loopMode": "ping-pong",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "natural-relational",
                "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/prompt.txt",
                "promptSha256": "7a1abdd9e657bcfd7f2ce0a09a468ff5ace51fea72c4b887d6c7437d0e8a5861",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                "rawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/receipt.json",
                "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "sourceFrameIndex": 1,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-prompt-txt",
                    "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                    "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-receipt-json"
                },
                "durationMs": 120,
                "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/final/sprite.png",
                "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                "identityBaselineY": 911,
                "index": 2,
                "loopMode": "ping-pong",
                "parentFrameIndex": 1,
                "parentRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/prompt.txt",
                "promptSha256": "4169c6e1e4e7346f1128d87403dfa9828650892f59ec349057dfb2f3835fab91",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/receipt.json",
                "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                "referenceSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                "references": [
                    {
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                    }
                ],
                "sourceFrameIndex": 2,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-prompt-txt",
                    "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                    "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-receipt-json"
                },
                "durationMs": 120,
                "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/final/sprite.png",
                "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                "identityBaselineY": 911,
                "index": 3,
                "loopMode": "ping-pong",
                "parentFrameIndex": 2,
                "parentRawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/prompt.txt",
                "promptSha256": "96b344565266ad35f9b5ffc6ea542b4d614f320c35d71cdefed2dd1869183773",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/receipt.json",
                "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                "references": [
                    {
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                    },
                    {
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                    }
                ],
                "sourceFrameIndex": 3,
                "sourceProvided": false
            },
            {
                "anchorGuide": null,
                "artifacts": {
                    "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-final-sprite-png",
                    "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-prompt-txt",
                    "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-raw-source-png",
                    "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-receipt-json"
                },
                "durationMs": 120,
                "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/final/sprite.png",
                "finalSha256": "2d8384ebc6a15248b9c44e3df03bf1486e95bac6e1d48f1367e05051aa30b471",
                "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04",
                "identityBaselineY": 911,
                "index": 4,
                "loopMode": "ping-pong",
                "parentFrameIndex": 3,
                "parentRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "natural-relational",
                "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/prompt.txt",
                "promptSha256": "dff5c3086c12acfceaf8e2680697f958d6ce1452a863ab15206d1e92be2f79d4",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/raw/source.png",
                "rawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/receipt.json",
                "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                "references": [
                    {
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                    },
                    {
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                    }
                ],
                "sourceFrameIndex": 4,
                "sourceProvided": false
            }
        ],
        "sourceGenerationId": null,
        "status": "accepted-owner-golden-animation-lock",
        "summary": "Owner-approved golden six-frame idle ping-pong animation from four GPT Image 2 provider poses; exact grounded baseline, minimal lateral contact drift, raw evidence, and alpha-only finals preserved.",
        "title": "ragnarok-create · Larkspur Academy Rune Attendant · idle animation",
        "userRequest": "Create a white adult human woman Larkspur Academy Rune Attendant, wearing an original navy-and-cream academy service dress with a short fitted jacket, modest layered skirt, small shoulder ribbons, tied-back chestnut hair, and soft sturdy shoes, standing upright in a calm balanced neutral pose with both boot soles level and close together, both hands relaxed near her sides, and no prop, weapon, magical effect, detached object, floor, or scenery."
    },
    "jsonArtifacts": {
        "animation.json": {
            "sha256": "211d37374bb21044932e01b710bed73825f88ff3150407ef00d86f0ff0784c28",
            "bytes": 60266,
            "value": {
                "action": "idle",
                "anchorGuide": null,
                "anchorGuidePolicy": "none",
                "durationMs": 120,
                "f1ProviderModel": "gpt-image-2-2026-04-21",
                "frameCount": 6,
                "frames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/final/sprite.png",
                        "finalSha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01",
                        "identityBaselineY": 911,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/prompt.txt",
                        "promptSha256": "7a1abdd9e657bcfd7f2ce0a09a468ff5ace51fea72c4b887d6c7437d0e8a5861",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "rawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/final/sprite.png",
                        "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                        "identityBaselineY": 911,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/prompt.txt",
                        "promptSha256": "4169c6e1e4e7346f1128d87403dfa9828650892f59ec349057dfb2f3835fab91",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "referenceSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/final/sprite.png",
                        "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                        "identityBaselineY": 911,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/prompt.txt",
                        "promptSha256": "96b344565266ad35f9b5ffc6ea542b4d614f320c35d71cdefed2dd1869183773",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            },
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                                "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/final/sprite.png",
                        "finalSha256": "2d8384ebc6a15248b9c44e3df03bf1486e95bac6e1d48f1367e05051aa30b471",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04",
                        "identityBaselineY": 911,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/prompt.txt",
                        "promptSha256": "dff5c3086c12acfceaf8e2680697f958d6ce1452a863ab15206d1e92be2f79d4",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/raw/source.png",
                        "rawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            },
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                                "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/final/sprite.png",
                        "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05",
                        "identityBaselineY": 911,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackPreviousFrameIndex": 4,
                        "playbackPreviousRawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/prompt.txt",
                        "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                        "providerCall": false,
                        "providerFrameIndex": 3,
                        "providerGenerated": false,
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/raw/source.png",
                        "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                                "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                        "sourceFrameIndex": 3,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/final/sprite.png",
                        "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06",
                        "identityBaselineY": 911,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackPreviousFrameIndex": 5,
                        "playbackPreviousRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/prompt.txt",
                        "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                        "providerCall": false,
                        "providerFrameIndex": 2,
                        "providerGenerated": false,
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/raw/source.png",
                        "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                                "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                        "sourceFrameIndex": 2,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png"
                    }
                ],
                "generationId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
                "ideaIdleBehaviorDeferred": null,
                "identityBaselineY": 911,
                "identityPolicy": "immutable-f1-raw-master",
                "idleBehavior": "One simple connected weight-shift and breath loop: lean the torso toward the screen-left planted foot, open both forearms visibly, bend both knees and shift the hips while both boot sole contacts stay at their exact F1 canvas positions, and let hair, sleeves, plus loose coat or dress hem show clear connected follow-through; then return. The pose may compress or extend naturally around the planted root, but the character must never be uniformly resized, stretched, sheared, or recentered. Keep head, torso, and boot pixel scale consistent. Held equipment follows the hands through one readable continuous arc; it never flips end-for-end or changes from carried to planted or resting.",
                "idleBehaviorSource": "locked-generic-whole-body-loop",
                "lockedParts": [
                    "recognizable face and identity",
                    "costume and equipment design",
                    "fine motifs, trim, fasteners, gems, and prop markings",
                    "palette family and pixel rendering language",
                    "body proportions and overall scale band",
                    "screen-left three-quarter facing",
                    "1024x1024 canvas and flat #ff00ff background"
                ],
                "loop": true,
                "loopMode": "ping-pong",
                "movingParts": [
                    "whole pose silhouette",
                    "center of mass",
                    "torso and hips",
                    "both arms and hands",
                    "knees, legs, boots, and stance",
                    "hair and sleeves",
                    "coat tails, dress, cape, and hem",
                    "held equipment following the hands"
                ],
                "parentPolicy": "f1-plus-previous",
                "phaseProgressPercent": [
                    0,
                    22,
                    44,
                    100,
                    44,
                    22
                ],
                "phases": [
                    "settled identity pose; motion has not started",
                    "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                    "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
                ],
                "playbackSourceFrameIndices": [
                    1,
                    2,
                    3,
                    4,
                    3,
                    2
                ],
                "posePolicy": "natural-relational",
                "preview": {
                    "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--preview-animation-gif",
                    "format": "derived-gif-preview",
                    "path": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/preview/animation.gif",
                    "sha256": "55a4d6333f204733055c56fa849128962f355f9fdf877044ef8bbe4681e144da",
                    "sourcePolicy": "final-frame-pngs-unchanged"
                },
                "providerCallCount": 4,
                "providerFrameCount": 4,
                "providerFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/final/sprite.png",
                        "finalSha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01",
                        "identityBaselineY": 911,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/prompt.txt",
                        "promptSha256": "7a1abdd9e657bcfd7f2ce0a09a468ff5ace51fea72c4b887d6c7437d0e8a5861",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "rawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/final/sprite.png",
                        "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                        "identityBaselineY": 911,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/prompt.txt",
                        "promptSha256": "4169c6e1e4e7346f1128d87403dfa9828650892f59ec349057dfb2f3835fab91",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "referenceSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/final/sprite.png",
                        "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                        "identityBaselineY": 911,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/prompt.txt",
                        "promptSha256": "96b344565266ad35f9b5ffc6ea542b4d614f320c35d71cdefed2dd1869183773",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            },
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                                "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/final/sprite.png",
                        "finalSha256": "2d8384ebc6a15248b9c44e3df03bf1486e95bac6e1d48f1367e05051aa30b471",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04",
                        "identityBaselineY": 911,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/prompt.txt",
                        "promptSha256": "dff5c3086c12acfceaf8e2680697f958d6ce1452a863ab15206d1e92be2f79d4",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/raw/source.png",
                        "rawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            },
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                                "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "providerModel": "gpt-image-2-2026-04-21",
                "rootPolicy": {
                    "allowedCorrection": "lossless whole-canvas integer translation only",
                    "exactProviderRootRequired": false,
                    "measuredAfterGeneration": true,
                    "poseDependentHorizontalFootMotionPreserved": true,
                    "providerConstraint": "at least one boot sole within 16px of F1 baseline"
                },
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameCount": 4,
                "sourceFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/final/sprite.png",
                        "finalSha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01",
                        "identityBaselineY": 911,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/prompt.txt",
                        "promptSha256": "7a1abdd9e657bcfd7f2ce0a09a468ff5ace51fea72c4b887d6c7437d0e8a5861",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "rawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/final/sprite.png",
                        "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                        "identityBaselineY": 911,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/prompt.txt",
                        "promptSha256": "4169c6e1e4e7346f1128d87403dfa9828650892f59ec349057dfb2f3835fab91",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "referenceSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/final/sprite.png",
                        "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                        "identityBaselineY": 911,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/prompt.txt",
                        "promptSha256": "96b344565266ad35f9b5ffc6ea542b4d614f320c35d71cdefed2dd1869183773",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            },
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                                "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/final/sprite.png",
                        "finalSha256": "2d8384ebc6a15248b9c44e3df03bf1486e95bac6e1d48f1367e05051aa30b471",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04",
                        "identityBaselineY": 911,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/prompt.txt",
                        "promptSha256": "dff5c3086c12acfceaf8e2680697f958d6ce1452a863ab15206d1e92be2f79d4",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/raw/source.png",
                        "rawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            },
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                                "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "stylePolicy": "elder-a-master"
            }
        },
        "artifact-index.json": {
            "sha256": "2e6c4507b08e2f1c296f0de80ffe832852fa0cbfcb8193f83036be24b67befd5",
            "bytes": 9368,
            "value": {
                "artifactCount": 32,
                "artifacts": [
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--animation-json",
                        "bytes": 60266,
                        "path": "animation.json",
                        "sha256": "211d37374bb21044932e01b710bed73825f88ff3150407ef00d86f0ff0784c28"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--final-sprite-png",
                        "bytes": 953446,
                        "path": "final/sprite.png",
                        "sha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-final-sprite-png",
                        "bytes": 953446,
                        "path": "frames/01/final/sprite.png",
                        "sha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-prompt-txt",
                        "bytes": 1684,
                        "path": "frames/01/prompt.txt",
                        "sha256": "7a1abdd9e657bcfd7f2ce0a09a468ff5ace51fea72c4b887d6c7437d0e8a5861"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-raw-source-png",
                        "bytes": 967995,
                        "path": "frames/01/raw/source.png",
                        "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-receipt-json",
                        "bytes": 4887,
                        "path": "frames/01/receipt.json",
                        "sha256": "dd2a791ac97657cdefa4cb8fce9525268ce72915bf47d800d0d4477d7edf5368"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                        "bytes": 992600,
                        "path": "frames/02/final/sprite.png",
                        "sha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-prompt-txt",
                        "bytes": 5666,
                        "path": "frames/02/prompt.txt",
                        "sha256": "4169c6e1e4e7346f1128d87403dfa9828650892f59ec349057dfb2f3835fab91"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                        "bytes": 999636,
                        "path": "frames/02/raw/source.png",
                        "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-receipt-json",
                        "bytes": 5844,
                        "path": "frames/02/receipt.json",
                        "sha256": "96d78a5db9b987ffd4a1695302265af117d6f0c89f977387d072fdc43bc48a5c"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                        "bytes": 1028620,
                        "path": "frames/03/final/sprite.png",
                        "sha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-prompt-txt",
                        "bytes": 5549,
                        "path": "frames/03/prompt.txt",
                        "sha256": "96b344565266ad35f9b5ffc6ea542b4d614f320c35d71cdefed2dd1869183773"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                        "bytes": 1024069,
                        "path": "frames/03/raw/source.png",
                        "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-receipt-json",
                        "bytes": 6009,
                        "path": "frames/03/receipt.json",
                        "sha256": "92df1809bb6816c72bf7c821a5a393258e55d1dd5f0e457bfab8f0be097dea22"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-final-sprite-png",
                        "bytes": 1242239,
                        "path": "frames/04/final/sprite.png",
                        "sha256": "2d8384ebc6a15248b9c44e3df03bf1486e95bac6e1d48f1367e05051aa30b471"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-prompt-txt",
                        "bytes": 5476,
                        "path": "frames/04/prompt.txt",
                        "sha256": "dff5c3086c12acfceaf8e2680697f958d6ce1452a863ab15206d1e92be2f79d4"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-raw-source-png",
                        "bytes": 1205007,
                        "path": "frames/04/raw/source.png",
                        "sha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-receipt-json",
                        "bytes": 5937,
                        "path": "frames/04/receipt.json",
                        "sha256": "ac8a78d12d14a75a57772617ef991f1783db7d9e5603037e38431f685ecd0451"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-final-sprite-png",
                        "bytes": 1028620,
                        "path": "frames/05/final/sprite.png",
                        "sha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-prompt-txt",
                        "bytes": 125,
                        "path": "frames/05/prompt.txt",
                        "sha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-raw-source-png",
                        "bytes": 1024069,
                        "path": "frames/05/raw/source.png",
                        "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-receipt-json",
                        "bytes": 5070,
                        "path": "frames/05/receipt.json",
                        "sha256": "fd67b03ede432dfeb00a7e3eca9cd4571d2a1a89361785de0b74c18c024c6d64"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-final-sprite-png",
                        "bytes": 992600,
                        "path": "frames/06/final/sprite.png",
                        "sha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-prompt-txt",
                        "bytes": 125,
                        "path": "frames/06/prompt.txt",
                        "sha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-raw-source-png",
                        "bytes": 999636,
                        "path": "frames/06/raw/source.png",
                        "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-receipt-json",
                        "bytes": 5659,
                        "path": "frames/06/receipt.json",
                        "sha256": "caf91a9b4b27147c1aefca2f899705620cdd9fa356574faf68ce92924239dc31"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--preview-animation-gif",
                        "bytes": 589383,
                        "path": "preview/animation.gif",
                        "sha256": "55a4d6333f204733055c56fa849128962f355f9fdf877044ef8bbe4681e144da"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--prompt-txt",
                        "bytes": 1684,
                        "path": "prompt.txt",
                        "sha256": "7a1abdd9e657bcfd7f2ce0a09a468ff5ace51fea72c4b887d6c7437d0e8a5861"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--raw-source-png",
                        "bytes": 967995,
                        "path": "raw/source.png",
                        "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--receipt-json",
                        "bytes": 53652,
                        "path": "receipt.json",
                        "sha256": "3fbcc6dee6d62f90cd70f162238bc30fd29e00417e256e99f7af14aff64442cf"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--request-json",
                        "bytes": 63268,
                        "path": "request.json",
                        "sha256": "4d0c0286f7036649cf9a19e377f6378f9c0aa6d16f7f2fea643deadf41f9924b"
                    },
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--review-json",
                        "bytes": 4154,
                        "path": "review.json",
                        "sha256": "5c2f2f8681d00c1ef8504ca99122d760a5ddbc7e8b181206fad648629c62fdd8"
                    }
                ],
                "excludedSelfReferentialFiles": [
                    "manifest.json",
                    "artifact-index.json"
                ],
                "generationId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
                "previousIndexSha256": "6cb2d00038541dd11160855309ccb05f4c0b7122c3912af9925e6d0a20595295",
                "schemaVersion": "midgard-pixels.ragnarok-artifact-index.v1"
            }
        },
        "frames/01/receipt.json": {
            "sha256": "dd2a791ac97657cdefa4cb8fce9525268ce72915bf47d800d0d4477d7edf5368",
            "bytes": 4887,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 35.58089374931439,
                "borderColorMedian": [
                    239,
                    6,
                    221
                ],
                "borderConnectedChromaPixels": 860533,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 412,
                "category": "Academy & Town",
                "categorySlug": "academy-town",
                "class": "Larkspur Academy Rune Attendant",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T20:03:21.582726Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 307,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 521,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 384,
                "enclosedComponentCount": 2,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-final-sprite-png",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01",
                "frameIndex": 1,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 911,
                "identityRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                "input": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                "inputSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                "keyCoreBorderConnectedPixels": 860533,
                "keyCorePixels": 860917,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.96451206647282,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce",
                "paletteReduced": false,
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "settled identity pose; motion has not started",
                "phaseProgressPercent": 0,
                "playbackSourceFrameIndex": 1,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 239,
                "preservedSmallKeyColorPixels": 0,
                "promptArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 1,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-receipt-json",
                "referencePath": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "references": [
                    {
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                    }
                ],
                "removedChromaPixels": 862157,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman Larkspur Academy Rune Attendant, wearing an original navy-and-cream academy service dress with a short fitted jacket, modest layered skirt, small shoulder ribbons, tied-back chestnut hair, and soft sturdy shoes, standing upright in a calm balanced neutral pose with both boot soles level and close together, both hands relaxed near her sides, and no prop, weapon, magical effect, detached object, floor, or scenery.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 1,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/02/receipt.json": {
            "sha256": "96d78a5db9b987ffd4a1695302265af117d6f0c89f977387d072fdc43bc48a5c",
            "bytes": 5844,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 34.08812109811862,
                "borderColorMedian": [
                    236,
                    6,
                    220
                ],
                "borderConnectedChromaPixels": 854266,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 415,
                "category": "Academy & Town",
                "categorySlug": "academy-town",
                "class": "Larkspur Academy Rune Attendant",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T20:03:21.582726Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 372,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 518,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 1351,
                "enclosedComponentCount": 2,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                "frameIndex": 2,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 911,
                "identityRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                "input": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                "inputSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                "keyCoreBorderConnectedPixels": 854266,
                "keyCorePixels": 855617,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.89996772110703,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                "paletteReduced": false,
                "parentFrameIndex": 1,
                "parentRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 98,
                "preservedSmallKeyColorPixels": 0,
                "promptArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 2,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-receipt-json",
                "referencePath": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                "referenceSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                "references": [
                    {
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                    }
                ],
                "removedChromaPixels": 856922,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman Larkspur Academy Rune Attendant, wearing an original navy-and-cream academy service dress with a short fitted jacket, modest layered skirt, small shoulder ribbons, tied-back chestnut hair, and soft sturdy shoes, standing upright in a calm balanced neutral pose with both boot soles level and close together, both hands relaxed near her sides, and no prop, weapon, magical effect, detached object, floor, or scenery.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 2,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/03/receipt.json": {
            "sha256": "92df1809bb6816c72bf7c821a5a393258e55d1dd5f0e457bfab8f0be097dea22",
            "bytes": 6009,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 33.58571124749333,
                "borderColorMedian": [
                    229,
                    5,
                    210
                ],
                "borderConnectedChromaPixels": 842962,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 592,
                "category": "Academy & Town",
                "categorySlug": "academy-town",
                "class": "Larkspur Academy Rune Attendant",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T20:03:21.582726Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 483,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 823,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 1839,
                "enclosedComponentCount": 6,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                "frameIndex": 3,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 911,
                "identityRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                "input": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                "inputSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                "keyCoreBorderConnectedPixels": 842962,
                "keyCorePixels": 844801,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.98064395272075,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                "paletteReduced": false,
                "parentFrameIndex": 2,
                "parentRawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 45,
                "preservedSmallKeyColorPixels": 0,
                "promptArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 3,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-receipt-json",
                "referencePath": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                "references": [
                    {
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                    },
                    {
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                    }
                ],
                "removedChromaPixels": 846699,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman Larkspur Academy Rune Attendant, wearing an original navy-and-cream academy service dress with a short fitted jacket, modest layered skirt, small shoulder ribbons, tied-back chestnut hair, and soft sturdy shoes, standing upright in a calm balanced neutral pose with both boot soles level and close together, both hands relaxed near her sides, and no prop, weapon, magical effect, detached object, floor, or scenery.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 3,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/04/receipt.json": {
            "sha256": "ac8a78d12d14a75a57772617ef991f1783db7d9e5603037e38431f685ecd0451",
            "bytes": 5937,
            "value": {
                "action": "idle",
                "alphaDifferencesOutsideMask": 0,
                "anchorGuide": null,
                "borderColorMaximumDistance": 34.84250278036869,
                "borderColorMedian": [
                    224,
                    5,
                    208
                ],
                "borderConnectedChromaPixels": 820181,
                "boundaryPeelDistanceThreshold": 120,
                "boundaryPeelIterations": 1,
                "boundaryPeelPixels": 728,
                "category": "Academy & Town",
                "categorySlug": "academy-town",
                "class": "Larkspur Academy Rune Attendant",
                "classSource": "request-title",
                "connectivity": 4,
                "createdAt": "2026-07-24T20:03:21.582726Z",
                "darkSpillBoundaryPeelIterations": 1,
                "darkSpillBoundaryPeelPixels": 715,
                "darkSpillDistanceThreshold": 155,
                "despilled": false,
                "dimensions": [
                    1024,
                    1024
                ],
                "durationMs": 120,
                "edgeGrowthDistanceThreshold": 80,
                "edgeGrowthIterations": 2,
                "edgeGrowthPixels": 962,
                "edgeSafeKeyEnabled": true,
                "enclosedBackgroundChromaPixels": 1422,
                "enclosedComponentCount": 4,
                "enclosedComponentMinimumPixels": 8,
                "feathered": false,
                "filtered": false,
                "finalArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-final-sprite-png",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04",
                "frameIndex": 4,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 911,
                "identityRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                "input": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/raw/source.png",
                "inputSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                "keyCoreBorderConnectedPixels": 820181,
                "keyCorePixels": 821603,
                "keyCoreThreshold": 45,
                "loopMode": "ping-pong",
                "maximumRemovedBorderColorDistance": 154.93869755487168,
                "operation": "edge-safe-border-key-plus-enclosed-background-alpha-zero-only",
                "output": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/final/sprite.png",
                "outputAlphaValues": [
                    0,
                    255
                ],
                "outputMode": "RGBA",
                "outputSha256": "2d8384ebc6a15248b9c44e3df03bf1486e95bac6e1d48f1367e05051aa30b471",
                "paletteReduced": false,
                "parentFrameIndex": 3,
                "parentRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 100,
                "playbackSourceFrameIndex": 4,
                "posePolicy": "natural-relational",
                "preservedInternalChromaCandidatePixels": 73,
                "preservedSmallKeyColorPixels": 5,
                "promptArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-prompt-txt",
                "providerCall": true,
                "providerFrameIndex": 4,
                "providerGenerated": true,
                "providerModel": "gpt-image-2-2026-04-21",
                "rawArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-raw-source-png",
                "receiptArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-receipt-json",
                "referencePath": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                "references": [
                    {
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                    },
                    {
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                    }
                ],
                "removedChromaPixels": 824008,
                "removedPixelsBeyondDarkSpillDistanceThreshold": 0,
                "request": "Create a white adult human woman Larkspur Academy Rune Attendant, wearing an original navy-and-cream academy service dress with a short fitted jacket, modest layered skirt, small shoulder ribbons, tied-back chestnut hair, and soft sturdy shoes, standing upright in a calm balanced neutral pose with both boot soles level and close together, both hands relaxed near her sides, and no prop, weapon, magical effect, detached object, floor, or scenery.",
                "resampled": false,
                "resized": false,
                "retainedRgbaChannelDifferences": 0,
                "rgbChannelDifferences": 0,
                "runId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameIndex": 4,
                "sourceProvided": false,
                "translated": false,
                "transparentCorners": [
                    true,
                    true,
                    true,
                    true
                ]
            }
        },
        "frames/05/receipt.json": {
            "sha256": "fd67b03ede432dfeb00a7e3eca9cd4571d2a1a89361785de0b74c18c024c6d64",
            "bytes": 5070,
            "value": {
                "action": "idle",
                "anchorGuide": null,
                "byteIdentityVerified": true,
                "category": "Academy & Town",
                "categorySlug": "academy-town",
                "class": "Larkspur Academy Rune Attendant",
                "classSource": "request-title",
                "createdAt": "2026-07-24T20:03:21.582726Z",
                "durationMs": 120,
                "exactByteReuse": true,
                "finalArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-final-sprite-png",
                "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05",
                "frameIndex": 5,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 911,
                "identityRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                "loopMode": "ping-pong",
                "operation": "exact-byte-ping-pong-reuse",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 44,
                "playbackPreviousFrameIndex": 4,
                "playbackPreviousRawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                "playbackSourceFrameIndex": 3,
                "posePolicy": "natural-relational",
                "promptArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-prompt-txt",
                "providerCall": false,
                "providerFrameIndex": 3,
                "providerGenerated": false,
                "rawArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-raw-source-png",
                "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                "receiptArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-receipt-json",
                "referencePath": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                    }
                ],
                "request": "Create a white adult human woman Larkspur Academy Rune Attendant, wearing an original navy-and-cream academy service dress with a short fitted jacket, modest layered skirt, small shoulder ribbons, tied-back chestnut hair, and soft sturdy shoes, standing upright in a calm balanced neutral pose with both boot soles level and close together, both hands relaxed near her sides, and no prop, weapon, magical effect, detached object, floor, or scenery.",
                "runId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFinal": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/final/sprite.png",
                "sourceFinalArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                "sourceFinalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                "sourceFrameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                "sourceFrameIndex": 3,
                "sourceProvided": false,
                "sourceRaw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                "sourceRawArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                "sourceRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
            }
        },
        "frames/06/receipt.json": {
            "sha256": "caf91a9b4b27147c1aefca2f899705620cdd9fa356574faf68ce92924239dc31",
            "bytes": 5659,
            "value": {
                "action": "idle",
                "anchorGuide": null,
                "byteIdentityVerified": true,
                "category": "Academy & Town",
                "categorySlug": "academy-town",
                "class": "Larkspur Academy Rune Attendant",
                "classSource": "request-title",
                "createdAt": "2026-07-24T20:03:21.582726Z",
                "durationMs": 120,
                "exactByteReuse": true,
                "finalArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-final-sprite-png",
                "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                "frameCount": 6,
                "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06",
                "frameIndex": 6,
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "identityBaselineY": 911,
                "identityRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                "loopMode": "ping-pong",
                "operation": "exact-byte-ping-pong-reuse",
                "parentFrameIndex": null,
                "parentRawSha256": null,
                "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                "phaseProgressPercent": 22,
                "playbackPreviousFrameIndex": 5,
                "playbackPreviousRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                "playbackSourceFrameIndex": 2,
                "posePolicy": "natural-relational",
                "promptArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-prompt-txt",
                "providerCall": false,
                "providerFrameIndex": 2,
                "providerGenerated": false,
                "rawArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-raw-source-png",
                "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                "receiptArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-receipt-json",
                "referencePath": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                "references": [
                    {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                        "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                    }
                ],
                "request": "Create a white adult human woman Larkspur Academy Rune Attendant, wearing an original navy-and-cream academy service dress with a short fitted jacket, modest layered skirt, small shoulder ribbons, tied-back chestnut hair, and soft sturdy shoes, standing upright in a calm balanced neutral pose with both boot soles level and close together, both hands relaxed near her sides, and no prop, weapon, magical effect, detached object, floor, or scenery.",
                "runId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFinal": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/final/sprite.png",
                "sourceFinalArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                "sourceFinalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                "sourceFrameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                "sourceFrameIndex": 2,
                "sourceProvided": false,
                "sourceRaw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                "sourceRawArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                "sourceRawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
            }
        },
        "manifest.json": {
            "sha256": "06c1d26ee3d144ecd2c0d842c9ed5d84792bb576728735a0f19f1fd0bccc5a86",
            "bytes": 120122,
            "value": {
                "animation": {
                    "action": "idle",
                    "anchorGuide": null,
                    "anchorGuidePolicy": "none",
                    "durationMs": 120,
                    "f1ProviderModel": "gpt-image-2-2026-04-21",
                    "frameCount": 6,
                    "frames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/final/sprite.png",
                            "finalSha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01",
                            "identityBaselineY": 911,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/prompt.txt",
                            "promptSha256": "7a1abdd9e657bcfd7f2ce0a09a468ff5ace51fea72c4b887d6c7437d0e8a5861",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                            "rawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/final/sprite.png",
                            "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                            "identityBaselineY": 911,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/prompt.txt",
                            "promptSha256": "4169c6e1e4e7346f1128d87403dfa9828650892f59ec349057dfb2f3835fab91",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                            "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                            "referenceSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                            "references": [
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                    "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/final/sprite.png",
                            "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                            "identityBaselineY": 911,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/prompt.txt",
                            "promptSha256": "96b344565266ad35f9b5ffc6ea542b4d614f320c35d71cdefed2dd1869183773",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                            "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                            "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                            "references": [
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                    "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                                },
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                                    "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/final/sprite.png",
                            "finalSha256": "2d8384ebc6a15248b9c44e3df03bf1486e95bac6e1d48f1367e05051aa30b471",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04",
                            "identityBaselineY": 911,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/prompt.txt",
                            "promptSha256": "dff5c3086c12acfceaf8e2680697f958d6ce1452a863ab15206d1e92be2f79d4",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/raw/source.png",
                            "rawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                            "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                            "references": [
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                    "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                                },
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                                    "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/final/sprite.png",
                            "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05",
                            "identityBaselineY": 911,
                            "index": 5,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackPreviousFrameIndex": 4,
                            "playbackPreviousRawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/prompt.txt",
                            "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                            "providerCall": false,
                            "providerFrameIndex": 3,
                            "providerGenerated": false,
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/raw/source.png",
                            "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                            "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                                    "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                            "sourceFrameIndex": 3,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png"
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/final/sprite.png",
                            "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06",
                            "identityBaselineY": 911,
                            "index": 6,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackPreviousFrameIndex": 5,
                            "playbackPreviousRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/prompt.txt",
                            "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                            "providerCall": false,
                            "providerFrameIndex": 2,
                            "providerGenerated": false,
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/raw/source.png",
                            "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                            "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                                    "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                            "sourceFrameIndex": 2,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png"
                        }
                    ],
                    "generationId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
                    "ideaIdleBehaviorDeferred": null,
                    "identityBaselineY": 911,
                    "identityPolicy": "immutable-f1-raw-master",
                    "idleBehavior": "One simple connected weight-shift and breath loop: lean the torso toward the screen-left planted foot, open both forearms visibly, bend both knees and shift the hips while both boot sole contacts stay at their exact F1 canvas positions, and let hair, sleeves, plus loose coat or dress hem show clear connected follow-through; then return. The pose may compress or extend naturally around the planted root, but the character must never be uniformly resized, stretched, sheared, or recentered. Keep head, torso, and boot pixel scale consistent. Held equipment follows the hands through one readable continuous arc; it never flips end-for-end or changes from carried to planted or resting.",
                    "idleBehaviorSource": "locked-generic-whole-body-loop",
                    "lockedParts": [
                        "recognizable face and identity",
                        "costume and equipment design",
                        "fine motifs, trim, fasteners, gems, and prop markings",
                        "palette family and pixel rendering language",
                        "body proportions and overall scale band",
                        "screen-left three-quarter facing",
                        "1024x1024 canvas and flat #ff00ff background"
                    ],
                    "loop": true,
                    "loopMode": "ping-pong",
                    "movingParts": [
                        "whole pose silhouette",
                        "center of mass",
                        "torso and hips",
                        "both arms and hands",
                        "knees, legs, boots, and stance",
                        "hair and sleeves",
                        "coat tails, dress, cape, and hem",
                        "held equipment following the hands"
                    ],
                    "parentPolicy": "f1-plus-previous",
                    "phaseProgressPercent": [
                        0,
                        22,
                        44,
                        100,
                        44,
                        22
                    ],
                    "phases": [
                        "settled identity pose; motion has not started",
                        "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
                    ],
                    "playbackSourceFrameIndices": [
                        1,
                        2,
                        3,
                        4,
                        3,
                        2
                    ],
                    "posePolicy": "natural-relational",
                    "preview": {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--preview-animation-gif",
                        "format": "derived-gif-preview",
                        "path": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/preview/animation.gif",
                        "sha256": "55a4d6333f204733055c56fa849128962f355f9fdf877044ef8bbe4681e144da",
                        "sourcePolicy": "final-frame-pngs-unchanged"
                    },
                    "providerCallCount": 4,
                    "providerFrameCount": 4,
                    "providerFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/final/sprite.png",
                            "finalSha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01",
                            "identityBaselineY": 911,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/prompt.txt",
                            "promptSha256": "7a1abdd9e657bcfd7f2ce0a09a468ff5ace51fea72c4b887d6c7437d0e8a5861",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                            "rawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/final/sprite.png",
                            "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                            "identityBaselineY": 911,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/prompt.txt",
                            "promptSha256": "4169c6e1e4e7346f1128d87403dfa9828650892f59ec349057dfb2f3835fab91",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                            "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                            "referenceSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                            "references": [
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                    "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/final/sprite.png",
                            "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                            "identityBaselineY": 911,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/prompt.txt",
                            "promptSha256": "96b344565266ad35f9b5ffc6ea542b4d614f320c35d71cdefed2dd1869183773",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                            "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                            "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                            "references": [
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                    "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                                },
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                                    "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/final/sprite.png",
                            "finalSha256": "2d8384ebc6a15248b9c44e3df03bf1486e95bac6e1d48f1367e05051aa30b471",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04",
                            "identityBaselineY": 911,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/prompt.txt",
                            "promptSha256": "dff5c3086c12acfceaf8e2680697f958d6ce1452a863ab15206d1e92be2f79d4",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/raw/source.png",
                            "rawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                            "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                            "references": [
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                    "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                                },
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                                    "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        }
                    ],
                    "providerModel": "gpt-image-2-2026-04-21",
                    "rootPolicy": {
                        "allowedCorrection": "lossless whole-canvas integer translation only",
                        "exactProviderRootRequired": false,
                        "measuredAfterGeneration": true,
                        "poseDependentHorizontalFootMotionPreserved": true,
                        "providerConstraint": "at least one boot sole within 16px of F1 baseline"
                    },
                    "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                    "sourceFrameCount": 4,
                    "sourceFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/final/sprite.png",
                            "finalSha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01",
                            "identityBaselineY": 911,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/prompt.txt",
                            "promptSha256": "7a1abdd9e657bcfd7f2ce0a09a468ff5ace51fea72c4b887d6c7437d0e8a5861",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                            "rawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/final/sprite.png",
                            "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                            "identityBaselineY": 911,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/prompt.txt",
                            "promptSha256": "4169c6e1e4e7346f1128d87403dfa9828650892f59ec349057dfb2f3835fab91",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                            "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                            "referenceSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                            "references": [
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                    "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/final/sprite.png",
                            "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                            "identityBaselineY": 911,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/prompt.txt",
                            "promptSha256": "96b344565266ad35f9b5ffc6ea542b4d614f320c35d71cdefed2dd1869183773",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                            "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                            "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                            "references": [
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                    "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                                },
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                                    "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/final/sprite.png",
                            "finalSha256": "2d8384ebc6a15248b9c44e3df03bf1486e95bac6e1d48f1367e05051aa30b471",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04",
                            "identityBaselineY": 911,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/prompt.txt",
                            "promptSha256": "dff5c3086c12acfceaf8e2680697f958d6ce1452a863ab15206d1e92be2f79d4",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/raw/source.png",
                            "rawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                            "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                            "references": [
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                    "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                                },
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                                    "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        }
                    ],
                    "stylePolicy": "elder-a-master"
                },
                "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--manifest-json",
                "artifactIndex": {
                    "artifactCount": 32,
                    "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--artifact-index-json",
                    "exclusions": [
                        "manifest.json",
                        "artifact-index.json"
                    ],
                    "path": "artifact-index.json",
                    "sha256": "2e6c4507b08e2f1c296f0de80ffe832852fa0cbfcb8193f83036be24b67befd5"
                },
                "artifacts": {
                    "animation": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--animation-json",
                    "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--final-sprite-png",
                    "generationId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
                    "manifest": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--manifest-json",
                    "preview": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--preview-animation-gif",
                    "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--prompt-txt",
                    "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--raw-source-png",
                    "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--receipt-json",
                    "request": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--request-json"
                },
                "category": "Academy & Town",
                "categorySlug": "academy-town",
                "class": "Larkspur Academy Rune Attendant",
                "classSource": "request-title",
                "createdAt": "2026-07-24T20:03:21.582726Z",
                "final": "final/sprite.png",
                "finalArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--final-sprite-png",
                "finalSha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce",
                "frames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/final/sprite.png",
                        "finalSha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01",
                        "identityBaselineY": 911,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/prompt.txt",
                        "promptSha256": "7a1abdd9e657bcfd7f2ce0a09a468ff5ace51fea72c4b887d6c7437d0e8a5861",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "rawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/final/sprite.png",
                        "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                        "identityBaselineY": 911,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/prompt.txt",
                        "promptSha256": "4169c6e1e4e7346f1128d87403dfa9828650892f59ec349057dfb2f3835fab91",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "referenceSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/final/sprite.png",
                        "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                        "identityBaselineY": 911,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/prompt.txt",
                        "promptSha256": "96b344565266ad35f9b5ffc6ea542b4d614f320c35d71cdefed2dd1869183773",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            },
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                                "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/final/sprite.png",
                        "finalSha256": "2d8384ebc6a15248b9c44e3df03bf1486e95bac6e1d48f1367e05051aa30b471",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04",
                        "identityBaselineY": 911,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/prompt.txt",
                        "promptSha256": "dff5c3086c12acfceaf8e2680697f958d6ce1452a863ab15206d1e92be2f79d4",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/raw/source.png",
                        "rawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            },
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                                "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/final/sprite.png",
                        "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05",
                        "identityBaselineY": 911,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackPreviousFrameIndex": 4,
                        "playbackPreviousRawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/prompt.txt",
                        "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                        "providerCall": false,
                        "providerFrameIndex": 3,
                        "providerGenerated": false,
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/raw/source.png",
                        "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                                "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                        "sourceFrameIndex": 3,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/final/sprite.png",
                        "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06",
                        "identityBaselineY": 911,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackPreviousFrameIndex": 5,
                        "playbackPreviousRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/prompt.txt",
                        "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                        "providerCall": false,
                        "providerFrameIndex": 2,
                        "providerGenerated": false,
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/raw/source.png",
                        "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                                "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                        "sourceFrameIndex": 2,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png"
                    }
                ],
                "gender": "woman",
                "genderSource": "request-text",
                "generation": {
                    "anchorGuidePolicy": "none",
                    "animationImageCount": 3,
                    "animationModel": "gpt-image-2-2026-04-21",
                    "attemptedCalls": 4,
                    "completedCalls": 4,
                    "f1ImageCount": 1,
                    "f1Model": "gpt-image-2-2026-04-21",
                    "imageCount": 4,
                    "inputFidelity": "unsupported-omitted",
                    "inputFidelityRequested": false,
                    "loopMode": "ping-pong",
                    "maximumReferenceCount": 2,
                    "model": "gpt-image-2-2026-04-21",
                    "operation": "chained-image-edit-plus-exact-ping-pong-reuse",
                    "playbackFrameCount": 6,
                    "playbackSourceFrameIndices": [
                        1,
                        2,
                        3,
                        4,
                        3,
                        2
                    ],
                    "posePolicy": "natural-relational",
                    "providerFrameCount": 4,
                    "quality": "medium",
                    "referenceCountsBySourceFrame": {
                        "1": 1,
                        "2": 1,
                        "3": 2,
                        "4": 2
                    },
                    "referenceOrderPolicy": [
                        "f1RawIdentity",
                        "previousRawOpaque"
                    ],
                    "size": "1024x1024",
                    "sourceFrameCount": 4,
                    "tool": "openai-image"
                },
                "generationId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "ownerReview": {
                    "authority": "repository-owner",
                    "decision": "accepted",
                    "reviewedAt": "2026-07-24T20:35:48Z"
                },
                "postProcessing": {
                    "alphaOnly": true,
                    "despilled": false,
                    "feathered": false,
                    "filtered": false,
                    "paletteReduced": false,
                    "resampled": false,
                    "resized": false,
                    "translated": false
                },
                "prompt": "prompt.txt",
                "promptSha256": "7a1abdd9e657bcfd7f2ce0a09a468ff5ace51fea72c4b887d6c7437d0e8a5861",
                "providerCallCount": 4,
                "providerFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/final/sprite.png",
                        "finalSha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01",
                        "identityBaselineY": 911,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/prompt.txt",
                        "promptSha256": "7a1abdd9e657bcfd7f2ce0a09a468ff5ace51fea72c4b887d6c7437d0e8a5861",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "rawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/final/sprite.png",
                        "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                        "identityBaselineY": 911,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/prompt.txt",
                        "promptSha256": "4169c6e1e4e7346f1128d87403dfa9828650892f59ec349057dfb2f3835fab91",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "referenceSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/final/sprite.png",
                        "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                        "identityBaselineY": 911,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/prompt.txt",
                        "promptSha256": "96b344565266ad35f9b5ffc6ea542b4d614f320c35d71cdefed2dd1869183773",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            },
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                                "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/final/sprite.png",
                        "finalSha256": "2d8384ebc6a15248b9c44e3df03bf1486e95bac6e1d48f1367e05051aa30b471",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04",
                        "identityBaselineY": 911,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/prompt.txt",
                        "promptSha256": "dff5c3086c12acfceaf8e2680697f958d6ce1452a863ab15206d1e92be2f79d4",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/raw/source.png",
                        "rawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            },
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                                "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "raw": "raw/source.png",
                "rawArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--raw-source-png",
                "rawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                "reference": "research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                "representative": "final/sprite.png",
                "review": {
                    "accepted": true,
                    "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--review-json",
                    "decision": "accepted-owner-golden-animation-lock",
                    "displayStatus": "OWNER ACCEPTED · GOLDEN ANIMATION LOCK",
                    "path": "review.json",
                    "summary": "Owner-approved golden source-animation baseline. All four unique poses used pinned GPT Image 2. Exact four-pose/six-playback recipe is now command default."
                },
                "runId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/final/sprite.png",
                        "finalSha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01",
                        "identityBaselineY": 911,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/prompt.txt",
                        "promptSha256": "7a1abdd9e657bcfd7f2ce0a09a468ff5ace51fea72c4b887d6c7437d0e8a5861",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "rawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/final/sprite.png",
                        "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                        "identityBaselineY": 911,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/prompt.txt",
                        "promptSha256": "4169c6e1e4e7346f1128d87403dfa9828650892f59ec349057dfb2f3835fab91",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "referenceSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/final/sprite.png",
                        "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                        "identityBaselineY": 911,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/prompt.txt",
                        "promptSha256": "96b344565266ad35f9b5ffc6ea542b4d614f320c35d71cdefed2dd1869183773",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            },
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                                "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/final/sprite.png",
                        "finalSha256": "2d8384ebc6a15248b9c44e3df03bf1486e95bac6e1d48f1367e05051aa30b471",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04",
                        "identityBaselineY": 911,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/prompt.txt",
                        "promptSha256": "dff5c3086c12acfceaf8e2680697f958d6ce1452a863ab15206d1e92be2f79d4",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/raw/source.png",
                        "rawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            },
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                                "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "sourceGenerationId": null,
                "status": "accepted-owner-golden-animation-lock",
                "summary": "Owner-approved golden six-frame idle ping-pong animation from four GPT Image 2 provider poses; exact grounded baseline, minimal lateral contact drift, raw evidence, and alpha-only finals preserved.",
                "title": "ragnarok-create · Larkspur Academy Rune Attendant · idle animation",
                "userRequest": "Create a white adult human woman Larkspur Academy Rune Attendant, wearing an original navy-and-cream academy service dress with a short fitted jacket, modest layered skirt, small shoulder ribbons, tied-back chestnut hair, and soft sturdy shoes, standing upright in a calm balanced neutral pose with both boot soles level and close together, both hands relaxed near her sides, and no prop, weapon, magical effect, detached object, floor, or scenery."
            }
        },
        "receipt.json": {
            "sha256": "3fbcc6dee6d62f90cd70f162238bc30fd29e00417e256e99f7af14aff64442cf",
            "bytes": 53652,
            "value": {
                "anchorGuide": null,
                "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--receipt-json",
                "f1ProviderModel": "gpt-image-2-2026-04-21",
                "frameCount": 6,
                "frames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/final/sprite.png",
                        "finalSha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01",
                        "identityBaselineY": 911,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/prompt.txt",
                        "promptSha256": "7a1abdd9e657bcfd7f2ce0a09a468ff5ace51fea72c4b887d6c7437d0e8a5861",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "rawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/final/sprite.png",
                        "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                        "identityBaselineY": 911,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/prompt.txt",
                        "promptSha256": "4169c6e1e4e7346f1128d87403dfa9828650892f59ec349057dfb2f3835fab91",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "referenceSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/final/sprite.png",
                        "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                        "identityBaselineY": 911,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/prompt.txt",
                        "promptSha256": "96b344565266ad35f9b5ffc6ea542b4d614f320c35d71cdefed2dd1869183773",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            },
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                                "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/final/sprite.png",
                        "finalSha256": "2d8384ebc6a15248b9c44e3df03bf1486e95bac6e1d48f1367e05051aa30b471",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04",
                        "identityBaselineY": 911,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/prompt.txt",
                        "promptSha256": "dff5c3086c12acfceaf8e2680697f958d6ce1452a863ab15206d1e92be2f79d4",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/raw/source.png",
                        "rawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            },
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                                "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/final/sprite.png",
                        "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05",
                        "identityBaselineY": 911,
                        "index": 5,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackPreviousFrameIndex": 4,
                        "playbackPreviousRawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/prompt.txt",
                        "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                        "providerCall": false,
                        "providerFrameIndex": 3,
                        "providerGenerated": false,
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/raw/source.png",
                        "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                                "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                        "sourceFrameIndex": 3,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png"
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-receipt-json"
                        },
                        "byteIdentityVerified": true,
                        "durationMs": 120,
                        "exactByteReuse": true,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/final/sprite.png",
                        "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06",
                        "identityBaselineY": 911,
                        "index": 6,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackPreviousFrameIndex": 5,
                        "playbackPreviousRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/prompt.txt",
                        "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                        "providerCall": false,
                        "providerFrameIndex": 2,
                        "providerGenerated": false,
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/raw/source.png",
                        "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "references": [
                            {
                                "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                                "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                            }
                        ],
                        "sourceFinalArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                        "sourceFrameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                        "sourceFrameIndex": 2,
                        "sourceProvided": false,
                        "sourceRawArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png"
                    }
                ],
                "generationId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
                "loopMode": "ping-pong",
                "playbackSourceFrameIndices": [
                    1,
                    2,
                    3,
                    4,
                    3,
                    2
                ],
                "posePolicy": "natural-relational",
                "providerCallCount": 4,
                "providerCallCountAttempted": 4,
                "providerCallCountCompleted": 4,
                "providerFrameCount": 4,
                "providerFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/final/sprite.png",
                        "finalSha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01",
                        "identityBaselineY": 911,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/prompt.txt",
                        "promptSha256": "7a1abdd9e657bcfd7f2ce0a09a468ff5ace51fea72c4b887d6c7437d0e8a5861",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "rawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/final/sprite.png",
                        "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                        "identityBaselineY": 911,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/prompt.txt",
                        "promptSha256": "4169c6e1e4e7346f1128d87403dfa9828650892f59ec349057dfb2f3835fab91",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "referenceSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/final/sprite.png",
                        "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                        "identityBaselineY": 911,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/prompt.txt",
                        "promptSha256": "96b344565266ad35f9b5ffc6ea542b4d614f320c35d71cdefed2dd1869183773",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            },
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                                "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/final/sprite.png",
                        "finalSha256": "2d8384ebc6a15248b9c44e3df03bf1486e95bac6e1d48f1367e05051aa30b471",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04",
                        "identityBaselineY": 911,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/prompt.txt",
                        "promptSha256": "dff5c3086c12acfceaf8e2680697f958d6ce1452a863ab15206d1e92be2f79d4",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/raw/source.png",
                        "rawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            },
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                                "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "providerModel": "gpt-image-2-2026-04-21",
                "runId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "sourceFrameCount": 4,
                "sourceFrames": [
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/final/sprite.png",
                        "finalSha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01",
                        "identityBaselineY": 911,
                        "index": 1,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": null,
                        "parentRawSha256": null,
                        "phase": "settled identity pose; motion has not started",
                        "phaseProgressPercent": 0,
                        "playbackSourceFrameIndex": 1,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/prompt.txt",
                        "promptSha256": "7a1abdd9e657bcfd7f2ce0a09a468ff5ace51fea72c4b887d6c7437d0e8a5861",
                        "providerCall": true,
                        "providerFrameIndex": 1,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "rawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                        "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                            }
                        ],
                        "sourceFrameIndex": 1,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/final/sprite.png",
                        "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                        "identityBaselineY": 911,
                        "index": 2,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 1,
                        "parentRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 22,
                        "playbackSourceFrameIndex": 2,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/prompt.txt",
                        "promptSha256": "4169c6e1e4e7346f1128d87403dfa9828650892f59ec349057dfb2f3835fab91",
                        "providerCall": true,
                        "providerFrameIndex": 2,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                        "referenceSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            }
                        ],
                        "sourceFrameIndex": 2,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/final/sprite.png",
                        "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                        "identityBaselineY": 911,
                        "index": 3,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 2,
                        "parentRawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 44,
                        "playbackSourceFrameIndex": 3,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/prompt.txt",
                        "promptSha256": "96b344565266ad35f9b5ffc6ea542b4d614f320c35d71cdefed2dd1869183773",
                        "providerCall": true,
                        "providerFrameIndex": 3,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                        "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            },
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                                "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                            }
                        ],
                        "sourceFrameIndex": 3,
                        "sourceProvided": false
                    },
                    {
                        "anchorGuide": null,
                        "artifacts": {
                            "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-final-sprite-png",
                            "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-prompt-txt",
                            "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-raw-source-png",
                            "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-receipt-json"
                        },
                        "durationMs": 120,
                        "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/final/sprite.png",
                        "finalSha256": "2d8384ebc6a15248b9c44e3df03bf1486e95bac6e1d48f1367e05051aa30b471",
                        "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04",
                        "identityBaselineY": 911,
                        "index": 4,
                        "loopMode": "ping-pong",
                        "parentFrameIndex": 3,
                        "parentRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "phaseProgressPercent": 100,
                        "playbackSourceFrameIndex": 4,
                        "posePolicy": "natural-relational",
                        "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/prompt.txt",
                        "promptSha256": "dff5c3086c12acfceaf8e2680697f958d6ce1452a863ab15206d1e92be2f79d4",
                        "providerCall": true,
                        "providerFrameIndex": 4,
                        "providerGenerated": true,
                        "providerModel": "gpt-image-2-2026-04-21",
                        "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/raw/source.png",
                        "rawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                        "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/receipt.json",
                        "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                        "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                        "references": [
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                            },
                            {
                                "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                                "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                            }
                        ],
                        "sourceFrameIndex": 4,
                        "sourceProvided": false
                    }
                ],
                "sourceGenerationId": null
            }
        },
        "request.json": {
            "sha256": "4d0c0286f7036649cf9a19e377f6378f9c0aa6d16f7f2fea643deadf41f9924b",
            "bytes": 63268,
            "value": {
                "animation": {
                    "action": "idle",
                    "anchorGuide": null,
                    "anchorGuidePolicy": "none",
                    "durationMs": 120,
                    "f1ProviderModel": "gpt-image-2-2026-04-21",
                    "frameCount": 6,
                    "frames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/final/sprite.png",
                            "finalSha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01",
                            "identityBaselineY": 911,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/prompt.txt",
                            "promptSha256": "7a1abdd9e657bcfd7f2ce0a09a468ff5ace51fea72c4b887d6c7437d0e8a5861",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                            "rawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/final/sprite.png",
                            "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                            "identityBaselineY": 911,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/prompt.txt",
                            "promptSha256": "4169c6e1e4e7346f1128d87403dfa9828650892f59ec349057dfb2f3835fab91",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                            "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                            "referenceSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                            "references": [
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                    "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/final/sprite.png",
                            "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                            "identityBaselineY": 911,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/prompt.txt",
                            "promptSha256": "96b344565266ad35f9b5ffc6ea542b4d614f320c35d71cdefed2dd1869183773",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                            "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                            "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                            "references": [
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                    "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                                },
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                                    "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/final/sprite.png",
                            "finalSha256": "2d8384ebc6a15248b9c44e3df03bf1486e95bac6e1d48f1367e05051aa30b471",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04",
                            "identityBaselineY": 911,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/prompt.txt",
                            "promptSha256": "dff5c3086c12acfceaf8e2680697f958d6ce1452a863ab15206d1e92be2f79d4",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/raw/source.png",
                            "rawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                            "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                            "references": [
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                    "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                                },
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                                    "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/final/sprite.png",
                            "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-05",
                            "identityBaselineY": 911,
                            "index": 5,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackPreviousFrameIndex": 4,
                            "playbackPreviousRawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/prompt.txt",
                            "promptSha256": "f9c5fb4fe14d6a644e0512eb37b3893426f83c98b0eb833fb4cd609632a74977",
                            "providerCall": false,
                            "providerFrameIndex": 3,
                            "providerGenerated": false,
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/raw/source.png",
                            "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                            "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                                    "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                            "sourceFrameIndex": 3,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png"
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06-receipt-json"
                            },
                            "byteIdentityVerified": true,
                            "durationMs": 120,
                            "exactByteReuse": true,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/final/sprite.png",
                            "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-06",
                            "identityBaselineY": 911,
                            "index": 6,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackPreviousFrameIndex": 5,
                            "playbackPreviousRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/prompt.txt",
                            "promptSha256": "7fd287e758e683516af795d8e1557e1666cc73576718a381f2fd1b7a78a7c8c5",
                            "providerCall": false,
                            "providerFrameIndex": 2,
                            "providerGenerated": false,
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/raw/source.png",
                            "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                            "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                            "references": [
                                {
                                    "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                                    "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                                }
                            ],
                            "sourceFinalArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                            "sourceFrameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                            "sourceFrameIndex": 2,
                            "sourceProvided": false,
                            "sourceRawArtifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png"
                        }
                    ],
                    "generationId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
                    "ideaIdleBehaviorDeferred": null,
                    "identityBaselineY": 911,
                    "identityPolicy": "immutable-f1-raw-master",
                    "idleBehavior": "One simple connected weight-shift and breath loop: lean the torso toward the screen-left planted foot, open both forearms visibly, bend both knees and shift the hips while both boot sole contacts stay at their exact F1 canvas positions, and let hair, sleeves, plus loose coat or dress hem show clear connected follow-through; then return. The pose may compress or extend naturally around the planted root, but the character must never be uniformly resized, stretched, sheared, or recentered. Keep head, torso, and boot pixel scale consistent. Held equipment follows the hands through one readable continuous arc; it never flips end-for-end or changes from carried to planted or resting.",
                    "idleBehaviorSource": "locked-generic-whole-body-loop",
                    "lockedParts": [
                        "recognizable face and identity",
                        "costume and equipment design",
                        "fine motifs, trim, fasteners, gems, and prop markings",
                        "palette family and pixel rendering language",
                        "body proportions and overall scale band",
                        "screen-left three-quarter facing",
                        "1024x1024 canvas and flat #ff00ff background"
                    ],
                    "loop": true,
                    "loopMode": "ping-pong",
                    "movingParts": [
                        "whole pose silhouette",
                        "center of mass",
                        "torso and hips",
                        "both arms and hands",
                        "knees, legs, boots, and stance",
                        "hair and sleeves",
                        "coat tails, dress, cape, and hem",
                        "held equipment following the hands"
                    ],
                    "parentPolicy": "f1-plus-previous",
                    "phaseProgressPercent": [
                        0,
                        22,
                        44,
                        100,
                        44,
                        22
                    ],
                    "phases": [
                        "settled identity pose; motion has not started",
                        "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; return transition with exactly 44% of the peak displacement still remaining: move every declared part about 56% of the distance from its Image 2 position toward its Image 1 position, leaving 44% of the original peak travel visible. This percentage is remaining displacement, not the amount to return. Every declared moving part must be closer to F1 than it was in Image 2, without crossing past F1 or starting a different action. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                        "one continuous whole-body out-and-back loop; final loop-closing return with exactly 22% of the peak displacement still remaining: build this pose from Image 1, not from Image 2. Start with Image 1's complete full-body pose, then add only 22% of the peak displacement to torso and hips, both arms and hands, free knee and stance, head and hair, sleeves, and loose garment. Image 2 supplies only the reverse motion direction; do not preserve or trace its silhouette. This is equivalent to moving about 50% from Image 2 toward Image 1, but Image 1 is the construction anchor. Leave 22% of the original peak travel visible. Make this a clear in-between pose between Image 2 and Image 1, not a near-copy of either endpoint. Both arms and hands, stance, knees, torso, head, hair, and loose garment must all occupy their corresponding in-between positions. Every declared moving part must be closer to F1 than it was in Image 2 while retaining readable residual displacement from F1. The remaining transition into exact F1 must be comparable to this adjacent transition. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action"
                    ],
                    "playbackSourceFrameIndices": [
                        1,
                        2,
                        3,
                        4,
                        3,
                        2
                    ],
                    "posePolicy": "natural-relational",
                    "preview": {
                        "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--preview-animation-gif",
                        "format": "derived-gif-preview",
                        "path": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/preview/animation.gif",
                        "sha256": "55a4d6333f204733055c56fa849128962f355f9fdf877044ef8bbe4681e144da",
                        "sourcePolicy": "final-frame-pngs-unchanged"
                    },
                    "providerCallCount": 4,
                    "providerFrameCount": 4,
                    "providerFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/final/sprite.png",
                            "finalSha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01",
                            "identityBaselineY": 911,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/prompt.txt",
                            "promptSha256": "7a1abdd9e657bcfd7f2ce0a09a468ff5ace51fea72c4b887d6c7437d0e8a5861",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                            "rawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/final/sprite.png",
                            "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                            "identityBaselineY": 911,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/prompt.txt",
                            "promptSha256": "4169c6e1e4e7346f1128d87403dfa9828650892f59ec349057dfb2f3835fab91",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                            "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                            "referenceSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                            "references": [
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                    "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/final/sprite.png",
                            "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                            "identityBaselineY": 911,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/prompt.txt",
                            "promptSha256": "96b344565266ad35f9b5ffc6ea542b4d614f320c35d71cdefed2dd1869183773",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                            "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                            "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                            "references": [
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                    "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                                },
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                                    "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/final/sprite.png",
                            "finalSha256": "2d8384ebc6a15248b9c44e3df03bf1486e95bac6e1d48f1367e05051aa30b471",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04",
                            "identityBaselineY": 911,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/prompt.txt",
                            "promptSha256": "dff5c3086c12acfceaf8e2680697f958d6ce1452a863ab15206d1e92be2f79d4",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/raw/source.png",
                            "rawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                            "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                            "references": [
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                    "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                                },
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                                    "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        }
                    ],
                    "providerModel": "gpt-image-2-2026-04-21",
                    "rootPolicy": {
                        "allowedCorrection": "lossless whole-canvas integer translation only",
                        "exactProviderRootRequired": false,
                        "measuredAfterGeneration": true,
                        "poseDependentHorizontalFootMotionPreserved": true,
                        "providerConstraint": "at least one boot sole within 16px of F1 baseline"
                    },
                    "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                    "sourceFrameCount": 4,
                    "sourceFrames": [
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/final/sprite.png",
                            "finalSha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-01",
                            "identityBaselineY": 911,
                            "index": 1,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": null,
                            "parentRawSha256": null,
                            "phase": "settled identity pose; motion has not started",
                            "phaseProgressPercent": 0,
                            "playbackSourceFrameIndex": 1,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/prompt.txt",
                            "promptSha256": "7a1abdd9e657bcfd7f2ce0a09a468ff5ace51fea72c4b887d6c7437d0e8a5861",
                            "providerCall": true,
                            "providerFrameIndex": 1,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                            "rawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                            "referenceSha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638",
                            "references": [
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/direct-openai-style-lock-batch-v4-high-fidelity/reference/elder-a-master.png",
                                    "sha256": "230ad4a9e7ef2a8afc16648f59e2d77fcf4ab97c76dcf8ee1d42fb0842d32638"
                                }
                            ],
                            "sourceFrameIndex": 1,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/final/sprite.png",
                            "finalSha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-02",
                            "identityBaselineY": 911,
                            "index": 2,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 1,
                            "parentRawSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                            "phase": "one continuous whole-body out-and-back loop; first early anticipation at 22% of the single motion peak. This must be the generated pose closest to F1. Begin the connected motion, but keep both arms and hands only slightly displaced from F1, let the knees and hips only start their weight shift, and show only the first small response in hair, sleeves, scarf, sash, coat, or hem. Do not open into a broad arm pose or wide action stance yet. The visual change from F1 into this frame must be smaller than the next change from this frame toward the later in-between. F1 is the only submitted pose and defines zero displacement. Keep this first generated displacement smaller than the next outbound displacement. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 22,
                            "playbackSourceFrameIndex": 2,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/prompt.txt",
                            "promptSha256": "4169c6e1e4e7346f1128d87403dfa9828650892f59ec349057dfb2f3835fab91",
                            "providerCall": true,
                            "providerFrameIndex": 2,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                            "rawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                            "referenceSha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
                            "references": [
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                    "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                                }
                            ],
                            "sourceFrameIndex": 2,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/final/sprite.png",
                            "finalSha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-03",
                            "identityBaselineY": 911,
                            "index": 3,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 2,
                            "parentRawSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                            "phase": "one continuous whole-body out-and-back loop; outbound transition at 44% of the single motion peak: move every declared body and garment part away from F1 toward one coherent peak pose. This is only a partial step, not the endpoint. Compared with Image 2, continue the same motion direction by one modest adjacent increment. Keep the stance, torso lean, arm opening, knee bend, hair, and garment travel visibly less developed than the future peak. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 44,
                            "playbackSourceFrameIndex": 3,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/prompt.txt",
                            "promptSha256": "96b344565266ad35f9b5ffc6ea542b4d614f320c35d71cdefed2dd1869183773",
                            "providerCall": true,
                            "providerFrameIndex": 3,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                            "rawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                            "referenceSha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
                            "references": [
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                    "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                                },
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
                                    "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4"
                                }
                            ],
                            "sourceFrameIndex": 3,
                            "sourceProvided": false
                        },
                        {
                            "anchorGuide": null,
                            "artifacts": {
                                "final": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-final-sprite-png",
                                "prompt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-prompt-txt",
                                "raw": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-raw-source-png",
                                "receipt": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04-receipt-json"
                            },
                            "durationMs": 120,
                            "final": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/final/sprite.png",
                            "finalSha256": "2d8384ebc6a15248b9c44e3df03bf1486e95bac6e1d48f1367e05051aa30b471",
                            "frameId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--frames-04",
                            "identityBaselineY": 911,
                            "index": 4,
                            "loopMode": "ping-pong",
                            "parentFrameIndex": 3,
                            "parentRawSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                            "phase": "one continuous whole-body out-and-back loop; single motion peak at 100%: show the clearest coordinated torso, both-arm, both-hand, head, hair, leg, and loose-garment displacement of this loop. Continue beyond Image 2 in the same motion direction: every declared moving part must be farther from its F1 position than it was in Image 2. Do not settle, reverse, or return yet. F1 defines zero displacement. Match this absolute progress relative to F1 instead of accumulating Image 2. The loop transition after F6 returns to exact F1 with the same maximum progress step as adjacent generated frames. This is not a separate gesture or action",
                            "phaseProgressPercent": 100,
                            "playbackSourceFrameIndex": 4,
                            "posePolicy": "natural-relational",
                            "prompt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/prompt.txt",
                            "promptSha256": "dff5c3086c12acfceaf8e2680697f958d6ce1452a863ab15206d1e92be2f79d4",
                            "providerCall": true,
                            "providerFrameIndex": 4,
                            "providerGenerated": true,
                            "providerModel": "gpt-image-2-2026-04-21",
                            "raw": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/raw/source.png",
                            "rawSha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
                            "receipt": "research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/receipt.json",
                            "reference": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                            "referenceSha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
                            "references": [
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
                                    "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1"
                                },
                                {
                                    "path": "/srv/codex/workspaces/midgard-pixels/research/sprites/ragnarok/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
                                    "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4"
                                }
                            ],
                            "sourceFrameIndex": 4,
                            "sourceProvided": false
                        }
                    ],
                    "stylePolicy": "elder-a-master"
                },
                "artifactId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--request-json",
                "category": "Academy & Town",
                "categorySlug": "academy-town",
                "class": "Larkspur Academy Rune Attendant",
                "classSource": "request-title",
                "command": "ragnarok-create --animate",
                "createdAt": "2026-07-24T20:03:21.582726Z",
                "gender": "woman",
                "genderSource": "request-text",
                "generationId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
                "ideaId": null,
                "ideaSource": null,
                "ideaTitle": null,
                "provider": {
                    "animationInputFidelity": "unsupported-omitted",
                    "animationModel": "gpt-image-2-2026-04-21",
                    "attemptedCalls": 4,
                    "completedCalls": 4,
                    "f1InputFidelity": "unsupported-omitted",
                    "f1Model": "gpt-image-2-2026-04-21",
                    "quality": "medium",
                    "size": "1024x1024"
                },
                "request": "Create a white adult human woman Larkspur Academy Rune Attendant, wearing an original navy-and-cream academy service dress with a short fitted jacket, modest layered skirt, small shoulder ribbons, tied-back chestnut hair, and soft sturdy shoes, standing upright in a calm balanced neutral pose with both boot soles level and close together, both hands relaxed near her sides, and no prop, weapon, magical effect, detached object, floor, or scenery.",
                "runId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
                "schemaVersion": "midgard-pixels.ragnarok-animated-character.v1",
                "source": null,
                "sourceGenerationId": null,
                "title": "Larkspur Academy Rune Attendant"
            }
        },
        "review.json": {
            "sha256": "5c2f2f8681d00c1ef8504ca99122d760a5ddbc7e8b181206fad648629c62fdd8",
            "bytes": 4154,
            "value": {
                "accepted": true,
                "acceptedAt": "2026-07-24T20:35:48Z",
                "authority": "repository-owner",
                "comparison": {
                    "cinderbell": {
                        "bottomContactHorizontalRangePx": 193.5,
                        "f1ToF2SilhouetteDistance": 0.294775,
                        "groundedBaselineRangePx": 30,
                        "modelForAllUniquePoses": "gpt-image-1.5",
                        "playbackFrameCount": 8,
                        "result": "rejected",
                        "runId": "ragnarok-create-20260724T184918019600Z-cinderbell-academy-ward-pugilist-4d22e6",
                        "uniqueProviderPoseCount": 5
                    },
                    "controlledConstants": [
                        "elder-a-master style template",
                        "natural-relational pose policy",
                        "f1-plus-previous parent policy",
                        "120ms frame duration",
                        "alpha-only finalization"
                    ],
                    "provenDifferences": [
                        "provider model",
                        "unique provider-pose count",
                        "playback topology",
                        "phase schedule",
                        "character description",
                        "Cinderbell guard-pose freedom"
                    ],
                    "supportedInference": "Larkspur's compact centered silhouette, close level feet, relaxed hands, absent prop, and lower asymmetric-detail load reduced lateral-root and repaint opportunities. One sample does not prove the provider model alone caused success.",
                    "willowmere": {
                        "bottomContactHorizontalRangePx": 72.5,
                        "f1ToF2SilhouetteDistance": 0.118106,
                        "groundedBaselineRangePx": 18,
                        "modelForAllUniquePoses": "gpt-image-1.5",
                        "playbackFrameCount": 8,
                        "result": "rejected",
                        "runId": "ragnarok-create-20260724T185611687625Z-willowmere-academy-ward-medic-e2f638",
                        "uniqueProviderPoseCount": 5
                    }
                },
                "decision": "accepted-owner-golden-animation-lock",
                "displayStatus": "OWNER ACCEPTED · GOLDEN ANIMATION LOCK",
                "gates": {
                    "alphaOnlyFinalization": "pass",
                    "bottomContactHorizontalStability": "pass",
                    "connectedWholeBodyMotion": "pass-owner-visual",
                    "firstStepRestraint": "pass",
                    "groundedBaselineStability": "pass",
                    "identityContinuity": "pass-owner-visual",
                    "scaleStability": "pass",
                    "seamlessPingPongPlayback": "pass-owner-visual"
                },
                "goldenDefault": true,
                "lockedRecipe": {
                    "anchorGuide": "none",
                    "durationMs": 120,
                    "f1Reference": "elder-a-master",
                    "inputFidelity": "unsupported-omitted",
                    "loopMode": "ping-pong",
                    "parentPolicy": "f1-plus-previous",
                    "phaseProgressPercent": [
                        0,
                        22,
                        44,
                        100,
                        44,
                        22
                    ],
                    "playbackSourceFrameIndices": [
                        1,
                        2,
                        3,
                        4,
                        3,
                        2
                    ],
                    "posePolicy": "natural-relational",
                    "postProcessing": "edge-safe alpha-only chroma removal",
                    "providerCallCount": 4,
                    "providerModel": "gpt-image-2-2026-04-21",
                    "referenceOrderPolicy": [
                        "f1RawIdentity",
                        "previousRawOpaque"
                    ],
                    "sourceFrameCount": 4,
                    "stageFrameCount": 6
                },
                "measurements": {
                    "alphaCentroidForwardStepPx": [
                        2.446,
                        7.371,
                        20.545
                    ],
                    "bottomContactHorizontalRangePx": 3.5,
                    "boundingBoxCenterHorizontalRangePx": 13.5,
                    "exactPaletteSetJaccardToF1": [
                        1,
                        0.180857,
                        0.176814,
                        0.172196
                    ],
                    "groundedBaselineRangePx": 0,
                    "groundedBaselineYByUniquePose": [
                        911,
                        911,
                        911,
                        911
                    ],
                    "heightRangePercentOfF1": 4.481,
                    "silhouetteForwardDistanceOneMinusIoU": [
                        0.051341,
                        0.15798,
                        0.229564
                    ]
                },
                "note": "Owner declared Larkspur Academy Rune Attendant the best result and requested this exact successful method be locked. Automated spacing metrics remain evidence; owner visual acceptance is authoritative for subjective motion quality.",
                "productionAnimationBaseline": true,
                "reviewId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568--owner-golden-lock",
                "runId": "ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568",
                "runtimeSpriteSheetEligible": false,
                "schemaVersion": "midgard-pixels.animation-visual-review.v1",
                "summary": "Owner-approved golden source-animation baseline. All four unique poses used pinned GPT Image 2. Exact four-pose/six-playback recipe is now command default."
            }
        }
    },
    "media": {
        "final/sprite.png": {
            "attachment_id": 966,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/final/sprite.png",
            "sha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce",
            "bytes": 953446,
            "mime": "image/png"
        },
        "frames/01/final/sprite.png": {
            "attachment_id": 969,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/final/sprite.png",
            "sha256": "63a494a80d0786fd1a693b1ed616048bb86b5dffed1b92fab8227b9403ff20ce",
            "bytes": 953446,
            "mime": "image/png"
        },
        "frames/01/raw/source.png": {
            "attachment_id": 970,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/01/raw/source.png",
            "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
            "bytes": 967995,
            "mime": "image/png"
        },
        "frames/02/final/sprite.png": {
            "attachment_id": 977,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/final/sprite.png",
            "sha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
            "bytes": 992600,
            "mime": "image/png"
        },
        "frames/02/raw/source.png": {
            "attachment_id": 978,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/02/raw/source.png",
            "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
            "bytes": 999636,
            "mime": "image/png"
        },
        "frames/03/final/sprite.png": {
            "attachment_id": 975,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/final/sprite.png",
            "sha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
            "bytes": 1028620,
            "mime": "image/png"
        },
        "frames/03/raw/source.png": {
            "attachment_id": 976,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/03/raw/source.png",
            "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
            "bytes": 1024069,
            "mime": "image/png"
        },
        "frames/04/final/sprite.png": {
            "attachment_id": 967,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/final/sprite.png",
            "sha256": "2d8384ebc6a15248b9c44e3df03bf1486e95bac6e1d48f1367e05051aa30b471",
            "bytes": 1242239,
            "mime": "image/png"
        },
        "frames/04/raw/source.png": {
            "attachment_id": 968,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/04/raw/source.png",
            "sha256": "a0bd9ceb59634a15c048dc5201aa1886044210d8cb4f2bf4d6fa1e072fce92d7",
            "bytes": 1205007,
            "mime": "image/png"
        },
        "frames/05/final/sprite.png": {
            "attachment_id": 971,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/final/sprite.png",
            "sha256": "fba6ef9b7cf1d83f8cd7a5c7afde854c20fa8dddd56235a8926d1315d1bbf0f4",
            "bytes": 1028620,
            "mime": "image/png"
        },
        "frames/05/raw/source.png": {
            "attachment_id": 972,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/05/raw/source.png",
            "sha256": "590196cd8b7fd58fd3ee42b30eaaab0fce053050b60a5e8def428f2e8132f0c4",
            "bytes": 1024069,
            "mime": "image/png"
        },
        "frames/06/final/sprite.png": {
            "attachment_id": 973,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/final/sprite.png",
            "sha256": "d2be9d6a9b92849735fef08876c84a93e05104060b395e2b2c5b7f9b8d437ec3",
            "bytes": 992600,
            "mime": "image/png"
        },
        "frames/06/raw/source.png": {
            "attachment_id": 974,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/frames/06/raw/source.png",
            "sha256": "87a41db2786d681a4584df631cd00d365cfe8067fdc934387fd2c63690366db4",
            "bytes": 999636,
            "mime": "image/png"
        },
        "preview/animation.gif": {
            "attachment_id": 965,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/preview/animation.gif",
            "sha256": "55a4d6333f204733055c56fa849128962f355f9fdf877044ef8bbe4681e144da",
            "bytes": 589383,
            "mime": "image/gif"
        },
        "raw/source.png": {
            "attachment_id": 979,
            "url": "https://midgard.agentstories.io/wp-content/uploads/2026/07/midgard-pixels/ragnarok-corpus/automated-character-runs-v1/academy-town/ragnarok-create-20260724T200321582726Z-larkspur-academy-rune-attendant-a9b568/raw/source.png",
            "sha256": "abde94e569cd7343d294983507769bc9fa79799cbdafd3f6978e1b12df3ef6b1",
            "bytes": 967995,
            "mime": "image/png"
        }
    },
    "importedAt": "2026-07-24T21:44:03+00:00",
    "archiveVisibility": "publish"
}