Quote Originally Posted by khelvan
Not terribly useful, no, when you think about it, for most things. For anything that is located in more than one province, you can't use it (edit: "it" here being defining each province with a unique combination of resources), because of the way the system handles "OR" conditionals.
As I've pointed out elsewhere, multiple lines can deal with ors for capability listings, although not necessarily building requirements. To quote my post:
Well, if we're allowed unlimited unit recruitment lines, in principle we could just give each province an arbitrary eight-bit code and specify each unit-province requirement on its own line with eight hidden resource references. So if a province's code was 00011011 (or 027 in decimal), the line would just be

recruit "unit" 0 requires factions { bartix, } and not hidden_resource A and not hidden_resource B and not hidden_resource C and hidden_resource D and hidden_resource E and not hidden_resource F and hidden_resource H and hidden_resource I ;recruitable in cityx

The only thing is, if there's any limitation on recruitment lines, this will probably hit it—depending on how many units [you']ll generally have per building, and how many provinces an average unit will be trainable in, you could be talking thousands of lines for a single building easily. I know RTR 6.0 manages fine with 400, however, which makes me suspect there might not be a limit.

And if there isn't a limit, frankly, it would be easiest to just get [anyone who knows basic programming] to spend an hour making a simple program to do the lines automatically. In the simplest form, that would need to reference no external data, you would assign each province an arbitrary number and give it the appropriate resources by hand, then just feed the program a line with a list of unit names and faction requirements, each followed by a list of province numbers. So for instance, you'd stick in:

recruit "unit1" 0 requires factions { thrace, greek_cities } and not hidden_resource A and not hidden_resource B and not hidden_resource C and hidden_resource D and hidden_resource E and not hidden_resource F and hidden_resource H and hidden_resource I ;recruitable in city 27
recruit "unit1" 0 requires factions { thrace, greek_cities } and not hidden_resource A and not hidden_resource B and not hidden_resource C and hidden_resource D and hidden_resource E and hidden_resource F and not hidden_resource H and not hidden_resource I ;recruitable in city 28
recruit "unit1" 0 requires factions { thrace, greek_cities } and not hidden_resource A and not hidden_resource B and not hidden_resource C and hidden_resource D and hidden_resource E and hidden_resource F and not hidden_resource H and hidden_resource I ;recruitable in city 29

and so on for all sixteen lines. This could be made easier to read if the program were also given a list of city-number correspondences, so that you could input the names instead of the numbers and the output comments would be understandable without having to reference a chart. But basically, if you have the program it could be easily edited by the non-technical.
So far our testing has discovered no limit to capability lines, incidentally.