A foul is marked where it was thrown; the best valid mark is picked out.
The picture above was drawn when the docs were built. The script below draws it again with the published package.
import { fieldMarks } from "@johnmorrisdotca/kyogijo-stadiums/athletics";
const attempts = [{ athlete: "A", distance: 84.2, across: 2 }, { athlete: "A", distance: 88.1, across: -4 }, { athlete: "A", valid: false }, { athlete: "A", distance: 90.7, across: 6 }, { athlete: "A", distance: 86, across: -1 }];
const svg = fieldMarks("javelin-throw", attempts, { surface: { athletics: { layout: "javelin-throw" } } }).draw();
This page imports the package from jsDelivr (major version 0), which serves only versions that have been published to npm. A feature added after the last release is not in it: the page then keeps the picture above and says why. The docs were built from version 0.6.1.