Code:
{:name=>"Single Line Standard AI",
:priority=>0.9,
:purpose=>"3 (attack/defend)",
:min_artillery=>0,
:min_infantry=>0,
:min_cavalry=>0,
:factions=>
["austria",
"austrian_rebels",
"bavaria",
"belgium",
"britain",
"british_rebels",
"brittany",
"catalonia",
"cossack_rebels",
"courland",
"crimean_khanate",
"denmark",
"dutch_rebels",
"egy_bedouin",
"egy_britain",
"egy_french_republic",
"egy_mamelukes",
"egy_ottomans",
"france",
"french_rebels",
"greece",
"greek_rebels",
"hannover",
"hessen",
"hungary",
"ireland",
"ita_austrian_alliance",
"ita_french_republic",
"ita_genoa",
"ita_lucca",
"ita_milan",
"ita_modena",
"ita_papal_states",
"ita_parma",
"ita_piedmont",
"ita_trent",
"ita_tuscany",
"ita_venice",
"italian_rebels",
"italy",
"italy_kingdom",
"mecklenburg",
"naples",
"netherlands",
"norway",
"oldenburg",
"ottoman_rebels",
"ottomans",
"portugal",
"portugese_rebels",
"prussia",
"prussian_rebels",
"romania",
"russia",
"sardinia",
"saxony",
"scandinavian_rebels",
"scotland",
"sicily",
"slavic_rebels",
"spa_britain",
"spa_france",
"spa_portugal",
"spa_spain",
"spain",
"spanish_rebels",
"sweden",
"swiss_confederation",
"tut_britain",
"tut_france",
"tut_sardinia",
"tut_swiss_confederation",
"united_netherlands",
"westphalia",
"wurttemberg"],
:lines=>
[{:type=>:absolute,
:priority=>1.0,
:shape=>"0 (line)",
:spacing=>1.0,
:crescent_yoffset=>0.0,
:x=>0.0,
:y=>0.0,
:min_threshold=>0,
:max_threshold=>4,
:pairs=>
[{:priority=>0.9, :unit_class=>"14 (infantry_elite)"},
{:priority=>0.9, :unit_class=>"15 (infantry_grenadiers)"},
{:priority=>0.9, :unit_class=>"18 (infantry_line)"},
{:priority=>0.9, :unit_class=>"20 (infantry_militia)"},
{:priority=>0.3, :unit_class=>"17 (infantry_light)"},
{:priority=>0.7, :unit_class=>"21 (infantry_mob)"},
{:priority=>0.05, :unit_class=>"46 (any)"},
{:priority=>0.2, :unit_class=>"19 (infantry_melee)"},
{:priority=>0.3, :unit_class=>"22 (infantry_skirmishers)"},
{:priority=>0.5, :unit_class=>"16 (infantry_irregulars)"}]},
{:type=>:relative,
:priority=>1.0,
:relative_to=>0,
:shape=>"0 (line)",
:spacing=>1.0,
:crescent_yoffset=>0.0,
:x=>1.0,
:y=>0.0,
:min_threshold=>0,
:max_threshold=>4,
:pairs=>
[{:priority=>0.7, :unit_class=>"14 (infantry_elite)"},
{:priority=>0.7, :unit_class=>"15 (infantry_grenadiers)"},
{:priority=>0.9, :unit_class=>"18 (infantry_line)"},
{:priority=>0.7, :unit_class=>"20 (infantry_militia)"},
{:priority=>0.5, :unit_class=>"17 (infantry_light)"},
{:priority=>0.3, :unit_class=>"21 (infantry_mob)"},
{:priority=>0.05, :unit_class=>"46 (any)"},
{:priority=>0.7, :unit_class=>"19 (infantry_melee)"},
{:priority=>0.3, :unit_class=>"22 (infantry_skirmishers)"},
{:priority=>0.5, :unit_class=>"16 (infantry_irregulars)"}]},
{:type=>:relative,
:priority=>1.0,
:relative_to=>0,
:shape=>"0 (line)",
:spacing=>1.0,
:crescent_yoffset=>0.0,
:x=>-1.0,
:y=>0.0,
:min_threshold=>0,
:max_threshold=>6,
:pairs=>
[{:priority=>0.9, :unit_class=>"14 (infantry_elite)"},
{:priority=>0.9, :unit_class=>"15 (infantry_grenadiers)"},
{:priority=>0.8, :unit_class=>"18 (infantry_line)"},
{:priority=>0.5, :unit_class=>"20 (infantry_militia)"},
{:priority=>0.3, :unit_class=>"17 (infantry_light)"},
{:priority=>0.3, :unit_class=>"21 (infantry_mob)"},
{:priority=>0.05, :unit_class=>"46 (any)"},
{:priority=>0.8, :unit_class=>"19 (infantry_melee)"},
{:priority=>0.1, :unit_class=>"22 (infantry_skirmishers)"},
{:priority=>0.2, :unit_class=>"16 (infantry_irregulars)"}]},
{:type=>:relative,
:priority=>0.9,
:relative_to=>1,
:shape=>"0 (line)",
:spacing=>10.0,
:crescent_yoffset=>0.0,
:x=>1.0,
:y=>0.0,
:min_threshold=>0,
:max_threshold=>-1,
:pairs=>
[{:priority=>0.05, :unit_class=>"46 (any)"},
{:priority=>1.0, :unit_class=>"17 (infantry_light)"},
{:priority=>0.1, :unit_class=>"21 (infantry_mob)"},
{:priority=>1.0, :unit_class=>"19 (infantry_melee)"},
{:priority=>1.0, :unit_class=>"22 (infantry_skirmishers)"},
{:priority=>1.0, :unit_class=>"16 (infantry_irregulars)"}]},
{:type=>:relative,
:priority=>0.9,
:relative_to=>2,
:shape=>"0 (line)",
:spacing=>10.0,
:crescent_yoffset=>0.0,
:x=>-1.0,
:y=>0.0,
:min_threshold=>0,
:max_threshold=>-1,
:pairs=>
[{:priority=>0.05, :unit_class=>"46 (any)"},
{:priority=>1.0, :unit_class=>"17 (infantry_light)"},
{:priority=>0.1, :unit_class=>"21 (infantry_mob)"},
{:priority=>1.0, :unit_class=>"19 (infantry_melee)"},
{:priority=>1.0, :unit_class=>"22 (infantry_skirmishers)"},
{:priority=>1.0, :unit_class=>"16 (infantry_irregulars)"}]},
{:type=>:relative,
:priority=>1.0,
:relative_to=>0,
:shape=>"0 (line)",
:spacing=>2.0,
:crescent_yoffset=>0.0,
:x=>0.0,
:y=>-30.0,
:min_threshold=>0,
:max_threshold=>-1,
:pairs=>[{:priority=>1.0, :unit_class=>"12 (general)"}]},
{:type=>:relative,
:priority=>1.0,
:relative_to=>2,
:shape=>"0 (line)",
:spacing=>2.0,
:crescent_yoffset=>0.0,
:x=>0.0,
:y=>-30.0,
:min_threshold=>0,
:max_threshold=>-1,
:pairs=>[{:priority=>1.0, :unit_class=>"12 (general)"}]},
{:type=>:relative,
:priority=>1.0,
:relative_to=>1,
:shape=>"0 (line)",
:spacing=>2.0,
:crescent_yoffset=>0.0,
:x=>0.0,
:y=>-30.0,
:min_threshold=>0,
:max_threshold=>-1,
:pairs=>[{:priority=>1.0, :unit_class=>"12 (general)"}]},
{:type=>:relative,
:priority=>1.0,
:relative_to=>3,
:shape=>"0 (line)",
:spacing=>10.0,
:crescent_yoffset=>0.0,
:x=>-50.0,
:y=>-50.0,
:min_threshold=>0,
:max_threshold=>-1,
:pairs=>
[{:priority=>0.9, :unit_class=>"5 (cavalry_irregular)"},
{:priority=>0.9, :unit_class=>"6 (cavalry_lancers)"},
{:priority=>0.9, :unit_class=>"7 (cavalry_light)"},
{:priority=>0.9, :unit_class=>"8 (cavalry_missile)"},
{:priority=>0.9, :unit_class=>"9 (cavalry_standard)"}]},
{:type=>:relative,
:priority=>1.0,
:relative_to=>4,
:shape=>"0 (line)",
:spacing=>10.0,
:crescent_yoffset=>0.0,
:x=>50.0,
:y=>-50.0,
:min_threshold=>0,
:max_threshold=>-1,
:pairs=>
[{:priority=>0.9, :unit_class=>"5 (cavalry_irregular)"},
{:priority=>0.9, :unit_class=>"6 (cavalry_lancers)"},
{:priority=>0.9, :unit_class=>"7 (cavalry_light)"},
{:priority=>0.9, :unit_class=>"8 (cavalry_missile)"},
{:priority=>0.9, :unit_class=>"9 (cavalry_standard)"}]},
{:type=>:relative,
:priority=>1.0,
:relative_to=>5,
:shape=>"0 (line)",
:spacing=>2.0,
:crescent_yoffset=>0.0,
:x=>25.0,
:y=>-20.0,
:min_threshold=>0,
:max_threshold=>3,
:pairs=>
[{:priority=>1.0, :unit_class=>"4 (cavalry_heavy)"},
{:priority=>0.9, :unit_class=>"10 (dragoons)"}]},
{:type=>:relative,
:priority=>1.0,
:relative_to=>5,
:shape=>"0 (line)",
:spacing=>2.0,
:crescent_yoffset=>0.0,
:x=>-25.0,
:y=>-20.0,
:min_threshold=>0,
:max_threshold=>3,
:pairs=>
[{:priority=>1.0, :unit_class=>"4 (cavalry_heavy)"},
{:priority=>0.9, :unit_class=>"10 (dragoons)"}]},
{:type=>:relative,
:priority=>1.0,
:relative_to=>1,
:shape=>"0 (line)",
:spacing=>10.0,
:crescent_yoffset=>0.0,
:x=>0.0,
:y=>-20.0,
:min_threshold=>0,
:max_threshold=>-1,
:pairs=>
[{:priority=>0.9, :unit_class=>"1 (artillery_foot)"},
{:priority=>0.9, :unit_class=>"0 (artillery_fixed)"},
{:priority=>0.9, :unit_class=>"2 (artillery_horse)"}]},
{:type=>:relative,
:priority=>1.0,
:relative_to=>2,
:shape=>"0 (line)",
:spacing=>10.0,
:crescent_yoffset=>0.0,
:x=>0.0,
:y=>-20.0,
:min_threshold=>0,
:max_threshold=>-1,
:pairs=>
[{:priority=>0.9, :unit_class=>"1 (artillery_foot)"},
{:priority=>0.9, :unit_class=>"0 (artillery_fixed)"},
{:priority=>0.9, :unit_class=>"2 (artillery_horse)"}]},
{:type=>:spanning, :blocks=>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]}]},
Needs a place for elephants though, perhaps further cavalry seperation too.