The format I will use: (Assume that nutrients are an unsigned byte, with values from 0 to 255)
[NUTRIENT_N: Preferred minimum: Tolerated Minimum: Adjustment]
[NUTRIENT_P: Preferred minimum: Tolerated Minimum: Adjustment]
[NUTRIENT_K: Preferred minimum: Tolerated Minimum: Adjustment]
[SOIL_PH: Preferred minimum: Preferred maximum: Tolerated Minimum: Tolerated Maximum: Adjustment]
[WATER_REQUIREMENT: Preferred minimum: Preferred maximum: Tolerated Minimum: Tolerated Maximum: Adjustment]
[BIOMASS: Preferred minimum: Preferred maximum: Tolerated Minimum: Tolerated Maximum: Adjustment]
[FULL_HARVEST: stack size]
[PEST: creature]
[SEED_TYPE: category]
This is assuming there is no overfeeding mechanism where you can burn plants with overabundant Nitrogen. This could be easily added in, considering how SOIL_PH works, but it's not going in right now.
It should be fairly obvious, but "Preferred" is the ideal range, and "tolerated" is the minimum-before-it-stops-growing range. The range between those two is where the warning signals of poor leaf quality and the like show up, as a percentage between the two numbers.
"Adjustment" is either a positive or negative integer value that pushes the value for that nutrient up or down, depending on whether that plant depletes or replinishes that specific nutrient. Note that Nitrogen depletion (and replinishment) should be MUCH faster than anything else, triple your Phosphorus consumption and ten times your Potassium consumption. Likewise, fertilizers that replenish Phosphorus and Potassium should be slower-working. Nitrogen is the most volatile nutrient in the soil, and crop rotation largley focuses on keeping nitrogen levels high, while potassium is a matter of building up a good base, and maintaining it with periodical supplimentation.
EDIT: Actually, I'll just start using +3, ++, +, 0, -, --, -3, -4 etc. to talk about these things from now on, as it's easier to just talk about these in relative terms rather than try to punch out calculations on an abstract without really knowing how well this would work out when I actually simulate them.
For soil pH, assume 127 is a value of 7.0 pH. For roundness of number, assume 20 is the difference between 1 pH and another. Hence, 117 is 6.5 pH.
BIOMASS is a measure of how many usable carbohydrates and other organic compounds that can be broken apart for energy by non-photosynthetic crops, like fungi. It's actually useful in some parts, as this can not only give you a usable crop, but also break apart cover crops or leftover husks of other crops to provide you with more nutrients of the NPK variety. I can also use this as a shorthand for "Humus", which is basically the soil bacteria, fungus and the like that help break down dead stuff for the plants.
FULL_HARVEST is the maximum size of the stack of crops you can grow with this type of crop. This is a necessary balancer, as crops that are edible and replinish soil nutrients (like legumes) would be amazingly attractive compared to other, soil-depleting crops (like wheat) if they simply produced the same amount of crops as the ones that are supposed to be more valuable. (The way that sweet pods and quarry bushes are basically the ultimate crops in the current version because they can be turned into 5 times as many food items as any other crop, and Dwarven Syrup is one of the most valuable crop-derivatives, to boot!)
PEST is just a name for a creature that is a specific form of pest for this kind of plant, which would need to have stats of its own. Obviously, much more detail than just a name would be needed.
SEED_TYPE is a nod to Capn_Mikey's statement:
potatos bloated tubers currently are a plant that apparently goes extinct outside the wild, although humans seem capable of growing them just fine. There should be alternate ways to obtain seeds, whether by the STANDARD method of just dropping seeds when they are consumed, or by DESTROY CROP, which means you have to turn one of the crops into another seed, so that you have to use the actual wheat grain or potato crop to create the next batch of seeds. This should probably be done as a farmer's workshop task to turn a stack of crops into their seeds, which will "preserve" them for the later seasons. There are also ON HARVEST type seeds, for the plants that don't actually have useful crops, like growing clover as a means of letting the land fallow. Basically, the harvest IS the seed.
I will also use some existing terms, like GROWDUR, so if you are unfamiliar with them, visit the
Plant Token wiki page as a guide.
Plus, I'm adding in "grazer" as a EDIBLE type, signifying that this makes for a crop that can feed grazing livestock, once that becomes part of the game.