In the interest of moving forward, I have put together a proposal for representing ordinal data in OpenMx. The scope of this proposal shall be limited to ordinal data; further discussion on how to represent other data types in OpenMx shall be released in another forthcoming proposal. Corrections or comments to this proposal are encouraged. Alternative proposals are also encouraged, and should start a new forum topic [Ordinal Data Proposal (#n)].
1. Use R's existing data structures for ordered and unordered factors. Unordered factors are created using factor(). Ordered factors are created using ordered() or factor(ordered = TRUE). The various R functions that read data into a data.frame have configurable behavior on how to create factors.
2. Add an optional argument "threshold" to the mxData function. "threshold" will accept a list. Each list element must be a vector. The name of each list element must match the name of one of the columns of the "observed" argument to mxData, creating a correspondence between the "observed" argument and the "threshold" argument. Each list element of "threshold" must correspond to either a factor or an ordered factor. The length of each list element must be equal to one minus the length of the corresponding factor or ordered factor.