Here are some are some source files and program files to crudely view JEF files.
JEF files are a binary file consisting of two parts: header and stitches. The header part is mainly 32bit integers. The stitches are held in a list of x-y pairs of 8bit signed integers.
The header contains a ordered list of 32bit integers, except the date and time values, which are ASCII numbers in YYYYMMDDHHMM format, but padded with zeroes to the 32bit boundary. The fields I have guessed are,
header length or first stitch file offset
file version or something
date
time
colour count
stitch count
unknown
width 1 in 0.02cm units
height 1 in 0.02cm units
width 2 in 0.02cm units
height 2 in 0.02cm units
width 3 in 0.02cm units
height 3 in 0.02cm units
width 4 in 0.02cm units
height 4 in 0.02cm units
minus 1
minus 1
minus 1
minus 1
width 5 in stitch size units or something
height 5 in stitch size units or something
width 6 in stitch size units or something
height 6 in stitch size units or something
width 7 in stitch size units or something
height 7 in stitch size units or something
width 8 in stitch size units or something
height 8 in stitch size units or something
array of colour codes, one for each colour/thread change
array of value 13, one for each colour/thread change: I do not know what 13 might signify
The stritches are either a signed 8 bit offset from the last stitch or a command code. The command codes have the x offset equal to -128 and the y offset could be 1 for change colour/thread, 2 for move - do not stitch, and 16 for end of stitch list.
I do not know what colour code is what colour and it does not seem related to the Janome thread code. I do not know what values might indicate: design size (width 1 and height 1), hoop size, sewing time, sewing order, thread density, thread type, or what all the different widths and heights are for.
The sewing seems to start in the centre, the first few stitches move to the design start.