There won't be need to check if bonuses provided by items are higher that character maxes, and there won't be need in double system of maxes, ie max and lvl_max. Although, it will make all items more powerful too.
As for min...
The min field is truly useful only in a few cases. Here it freezes joy at 50.
{
"id": "Mysterious Gray Ring",
"desc": "«If early day, or late at night, it's not my problem, I'll be alright. No cause you name is worth the fight, but if I'm bored, then yeah, I might.»",
"icon": "content/items/ring/gray_l.png",
"price": 5000,
"sex": "female",
"chance": 1,
"badness": 0,
"eqchance": 5,
"hidden": false,
"infinite": false,
"slot": "ring",
"max": {"joy": -50, "magic": 150, "mp": 150},
"mod": {"luck": 5, "defence": 100},
"min": {"joy": 50},
"evasion_bonus": 2,
"damage_multiplier": 0.05,
"defence_multiplier": {"melee": 0.1, "ranged": 0.05, "magic": 0.05},
"locations": ["Exploration", "Fishing"],
"goodtraits": ["Indifferent"]
}
And this one makes sure character will always have at least 5 mp.
{
"id": "Rune Staff",
"desc": "This staff is constantly drawing energy from other planes of existence and channels it to its wielder.",
"icon": "content/items/sweapon/rus.png",
"price": 3000,
"sex": "unisex",
"chance": 10,
"badness": 50,
"eqchance": 50,
"hidden": true,
"infinite": false,
"slot": "smallweapon",
"type": "rod",
"max": {"magic": 100, "mp": 100},
"mod": {"magic": 40, "character": 50, "attack": -80},
"min": {"mp": 5},
"delivery_bonus": {"magic": 50},
"delivery_multiplier": {"magic": 0.1},
"locations": ["Exploration"]
}
In all other cases min field is almost cosmetic, because the chance of it being used is super low.
I suppose the staff could just restore mp every day. But since effects are ineffective against jobs and items, I can't really achieve the same result for the ring by using effects. We can get rid of all min fields entirely any time as long as you provide other means to freeze a stat reliably. Ie just to have a fixed stat value no matter what as long as an item or a trait is equipped.
Yeah, for traits too. We had to get rid of retarded trait because it didn't prevent intelligence from increasing, giving enough time, so it had little sense. But if it freezes intelligence at 10, then it works as it should.