(I've moved this topic to the LiveCode Builder Forum - which is the best place to discuss LCB and its use)
@monte: Welcome to LCB - things have changed a fair bit since my early prototypes!
In DP1 there is no font inheritence - however, support for the font properties in LC have been added as a result of http://forums.livecode.com/viewtopic.php?f=93&t=23555
(pull request, now in develop - https://github.com/runrev/livecode/pull/2064
). In regards to general property inheritance then we haven't yet analysed or modelled that enough yet to work out the best way to map it into LCB. Indeed, the current use of inherited properties in LC are almost all intimately tied to 'themeing' which we are also working on.
In terms of 'common properties', then we are planning allowing a widget to extend another widget at some point. Ideally the root 'widget' type would be more like a (cut-down) MCObject which would sit as a resource (such as an AClip or VClip). Then there would be a derived type which would be more like a (cut-down) MCControl. Then derived types which would have all the same default behaviors as the full MCObject, MCControl. Obviously containers come in here somewhere too. Thus, you would be able to choose how 'existing engine' like your controls are choosing what the base-class is. There is still a fair bit of work to do here though!
In terms of 'synthesized' properties, then @trevordevore suggested a related idea here http://forums.livecode.com/viewtopic.php?f=93&t=23476
; I subsequently posted a slightly more generalized request in BZ (http://quality.runrev.com/show_bug.cgi?id=14901
). You're syntax would be slightly more succinct although we might want to allow you to choose what 'general widget processes' it affects (e.g. synthesize mVar affects redraw, resize).
In terms of property names then there are a few restrictions with identifier casing at the moment down to the fact we are using an LR-based parser (generated using bison) at the moment. Basically all lower-case identifiers are reserved for potential use by syntax - 'angle' is part of syntax rules in the canvas module so you can't use it as an identifier. Since properties are case-insensitive in LCS, you can just use Angle for now. However, this particular case should be easy to make work since the context of the identifier in the 'property' definition is so restricted. BZ http://quality.runrev.com/show_bug.cgi?id=14980