well, this is the basics of what i wanted:
#!/usr/bin/env nwn-dsl
# This script will extract all items the worked-on
# struct is currently in possession of.
o = need ARGV.shift, :bic, :utc, :uti
o.each {|k, v|
print "#{k}: #{v["value"]}\\n";
}
there's a lot of work yet to convert the integer values into strings (like "class" is stored as a number, which needs to be converted to text). i'm well on my way, though.