Hi,
Nice project.
You should probably take into consideration that FM3PropertyDescription is an object representing a property. For example:
class := FAMIXClass new numberOfLinesOfCode: 42.
loc := class mooseDescription allAttributes detect: [ :each | each name = #numberOfLinesOfCode ].
class mmGetProperty: loc
==> 42
A possible route would be to add extra constraints (for example related to the type) to this object.
Another option would be to have the numberOfLinesOfCode method return a linesOfText unit. This implies that code like:
group inject: 0 into: [:sum :each | sum + each numberOfLinesOfCode]
would break. We can live with this and fix the breaking places, but it should be a thing to consider.
Cheers,
Doru