The browser scene emits arrow items with an empty sprite key, and the renderer substitutes a short Canvas line. The original demo contains DAT 1 sequences 100 through 105, three frames each, with original signed anchors and frame-dependent silhouettes. None is imported for flight presentation.
The pinned reference's MapObjectDrawer.drawArrow selects original frames with round(progress * 2), interpolates source/target elevation and adds a display-space launch height and arc. Current presentation instead launches a generic shaft from ground level with a sine arc. This is a presentation gap; the engine's flight and damage scheduling must remain independent.
Evidence: paulwedeck/settlers-remake@6ad8c4230a4aa4cd21840f8cb59a38344e41c3e0, jsettlers.graphics/src/main/java/jsettlers/graphics/map/draw/MapObjectDrawer.java, drawArrow; original Amazons demo Gfx/Siedler3_01.f8007e01f.dat, sections 0x106 and the pinned amazon_demo.json mapping. Independent decoding confirms all 18 body frames. Sequences 100 and 105 have mirrored diagonal silhouettes; 101 and 104 have the opposite horizontal orientations.
The reference code selects sequence 104 for both EAST and SOUTH_EAST. Record and resolve that discrepancy against the original frame geometry and direction contract. Do not silently describe an inferred correction as an original Gold runtime observation.
Acceptance:
- Import the original flight frames with exact signed anchors, selectors, input hashes and provenance. Retain independent source-pixel comparisons.
- Select original orientation and flight frames through a documented direction contract, with the southeast discrepancy explicit.
- Render source-supported launch height, interpolation and depth using the actual projectile state and real elevation. Do not change damage, flight ticks, visibility policy or ground-arrow lifetime without separate evidence.
- Retain real 1x/2x browser pixel checks across directions and flight phases, unequal endpoint heights, overlap, save/restore and unchanged simulation checksums.
- Pass lint, types, asset verification, units, full production browser gate and pushed CI diagnostics.
Related #88. Original-media rasters stay local. This work establishes original demo pixels and documented reference presentation, not Gold timing or ground-arrow lifetime.