# stove
type stove : s {
    rules {
        cook/stove/burned :: $at(P, r) & $at(stove, r) & $in(f, I) & cooked(f) & edible(f) -> burned(f) & inedible(f);
        cook/stove/cooked/raw :: $at(P, r) & $at(stove, r) & $in(f, I) & raw(f)            -> fried(f) & cooked(f);
        cook/stove/cooked/needs_cooking :: $at(P, r) & $at(stove, r) & $in(f, I) & needs_cooking(f) & inedible(f) -> fried(f) & edible(f) & cooked(f);
    }

    inform7 {
        type {
            kind :: "stove-like";
            definition :: "stove-like is a source of heat.";
        }

        commands {
            cook/stove/cooked/raw           :: "cook {f} with {stove}" :: "cooking the {f} with the {stove}";
            cook/stove/cooked/needs_cooking :: "cook {f} with {stove}" :: "cooking the {f} with the {stove}";
            cook/stove/burned               :: "cook {f} with {stove}" :: "cooking the {f} with the {stove}";
        }
    }
}
