@Zed pointed me to this topic in my discussion on this other thread:
I had some ideas.
Would it be possible to write something in I7 that annotates the type of each property somewhere? on the object? As well as something that automates the naming of properties and translates what would otherwise be an invalid provides
statement?
So something that would transform the below:
Color is a kind of value. The colors are red, green and blue.
A ball is a kind of thing.
A ball has a color.
Instead of examining:
say "You detect that [the noun] is";
if the noun provides color:
say " [color of noun]";
Into something like:
Table of Property Kinds
thing prop kind
with 1 blank row
Color is a kind of value. The colors are red, green and blue.
A ball is a kind of thing.
A ball has a color called the color-prop.
Table of Property Kinds (continued)
thing prop kind
ball "color-prop" "color"
Instead of examining:
say "You detect that [the noun] is";
if the noun provides color-prop:
say " [color-prop of noun]";
I’m not sure if I’ve gotten the syntax exactly right, or if something like this would even be memory-efficient, but would an approach like this (a) be automatable thru I7 rules / text substitutions and (b) solve the problem of not knowing the kind of a property when printing it?