// Conversion constants to meters
export const IN_TO_M = 0.0254;
export const FT_TO_M = 0.3048;
// Dimensions of the field in meters
export const FIELD_WIDTH = 26 * FT_TO_M + 11.25 * IN_TO_M;
export const FIELD_LENGTH = 52 * FT_TO_M + 5.25 * IN_TO_M;

