Basically, it would be cool to have a way to flag certain procs / variables so that you indicate that they must be overridden in derivate paths, eg:
/datum/food
virtual var/taste = null
/datum/food/proc/effect()
virtual
/datum/food/soup <-- This should throw an error like "Not implementing proc: 'effect' "
taste = "Sour"
/datum/food/spicynoodles <-- This should throw an error like "Not implementing variable: 'taste' "
/datum/food/spicynoodles/effect()
set_on_fire(usr)
Basically, it would be cool to have a way to flag certain procs / variables so that you indicate that they must be overridden in derivate paths, eg: