class TilePosition { final int col; // x final int row; // y final int width; final int height; const TilePosition({ required this.col, required this.row, this.width = 1, this.height = 1, }); } class PrefectureTileLayout { // Final definitive map (Validated visually) // X: 0..13 (approx width) // Y: 0..11 (approx height) static Map get getLayout => finalLayout; static const Map finalLayout = { // Hokkaido & Tohoku '北海道': TilePosition(col: 11, row: 0, width: 2, height: 2), '青森': TilePosition(col: 11, row: 2), '秋田': TilePosition(col: 10, row: 3), '岩手': TilePosition(col: 11, row: 3), '山形': TilePosition(col: 10, row: 4), '宮城': TilePosition(col: 11, row: 4), '福島': TilePosition(col: 11, row: 5), // Kanto & Koshinetsu '茨城': TilePosition(col: 12, row: 6), '栃木': TilePosition(col: 11, row: 6), '群馬': TilePosition(col: 10, row: 6), '埼玉': TilePosition(col: 10, row: 7), '千葉': TilePosition(col: 11, row: 7), // Right of Saitama '東京': TilePosition(col: 10, row: 8), '神奈川': TilePosition(col: 10, row: 9), '新潟': TilePosition(col: 10, row: 5), // Left of Fukushima (11,5) -> 10,5? Gunma is 10,6. OK. '長野': TilePosition(col: 9, row: 6), // Left of Gunma '山梨': TilePosition(col: 9, row: 7), // Left of Saitama '静岡': TilePosition(col: 9, row: 8), // Left of Tokyo // Hokuriku & Tokai '富山': TilePosition(col: 9, row: 5), // Left of Niigata '石川': TilePosition(col: 8, row: 5), // Left of Toyama '福井': TilePosition(col: 8, row: 6), '岐阜': TilePosition(col: 8, row: 7), '愛知': TilePosition(col: 8, row: 8), '三重': TilePosition(col: 7, row: 8), // Kinki '滋賀': TilePosition(col: 7, row: 7), '京都': TilePosition(col: 6, row: 7), '大阪': TilePosition(col: 6, row: 8), '兵庫': TilePosition(col: 5, row: 7), // Left of Kyoto '奈良': TilePosition(col: 7, row: 9), // Below Shiga/Mie area? (7,9) '和歌山': TilePosition(col: 6, row: 9), // Below Osaka // Chugoku '鳥取': TilePosition(col: 4, row: 7), '岡山': TilePosition(col: 4, row: 8), '島根': TilePosition(col: 3, row: 7), '広島': TilePosition(col: 3, row: 8), '山口': TilePosition(col: 2, row: 8), // Shikoku '香川': TilePosition(col: 5, row: 9), // Below Hyogo/Are (5,7) -> Gap at 8. Correct. '徳島': TilePosition(col: 5, row: 10), '愛媛': TilePosition(col: 4, row: 9), '高知': TilePosition(col: 4, row: 10), // Kyushu (2 columns) '福岡': TilePosition(col: 1, row: 8), '大分': TilePosition(col: 1, row: 9), '宮崎': TilePosition(col: 1, row: 10), '佐賀': TilePosition(col: 0, row: 8), '長崎': TilePosition(col: 0, row: 9), '熊本': TilePosition(col: 0, row: 10), '鹿児島': TilePosition(col: 0, row: 11), // Okinawa '沖縄': TilePosition(col: 0, row: 12), }; }