diff --git a/api.rb b/api.rb index ae52f1adcc..5c870d126a 100644 --- a/api.rb +++ b/api.rb @@ -11,6 +11,7 @@ require_relative 'models' require_rel './lib' require_rel './models' +require_relative 'lib/engine/test_tiles' class Api < Roda opts[:check_dynamic_arity] = false @@ -132,7 +133,16 @@ class Api < Roda r.on 'tiles' do parts = request.path.split('/') - titles = parts.size == 4 ? parts[2].split(/[+ ]/) : [] + + titles = + if parts.size == 4 + parts[2].split(/[+ ]/) + elsif parts[2] == 'test' + Engine::TestTiles::TEST_TILES.keys.compact + else + [] + end + render(titles: titles) end diff --git a/assets/app/app.rb b/assets/app/app.rb index f58eaa8bc0..2e04d90992 100644 --- a/assets/app/app.rb +++ b/assets/app/app.rb @@ -77,7 +77,7 @@ def render_content when /about/ h(View::About) when /tiles/ - h(View::TilesPage, route: @app_route) + h(View::TilesPage, route: @app_route, connection: @connection) when /map/ h(View::MapPage, route: @app_route) when /market/ diff --git a/assets/app/view/tiles.rb b/assets/app/view/tiles.rb index 2431538d69..45d1aa7e35 100644 --- a/assets/app/view/tiles.rb +++ b/assets/app/view/tiles.rb @@ -15,6 +15,14 @@ class Tiles < Snabberb::Component padding: '0 0.7rem 0 0.2rem', }, }.freeze + BOTTOM_LINE_PROPS = { + style: { + height: '0.9rem', + padding: '0 0.7rem 0 0.2rem', + bottom: '3px', + position: 'absolute', + }, + }.freeze TEXT_PROPS = { style: { float: 'left', @@ -39,29 +47,51 @@ def render_tile_blocks( rotations: nil, hex_coordinates: nil, clickable: false, - extra_children: [] + location_on_plain: false, + extra_children: [], + top_text: nil, + fixture_id: nil, + fixture_title: nil, + action: nil ) block_props = { style: { width: "#{WIDTH * scale}px", height: "#{HEIGHT * scale}px", + position: 'relative', }, } tile ||= Engine::Tile.for(name) - loc_name = location_name || tile.location_name if (tile.cities + tile.towns + tile.offboards).any? + loc_name = location_name || tile.location_name if !(tile.cities + tile.towns + tile.offboards).empty? || location_on_plain rotations = [0] if tile.preprinted || !rotations rotations.map do |rotation| tile.rotate!(rotation) - unless setting_for(@hide_tile_names) + if setting_for(@hide_tile_names) + text = nil + elsif top_text + text = top_text + else text = tile.preprinted ? '' : '#' text += name - text += "-#{rotation}" unless rotations == [0] end + + text += "-#{rotation}" if !setting_for(@hide_tile_names) && rotations != [0] + + bottom_text = '' + if fixture_id + bottom_text = fixture_id + href = "/fixture/#{fixture_title}/#{fixture_id}" + if action + bottom_text += " action=#{action}" + href += "?action=#{action}" + end + end + count = tile.unlimited ? '∞' : num.to_s hex = Engine::Hex.new(hex_coordinates || 'A1', @@ -88,6 +118,11 @@ def render_tile_blocks( ), ]), ]), + h(:div, BOTTOM_LINE_PROPS, [ + h(:div, TEXT_PROPS, [ + h(:a, { attrs: { href: href } }, bottom_text), + ]), + ]), ]) end end diff --git a/assets/app/view/tiles_page.rb b/assets/app/view/tiles_page.rb index 9d6b0253ca..c0a3a213fa 100644 --- a/assets/app/view/tiles_page.rb +++ b/assets/app/view/tiles_page.rb @@ -1,14 +1,17 @@ # frozen_string_literal: true +require 'game_manager' +require 'lib/connection' +require 'engine/test_tiles' require 'lib/params' require 'view/tiles' -require_relative '../game_class_loader' module View class TilesPage < Tiles - include GameClassLoader + include GameManager needs :route + needs :fixture_data, default: {}, store: true ROUTE_FORMAT = %r{/tiles/([^/?]*)(?:/([^?]+))?}.freeze @@ -51,6 +54,10 @@ def render ]) + elsif dest == 'test' + + render_test_tiles + elsif dest == 'custom' location_name = Lib::Params['n'] color = Lib::Params['c'] || 'yellow' @@ -112,7 +119,7 @@ def render end end - def render_individual_tile_from_game(game, hex_or_tile_id) + def render_individual_tile_from_game(game, hex_or_tile_id, scale: 3.0, **kwargs) id, rotation = hex_or_tile_id.split('-') rotations = rotation ? [rotation.to_i] : @rotations @@ -132,9 +139,10 @@ def render_individual_tile_from_game(game, hex_or_tile_id) layout: game.class::LAYOUT, tile: tile, location_name: tile.location_name || @location_name, - scale: 3.0, + scale: scale, rotations: rotations, hex_coordinates: hex_coordinates, + **kwargs, ) end @@ -246,5 +254,108 @@ def render_toggle_button h(:'button.small', { on: { click: toggle } }, "Tile Names #{setting_for(@hide_tile_names) ? '❌' : '✅'}"), ]) end + + def render_test_tiles + # see /lib/engine/test_tiles.rb + test_tiles = Engine::TestTiles::TEST_TILES + + scale = 2.0 + + return h(:div, [h(:p, 'Loading...')]) unless @connection + + rendered_test_tiles = [] + + test_tiles.each do |title, fixtures| + if title + game_class = load_game_class(title) + else + fixtures[nil][nil].each do |hex_or_tile, opts| + %i[flat pointy].map do |layout_| + rendered_test_tiles.concat( + render_tile_blocks(hex_or_tile, layout: layout_, scale: scale, rotations: @rotations, **opts) + ) + end + end + next + end + + fixtures.each do |fixture, actions| + if fixture + if @fixture_data[fixture] + actions.each do |action, hex_or_tiles| + kwargs = action ? { at_action: action } : {} + + game = Engine::Game.load(@fixture_data[fixture], **kwargs) + + hex_or_tiles.each do |hex_or_tile, opts| + hex_coordinates = hex_or_tile + tile = game.hex_by_id(hex_coordinates).tile + + rendered_test_tiles.concat( + render_tile_blocks( + hex_coordinates, + layout: game_class::LAYOUT, + tile: tile, + location_name: tile.location_name, + location_on_plain: true, + scale: scale, + rotations: [tile.rotation], + hex_coordinates: hex_coordinates, + name_prefix: title, + top_text: "#{title}: #{hex_or_tile}", + fixture_id: fixture, + fixture_title: title, + action: action, + **opts, + ) + ) + end + end + + elsif @connection + # load the fixture game data + @connection.get("/fixtures/#{title}/#{fixture}.json", '') do |data| + @fixture_data[fixture] = data + store(:fixture_data, @fixture_data, skip: false) + end + + # render placeholder tiles which will be replaced once the + # appropriate fixture is loaded and processed + actions.each do |action, hex_or_tiles| + hex_or_tiles.each do |hex_or_tile, opts| + rendered_test_tiles.concat( + render_tile_blocks( + 'blank', + layout: game_class::LAYOUT, + location_name: 'Loading Fixture...', + location_on_plain: true, + scale: scale, + name_prefix: title, + top_text: "#{title}: #{hex_or_tile}", + fixture_id: fixture, + fixture_title: title, + action: action, + **opts + ) + ) + end + end + end + + else + players = Array.new(game_class::PLAYER_RANGE.max) { |n| "Player #{n + 1}" } + game = game_class.new(players) + actions[nil].each do |hex_or_tile, opts| + rendered_test_tiles.concat( + Array(render_individual_tile_from_game(game, hex_or_tile, scale: scale, top_text: "#{title}: #{hex_or_tile}", + **opts)) + ) + end + end + end + end + + h('div#tiles', rendered_test_tiles) + end end end diff --git a/lib/engine/test_tiles.rb b/lib/engine/test_tiles.rb new file mode 100644 index 0000000000..46df65909d --- /dev/null +++ b/lib/engine/test_tiles.rb @@ -0,0 +1,80 @@ +# frozen_string_literal: true + +module Engine + module TestTiles + # each entry is a Hash containing: + # - tile / hex id + # - game title (optional) + # - fixture (optional, requires game title; if not given, the starting state + # of the hex/tile is used) + # - action id (optional, requires fixture; if not given, the fixture is + # processed to its conclusion) + # - other kwargs for View::Tiles#render_tile_blocks + TEST_TILES_HUMAN_READABLE = [ + { tile: '45' }, + + { tile: 'H11', title: '1822PNW' }, + { tile: 'O8', title: '1822PNW' }, + { tile: 'I12', title: '1822PNW' }, + + # open: https://github.com/tobymao/18xx/issues/5981 + { tile: 'H22', title: '1828.Games' }, + + # open: https://github.com/tobymao/18xx/issues/8178 + { tile: 'H18', title: '1830', fixture: '26855', action: 385 }, + + { tile: 'C15', title: '1846' }, + + # open: https://github.com/tobymao/18xx/issues/5167 + { tile: 'N11', title: '1856', fixture: 'hotseat005', action: 113 }, + + { tile: 'L0', title: '1868 Wyoming' }, + { tile: 'WRC', title: '1868 Wyoming' }, + { tile: 'F12', title: '1868 Wyoming', fixture: '1868WY_5', action: 835 }, + { tile: 'L0', title: '1868 Wyoming', fixture: '1868WY_5', action: 835 }, + { tile: 'J12', title: '1868 Wyoming', fixture: '1868WY_5', action: 835 }, + { tile: 'J12', title: '1868 Wyoming', fixture: '1868WY_5' }, + + # open: https://github.com/tobymao/18xx/issues/4992 + { tile: 'I11', title: '1882', fixture: '5236', action: 303 }, + + # open: https://github.com/tobymao/18xx/issues/6604 + { tile: 'L41', title: '1888' }, + + # open: https://github.com/tobymao/18xx/issues/5153 + { tile: 'IR7', title: '18Ireland' }, + { tile: 'IR8', title: '18Ireland' }, + + # open: https://github.com/tobymao/18xx/issues/5673 + { tile: 'D19', title: '18Mag', fixture: 'hs_tfagolvf_76622' }, + { tile: 'I14', title: '18Mag', fixture: 'hs_tfagolvf_76622' }, + + # open: https://github.com/tobymao/18xx/issues/7765 + { tile: '470', title: '18MEX' }, + { tile: '475', title: '18MEX' }, + { tile: '479P', title: '18MEX' }, + { tile: '485P', title: '18MEX' }, + { tile: '486P', title: '18MEX' }, + ].freeze + + # rearrange the above to a structure that can be more efficiently iterated + # over--each fixture only needs to be fetched once, and only needs to be + # processed to each unique action once + # + # defining with this structure directly would confusing to read; for generic + # tiles, all of the keys in the nested Hash would end up as `nil` + TEST_TILES = + TEST_TILES_HUMAN_READABLE.each_with_object({}) do |opts, test_tiles| + tile = opts.delete(:tile) + title = opts.delete(:title) + fixture = opts.delete(:fixture) + action = opts.delete(:action) + + test_tiles[title] ||= {} + test_tiles[title][fixture] ||= {} + test_tiles[title][fixture][action] ||= [] + + test_tiles[title][fixture][action] << [tile, opts] + end.freeze + end +end diff --git a/public/fixtures b/public/fixtures deleted file mode 120000 index 68ecbd91b4..0000000000 --- a/public/fixtures +++ /dev/null @@ -1 +0,0 @@ -../spec/fixtures \ No newline at end of file diff --git a/spec/fixtures/18 Los Angeles 2/101655.json b/public/fixtures/18 Los Angeles 2/101655.json similarity index 100% rename from spec/fixtures/18 Los Angeles 2/101655.json rename to public/fixtures/18 Los Angeles 2/101655.json diff --git a/spec/fixtures/18 Los Angeles/19984.json b/public/fixtures/18 Los Angeles/19984.json similarity index 100% rename from spec/fixtures/18 Los Angeles/19984.json rename to public/fixtures/18 Los Angeles/19984.json diff --git a/spec/fixtures/18 Los Angeles/hs_srwgrtvq_1602711223.json b/public/fixtures/18 Los Angeles/hs_srwgrtvq_1602711223.json similarity index 100% rename from spec/fixtures/18 Los Angeles/hs_srwgrtvq_1602711223.json rename to public/fixtures/18 Los Angeles/hs_srwgrtvq_1602711223.json diff --git a/spec/fixtures/1817/15528.json b/public/fixtures/1817/15528.json similarity index 100% rename from spec/fixtures/1817/15528.json rename to public/fixtures/1817/15528.json diff --git a/spec/fixtures/1817/16281.json b/public/fixtures/1817/16281.json similarity index 100% rename from spec/fixtures/1817/16281.json rename to public/fixtures/1817/16281.json diff --git a/spec/fixtures/1817/16852.json b/public/fixtures/1817/16852.json similarity index 100% rename from spec/fixtures/1817/16852.json rename to public/fixtures/1817/16852.json diff --git a/spec/fixtures/1817/20758.json b/public/fixtures/1817/20758.json similarity index 100% rename from spec/fixtures/1817/20758.json rename to public/fixtures/1817/20758.json diff --git a/spec/fixtures/1817NA/20584.json b/public/fixtures/1817NA/20584.json similarity index 100% rename from spec/fixtures/1817NA/20584.json rename to public/fixtures/1817NA/20584.json diff --git a/spec/fixtures/1817NA/25351.json b/public/fixtures/1817NA/25351.json similarity index 100% rename from spec/fixtures/1817NA/25351.json rename to public/fixtures/1817NA/25351.json diff --git a/spec/fixtures/1817NA/25363.json b/public/fixtures/1817NA/25363.json similarity index 100% rename from spec/fixtures/1817NA/25363.json rename to public/fixtures/1817NA/25363.json diff --git a/spec/fixtures/1817WO/19926.json b/public/fixtures/1817WO/19926.json similarity index 100% rename from spec/fixtures/1817WO/19926.json rename to public/fixtures/1817WO/19926.json diff --git a/spec/fixtures/1822/33845.json b/public/fixtures/1822/33845.json similarity index 100% rename from spec/fixtures/1822/33845.json rename to public/fixtures/1822/33845.json diff --git a/spec/fixtures/1822/33867.json b/public/fixtures/1822/33867.json similarity index 100% rename from spec/fixtures/1822/33867.json rename to public/fixtures/1822/33867.json diff --git a/spec/fixtures/1822/35936.json b/public/fixtures/1822/35936.json similarity index 100% rename from spec/fixtures/1822/35936.json rename to public/fixtures/1822/35936.json diff --git a/spec/fixtures/1822/35975.json b/public/fixtures/1822/35975.json similarity index 100% rename from spec/fixtures/1822/35975.json rename to public/fixtures/1822/35975.json diff --git a/spec/fixtures/1822/36685.json b/public/fixtures/1822/36685.json similarity index 100% rename from spec/fixtures/1822/36685.json rename to public/fixtures/1822/36685.json diff --git a/spec/fixtures/1822/hs_lxemeslq_30797.json b/public/fixtures/1822/hs_lxemeslq_30797.json similarity index 100% rename from spec/fixtures/1822/hs_lxemeslq_30797.json rename to public/fixtures/1822/hs_lxemeslq_30797.json diff --git a/spec/fixtures/1822_PNW/p19_merge_coal_company_1.json b/public/fixtures/1822_PNW/p19_merge_coal_company_1.json similarity index 100% rename from spec/fixtures/1822_PNW/p19_merge_coal_company_1.json rename to public/fixtures/1822_PNW/p19_merge_coal_company_1.json diff --git a/spec/fixtures/1822_PNW/p19_merge_coal_company_2.json b/public/fixtures/1822_PNW/p19_merge_coal_company_2.json similarity index 100% rename from spec/fixtures/1822_PNW/p19_merge_coal_company_2.json rename to public/fixtures/1822_PNW/p19_merge_coal_company_2.json diff --git a/spec/fixtures/1822_PNW/p19_merge_coal_company_3.json b/public/fixtures/1822_PNW/p19_merge_coal_company_3.json similarity index 100% rename from spec/fixtures/1822_PNW/p19_merge_coal_company_3.json rename to public/fixtures/1822_PNW/p19_merge_coal_company_3.json diff --git a/spec/fixtures/1822_PNW/p19_merge_coal_company_4.json b/public/fixtures/1822_PNW/p19_merge_coal_company_4.json similarity index 100% rename from spec/fixtures/1822_PNW/p19_merge_coal_company_4.json rename to public/fixtures/1822_PNW/p19_merge_coal_company_4.json diff --git a/spec/fixtures/1825/69820.json b/public/fixtures/1825/69820.json similarity index 100% rename from spec/fixtures/1825/69820.json rename to public/fixtures/1825/69820.json diff --git a/spec/fixtures/1828.Games/23366.json b/public/fixtures/1828.Games/23366.json similarity index 100% rename from spec/fixtures/1828.Games/23366.json rename to public/fixtures/1828.Games/23366.json diff --git a/spec/fixtures/1830/26855.json b/public/fixtures/1830/26855.json similarity index 100% rename from spec/fixtures/1830/26855.json rename to public/fixtures/1830/26855.json diff --git a/spec/fixtures/1830/29133.json b/public/fixtures/1830/29133.json similarity index 100% rename from spec/fixtures/1830/29133.json rename to public/fixtures/1830/29133.json diff --git a/spec/fixtures/1836Jr30/2809.json b/public/fixtures/1836Jr30/2809.json similarity index 100% rename from spec/fixtures/1836Jr30/2809.json rename to public/fixtures/1836Jr30/2809.json diff --git a/spec/fixtures/1836Jr30/2851.json b/public/fixtures/1836Jr30/2851.json similarity index 100% rename from spec/fixtures/1836Jr30/2851.json rename to public/fixtures/1836Jr30/2851.json diff --git a/spec/fixtures/1836jr56/README.md b/public/fixtures/1836jr56/README.md similarity index 100% rename from spec/fixtures/1836jr56/README.md rename to public/fixtures/1836jr56/README.md diff --git a/spec/fixtures/1836jr56/hotseat002.json b/public/fixtures/1836jr56/hotseat002.json similarity index 100% rename from spec/fixtures/1836jr56/hotseat002.json rename to public/fixtures/1836jr56/hotseat002.json diff --git a/spec/fixtures/1836jr56/hotseat003.json b/public/fixtures/1836jr56/hotseat003.json similarity index 100% rename from spec/fixtures/1836jr56/hotseat003.json rename to public/fixtures/1836jr56/hotseat003.json diff --git a/spec/fixtures/1840/3player.json b/public/fixtures/1840/3player.json similarity index 100% rename from spec/fixtures/1840/3player.json rename to public/fixtures/1840/3player.json diff --git a/spec/fixtures/1846 2p Variant/11098.json b/public/fixtures/1846 2p Variant/11098.json similarity index 100% rename from spec/fixtures/1846 2p Variant/11098.json rename to public/fixtures/1846 2p Variant/11098.json diff --git a/spec/fixtures/1846 2p Variant/hs_pzdxtics_1601680033.json b/public/fixtures/1846 2p Variant/hs_pzdxtics_1601680033.json similarity index 100% rename from spec/fixtures/1846 2p Variant/hs_pzdxtics_1601680033.json rename to public/fixtures/1846 2p Variant/hs_pzdxtics_1601680033.json diff --git a/spec/fixtures/1846/10264.json b/public/fixtures/1846/10264.json similarity index 100% rename from spec/fixtures/1846/10264.json rename to public/fixtures/1846/10264.json diff --git a/spec/fixtures/1846/12666.json b/public/fixtures/1846/12666.json similarity index 100% rename from spec/fixtures/1846/12666.json rename to public/fixtures/1846/12666.json diff --git a/spec/fixtures/1846/16904.json b/public/fixtures/1846/16904.json similarity index 100% rename from spec/fixtures/1846/16904.json rename to public/fixtures/1846/16904.json diff --git a/spec/fixtures/1846/19962.json b/public/fixtures/1846/19962.json similarity index 100% rename from spec/fixtures/1846/19962.json rename to public/fixtures/1846/19962.json diff --git a/spec/fixtures/1846/20381.json b/public/fixtures/1846/20381.json similarity index 100% rename from spec/fixtures/1846/20381.json rename to public/fixtures/1846/20381.json diff --git a/spec/fixtures/1846/3099.json b/public/fixtures/1846/3099.json similarity index 100% rename from spec/fixtures/1846/3099.json rename to public/fixtures/1846/3099.json diff --git a/spec/fixtures/1846/hs_cvjhogoy_1599504419.json b/public/fixtures/1846/hs_cvjhogoy_1599504419.json similarity index 100% rename from spec/fixtures/1846/hs_cvjhogoy_1599504419.json rename to public/fixtures/1846/hs_cvjhogoy_1599504419.json diff --git a/spec/fixtures/1846/hs_gcumggit_1595777670.json b/public/fixtures/1846/hs_gcumggit_1595777670.json similarity index 100% rename from spec/fixtures/1846/hs_gcumggit_1595777670.json rename to public/fixtures/1846/hs_gcumggit_1595777670.json diff --git a/spec/fixtures/1846/hs_sudambau_1600037415.json b/public/fixtures/1846/hs_sudambau_1600037415.json similarity index 100% rename from spec/fixtures/1846/hs_sudambau_1600037415.json rename to public/fixtures/1846/hs_sudambau_1600037415.json diff --git a/spec/fixtures/1848/1848_game.json b/public/fixtures/1848/1848_game.json similarity index 100% rename from spec/fixtures/1848/1848_game.json rename to public/fixtures/1848/1848_game.json diff --git a/spec/fixtures/1848/online.json b/public/fixtures/1848/online.json similarity index 100% rename from spec/fixtures/1848/online.json rename to public/fixtures/1848/online.json diff --git a/spec/fixtures/1849/27939.json b/public/fixtures/1849/27939.json similarity index 100% rename from spec/fixtures/1849/27939.json rename to public/fixtures/1849/27939.json diff --git a/spec/fixtures/1850/1.json b/public/fixtures/1850/1.json similarity index 100% rename from spec/fixtures/1850/1.json rename to public/fixtures/1850/1.json diff --git a/spec/fixtures/1850/115810.json b/public/fixtures/1850/115810.json similarity index 100% rename from spec/fixtures/1850/115810.json rename to public/fixtures/1850/115810.json diff --git a/spec/fixtures/1856/51745.json b/public/fixtures/1856/51745.json similarity index 100% rename from spec/fixtures/1856/51745.json rename to public/fixtures/1856/51745.json diff --git a/spec/fixtures/1856/89363.json b/public/fixtures/1856/89363.json similarity index 100% rename from spec/fixtures/1856/89363.json rename to public/fixtures/1856/89363.json diff --git a/spec/fixtures/1856/README.md b/public/fixtures/1856/README.md similarity index 100% rename from spec/fixtures/1856/README.md rename to public/fixtures/1856/README.md diff --git a/spec/fixtures/1856/hotseat001.json b/public/fixtures/1856/hotseat001.json similarity index 100% rename from spec/fixtures/1856/hotseat001.json rename to public/fixtures/1856/hotseat001.json diff --git a/spec/fixtures/1856/hotseat004.json b/public/fixtures/1856/hotseat004.json similarity index 100% rename from spec/fixtures/1856/hotseat004.json rename to public/fixtures/1856/hotseat004.json diff --git a/spec/fixtures/1856/hotseat005.json b/public/fixtures/1856/hotseat005.json similarity index 100% rename from spec/fixtures/1856/hotseat005.json rename to public/fixtures/1856/hotseat005.json diff --git a/spec/fixtures/1856/hotseat006.json b/public/fixtures/1856/hotseat006.json similarity index 100% rename from spec/fixtures/1856/hotseat006.json rename to public/fixtures/1856/hotseat006.json diff --git a/spec/fixtures/1856/hotseat007.json b/public/fixtures/1856/hotseat007.json similarity index 100% rename from spec/fixtures/1856/hotseat007.json rename to public/fixtures/1856/hotseat007.json diff --git a/spec/fixtures/1860/19354.json b/public/fixtures/1860/19354.json similarity index 100% rename from spec/fixtures/1860/19354.json rename to public/fixtures/1860/19354.json diff --git a/spec/fixtures/1861/167259.json b/public/fixtures/1861/167259.json similarity index 100% rename from spec/fixtures/1861/167259.json rename to public/fixtures/1861/167259.json diff --git a/spec/fixtures/1861/29683.json b/public/fixtures/1861/29683.json similarity index 100% rename from spec/fixtures/1861/29683.json rename to public/fixtures/1861/29683.json diff --git a/spec/fixtures/1862/46925.json b/public/fixtures/1862/46925.json similarity index 100% rename from spec/fixtures/1862/46925.json rename to public/fixtures/1862/46925.json diff --git a/spec/fixtures/1867/21268.json b/public/fixtures/1867/21268.json similarity index 100% rename from spec/fixtures/1867/21268.json rename to public/fixtures/1867/21268.json diff --git a/spec/fixtures/1867/hs_ahjzadkh_19792.json b/public/fixtures/1867/hs_ahjzadkh_19792.json similarity index 100% rename from spec/fixtures/1867/hs_ahjzadkh_19792.json rename to public/fixtures/1867/hs_ahjzadkh_19792.json diff --git a/spec/fixtures/1867/hs_wuveadew_21268.json b/public/fixtures/1867/hs_wuveadew_21268.json similarity index 100% rename from spec/fixtures/1867/hs_wuveadew_21268.json rename to public/fixtures/1867/hs_wuveadew_21268.json diff --git a/public/fixtures/1868 Wyoming/1868WY_5.json b/public/fixtures/1868 Wyoming/1868WY_5.json new file mode 100644 index 0000000000..fd3c8bccb8 --- /dev/null +++ b/public/fixtures/1868 Wyoming/1868WY_5.json @@ -0,0 +1 @@ +{"id":5,"description":"Caspar or Casper, it's where it's at.","user":{"id":1,"name":"th3tick"},"players":[{"id":5,"name":"JJones"},{"id":1,"name":"th3tick"},{"id":2,"name":"Ulukai"},{"id":4,"name":"Shingoi"}],"min_players":4,"max_players":4,"title":"1868 Wyoming","settings":{"seed":676662162,"is_async":null,"unlisted":true,"auto_routing":false,"player_order":null,"optional_rules":["async","p2_p6_choice"]},"user_settings":null,"status":"finished","turn":6,"round":"Operating Round","acting":[5,1,2,4],"result":{"1":4943,"2":8463,"4":7360,"5":5882},"actions":[{"type":"bid","entity":5,"entity_type":"player","id":1,"created_at":1675748629,"company":"P4","price":95},{"type":"bid","entity":1,"entity_type":"player","id":2,"created_at":1675750349,"company":"P2","price":50},{"type":"bid","entity":2,"entity_type":"player","id":3,"created_at":1675750693,"company":"P7","price":105},{"type":"bid","entity":4,"entity_type":"player","id":4,"created_at":1675750977,"company":"P10","price":185},{"type":"bid","entity":5,"entity_type":"player","id":5,"created_at":1675751133,"company":"P2","price":55},{"type":"bid","entity":1,"entity_type":"player","id":6,"created_at":1675751306,"company":"P10","price":190},{"type":"bid","entity":2,"entity_type":"player","id":7,"created_at":1675751557,"company":"P9","price":155},{"type":"bid","entity":4,"entity_type":"player","id":8,"created_at":1675768414,"company":"P5","price":105},{"type":"bid","entity":5,"entity_type":"player","id":9,"created_at":1675769237,"company":"P1","price":40},{"type":"bid","entity":1,"entity_type":"player","id":10,"created_at":1675779081,"company":"P2","price":60},{"type":"pass","entity":5,"entity_type":"player","id":11,"created_at":1675779213},{"type":"bid","entity":1,"entity_type":"player","id":12,"created_at":1675782189,"company":"P2c","price":45},{"type":"bid","entity":1,"entity_type":"player","id":13,"created_at":1675782233,"company":"P11","price":205},{"type":"pass","entity":2,"entity_type":"player","id":14,"user":2,"created_at":1675822975},{"type":"undo","entity":4,"entity_type":"player","id":15,"user":2,"created_at":1675822986},{"type":"bid","entity":2,"entity_type":"player","id":16,"created_at":1675823099,"company":"P5","price":110},{"type":"bid","entity":4,"entity_type":"player","id":17,"created_at":1675826781,"company":"P6","price":105},{"type":"pass","entity":5,"entity_type":"player","id":18,"created_at":1675834020},{"type":"bid","entity":5,"entity_type":"player","id":19,"created_at":1675834071,"company":"P4b","price":90},{"type":"bid","entity":4,"entity_type":"player","id":20,"created_at":1675906707,"company":"P5","price":115},{"type":"bid","entity":2,"entity_type":"player","id":21,"created_at":1675979380,"company":"P5","price":120},{"type":"pass","entity":4,"entity_type":"player","id":22,"created_at":1675980553},{"type":"bid","entity":2,"entity_type":"player","id":23,"created_at":1675999419,"company":"P5a","price":100},{"type":"bid","entity":4,"entity_type":"player","id":24,"created_at":1676070872,"company":"P6b","price":100},{"type":"pass","entity":1,"entity_type":"player","id":25,"created_at":1676071497},{"type":"pass","entity":2,"entity_type":"player","id":26,"created_at":1676104185},{"type":"pass","entity":4,"entity_type":"player","id":27,"created_at":1676243836},{"type":"pass","entity":5,"entity_type":"player","id":28,"created_at":1676256031},{"type":"bid","entity":4,"entity_type":"player","id":29,"created_at":1676277562,"company":"P10","price":195},{"type":"bid","entity":1,"entity_type":"player","id":30,"created_at":1676299766,"company":"P10","price":200},{"type":"bid","entity":4,"entity_type":"player","id":31,"created_at":1676376746,"company":"P10","price":205},{"type":"bid","entity":1,"entity_type":"player","id":32,"created_at":1676387050,"company":"P10","price":210},{"type":"bid","entity":4,"entity_type":"player","id":33,"created_at":1676405662,"company":"P10","price":215},{"type":"bid","entity":1,"entity_type":"player","id":34,"created_at":1676405828,"company":"P10","price":220},{"type":"bid","entity":4,"entity_type":"player","id":35,"created_at":1676405874,"company":"P10","price":225},{"type":"bid","entity":1,"entity_type":"player","id":36,"created_at":1676405901,"company":"P10","price":230},{"type":"bid","entity":4,"entity_type":"player","id":37,"created_at":1676405917,"company":"P10","price":235},{"type":"bid","entity":1,"entity_type":"player","id":38,"created_at":1676405933,"company":"P10","price":240},{"type":"bid","entity":4,"entity_type":"player","id":39,"created_at":1676405944,"company":"P10","price":245},{"type":"bid","entity":1,"entity_type":"player","id":40,"created_at":1676405953,"company":"P10","price":250},{"type":"bid","entity":4,"entity_type":"player","id":41,"created_at":1676405960,"company":"P10","price":255},{"type":"bid","entity":1,"entity_type":"player","id":42,"created_at":1676405964,"company":"P10","price":260},{"type":"bid","entity":4,"entity_type":"player","id":43,"created_at":1676405982,"company":"P10","price":265},{"type":"bid","entity":1,"entity_type":"player","id":44,"created_at":1676406009,"company":"P10","price":270},{"type":"pass","entity":4,"entity_type":"player","id":45,"created_at":1676406021},{"type":"par","entity":1,"entity_type":"player","id":46,"created_at":1676406034,"corporation":"UP","share_price":"82,2,3"},{"type":"buy_shares","entity":4,"entity_type":"player","id":47,"created_at":1676406336,"shares":["UP_1"],"percent":10,"share_price":false},{"type":"par","entity":5,"entity_type":"player","id":48,"created_at":1676407110,"corporation":"LNP","share_price":"82,2,3"},{"type":"buy_shares","entity":2,"entity_type":"player","id":49,"created_at":1676532368,"shares":["UP_2"],"percent":10,"share_price":false},{"type":"pass","entity":1,"entity_type":"player","id":50,"created_at":1676563393},{"type":"buy_shares","entity":4,"entity_type":"player","id":51,"user":1,"created_at":1676563418,"shares":["UP_3"],"percent":10,"share_price":false},{"type":"buy_shares","entity":5,"entity_type":"player","id":52,"user":1,"created_at":1676563431,"shares":["LNP_1"],"percent":10,"share_price":false},{"type":"buy_shares","entity":2,"entity_type":"player","id":53,"created_at":1676583717,"shares":["UP_4"],"percent":10,"share_price":false},{"type":"buy_shares","entity":"P11","entity_type":"company","id":54,"created_at":1676583748,"shares":["UP_7"],"percent":20},{"type":"pass","entity":1,"entity_type":"player","id":55,"created_at":1676583755},{"type":"buy_shares","entity":4,"entity_type":"player","id":56,"created_at":1676583831,"shares":["UP_5"],"percent":10,"share_price":false},{"type":"buy_shares","entity":5,"entity_type":"player","id":57,"created_at":1676587509,"shares":["LNP_2"],"percent":10,"share_price":false},{"type":"program_share_pass","entity":2,"entity_type":"player","id":58,"created_at":1676672369,"auto_actions":[{"type":"pass","entity":2,"entity_type":"player","created_at":1676672368}],"unconditional":false,"indefinite":false},{"type":"program_share_pass","entity":1,"entity_type":"player","id":59,"created_at":1676672417,"auto_actions":[{"type":"pass","entity":1,"entity_type":"player","created_at":1676672416}],"unconditional":false,"indefinite":false},{"type":"buy_shares","entity":4,"entity_type":"player","id":60,"created_at":1676676991,"shares":["UP_6"],"percent":10,"share_price":false},{"type":"buy_shares","entity":5,"entity_type":"player","id":61,"created_at":1676826813,"auto_actions":[{"type":"pass","entity":2,"entity_type":"player","created_at":1676826813},{"type":"program_disable","entity":1,"entity_type":"player","created_at":1676826813,"reason":"Shingoi bought on corporation UP and is unsecure"}],"shares":["LNP_3"],"percent":10,"share_price":false},{"type":"pass","entity":1,"entity_type":"player","id":62,"created_at":1676826919},{"type":"buy_shares","entity":4,"entity_type":"player","id":63,"created_at":1676861203,"shares":["LNP_4"],"percent":10,"share_price":false},{"type":"program_share_pass","entity":5,"entity_type":"player","id":64,"created_at":1676869044,"auto_actions":[{"type":"pass","entity":5,"entity_type":"player","created_at":1676869044},{"type":"pass","entity":2,"entity_type":"player","created_at":1676869044}],"unconditional":false,"indefinite":false},{"type":"program_share_pass","entity":1,"entity_type":"player","id":65,"created_at":1676871326,"auto_actions":[{"type":"pass","entity":1,"entity_type":"player","created_at":1676871325}],"unconditional":false,"indefinite":false},{"type":"pass","entity":4,"entity_type":"player","id":66,"created_at":1676871882},{"type":"pass","entity":"Coal-C","entity_type":"minor","id":67,"created_at":1676903835},{"type":"hex_token","entity":"Coal-B","entity_type":"minor","id":68,"created_at":1676907650,"hex":"K15","cost":10,"token_type":"development"},{"type":"pass","entity":"Coal-B","entity_type":"minor","id":69,"created_at":1676907662},{"hex":"K19","cost":20,"type":"hex_token","entity":"Coal-A","token_type":"development","entity_type":"minor","id":70,"user":5,"created_at":1676908040},{"type":"undo","entity":"Coal-A","entity_type":"minor","id":71,"user":5,"created_at":1676908066},{"type":"hex_token","entity":"Coal-A","entity_type":"minor","id":72,"created_at":1676908071,"hex":"K19","cost":20,"token_type":"development"},{"type":"pass","entity":"Coal-A","entity_type":"minor","id":73,"created_at":1676908105},{"type":"pass","entity":"Coal-D","entity_type":"minor","id":74,"created_at":1676943297},{"type":"lay_tile","entity":"UP","entity_type":"corporation","id":75,"created_at":1676943346,"hex":"M25","tile":"YC-0","rotation":0},{"type":"lay_tile","entity":"UP","entity_type":"corporation","id":76,"created_at":1676943350,"auto_actions":[{"type":"credit_mobilier","entity":"UP","entity_type":"corporation","created_at":1676943349,"hex":"M23","amount":40}],"hex":"M23","tile":"4-0","rotation":1},{"type":"lay_tile","entity":"UP","entity_type":"corporation","id":77,"created_at":1676943359,"auto_actions":[{"type":"credit_mobilier","entity":"UP","entity_type":"corporation","created_at":1676943358,"hex":"L20","amount":20}],"hex":"L20","tile":"4-1","rotation":2},{"type":"pass","entity":"UP","entity_type":"corporation","id":78,"created_at":1676943364},{"type":"place_token","entity":"UP","entity_type":"corporation","id":79,"created_at":1676943368,"city":"GL-0-0","slot":1,"tokener":"UP"},{"type":"buy_train","entity":"UP","entity_type":"corporation","id":80,"created_at":1676943383,"train":"2-0","price":80,"variant":"2"},{"type":"buy_train","entity":"UP","entity_type":"corporation","id":81,"created_at":1676943385,"train":"2-1","price":120,"variant":"2+2"},{"type":"buy_train","entity":"UP","entity_type":"corporation","id":82,"created_at":1676943387,"train":"2-2","price":120,"variant":"2+2"},{"type":"pass","entity":"UP","entity_type":"corporation","id":83,"created_at":1676943390},{"type":"pass","entity":"UP","entity_type":"corporation","id":84,"created_at":1676943396},{"hex":"K19","tile":"8-0","type":"lay_tile","entity":"LNP","rotation":5,"entity_type":"corporation","auto_actions":[{"hex":"K19","type":"credit_mobilier","amount":20,"entity":"LNP","created_at":1676956476,"entity_type":"corporation"}],"id":85,"user":5,"created_at":1676956476},{"hex":"K17","tile":"57b-0","type":"lay_tile","entity":"LNP","rotation":1,"entity_type":"corporation","auto_actions":[{"hex":"K17","type":"credit_mobilier","amount":30,"entity":"LNP","created_at":1676956490,"entity_type":"corporation"}],"id":86,"user":5,"created_at":1676956489},{"hex":"K15","tile":"57b-1","type":"lay_tile","entity":"LNP","rotation":1,"entity_type":"corporation","auto_actions":[{"hex":"K15","type":"credit_mobilier","amount":10,"entity":"LNP","created_at":1676956500,"entity_type":"corporation"}],"id":87,"user":5,"created_at":1676956500},{"type":"undo","entity":"LNP","entity_type":"corporation","id":88,"user":5,"created_at":1676956526},{"type":"undo","entity":"LNP","entity_type":"corporation","id":89,"user":5,"created_at":1676956529},{"type":"undo","entity":"LNP","action_id":84,"entity_type":"corporation","id":90,"user":5,"created_at":1676956534},{"type":"manual_close_company","entity":"P4b","entity_type":"company","id":91,"user":5,"created_at":1676956564},{"type":"undo","entity":"LNP","entity_type":"corporation","id":92,"user":5,"created_at":1676956571},{"type":"lay_tile","entity":"LNP","entity_type":"corporation","id":93,"created_at":1676956581,"auto_actions":[{"type":"credit_mobilier","entity":"LNP","entity_type":"corporation","created_at":1676956581,"hex":"K19","amount":20}],"hex":"K19","tile":"8-0","rotation":5},{"type":"lay_tile","entity":"LNP","entity_type":"corporation","id":94,"created_at":1676956585,"auto_actions":[{"type":"credit_mobilier","entity":"LNP","entity_type":"corporation","created_at":1676956585,"hex":"K17","amount":30}],"hex":"K17","tile":"57b-0","rotation":1},{"type":"lay_tile","entity":"LNP","entity_type":"corporation","id":95,"created_at":1676956588,"auto_actions":[{"type":"credit_mobilier","entity":"LNP","entity_type":"corporation","created_at":1676956589,"hex":"K15","amount":10}],"hex":"K15","tile":"57b-1","rotation":1},{"type":"pass","entity":"LNP","entity_type":"corporation","id":96,"created_at":1676956593},{"type":"buy_train","entity":"LNP","entity_type":"corporation","id":97,"created_at":1676956611,"train":"2-3","price":120,"variant":"2+2"},{"type":"buy_train","entity":"LNP","entity_type":"corporation","id":98,"created_at":1676956617,"train":"2-4","price":120,"variant":"2+2"},{"type":"pass","entity":"LNP","entity_type":"corporation","id":99,"created_at":1676956650},{"type":"pass","entity":"LNP","entity_type":"corporation","id":100,"created_at":1676956665},{"type":"pass","entity":"Coal-C","entity_type":"minor","id":101,"created_at":1676993658},{"type":"hex_token","entity":"Coal-B","entity_type":"minor","id":102,"created_at":1676996473,"hex":"K17","cost":0,"token_type":"development"},{"type":"pass","entity":"Coal-B","entity_type":"minor","id":103,"created_at":1676996504},{"type":"hex_token","entity":"Coal-A","entity_type":"minor","id":104,"created_at":1677066585,"hex":"L16","cost":20,"token_type":"development"},{"type":"pass","entity":"Coal-A","entity_type":"minor","id":105,"created_at":1677066618},{"type":"pass","entity":"Coal-D","entity_type":"minor","id":106,"created_at":1677093186},{"hex":"K13","tile":"8-1","type":"lay_tile","entity":"UP","rotation":4,"entity_type":"corporation","auto_actions":[{"hex":"K13","type":"credit_mobilier","amount":20,"entity":"UP","created_at":1677093793,"entity_type":"corporation"}],"id":107,"user":1,"created_at":1677093794},{"hex":"L12","tile":"9-0","type":"lay_tile","entity":"UP","rotation":0,"entity_type":"corporation","auto_actions":[{"hex":"L12","type":"credit_mobilier","amount":20,"entity":"UP","created_at":1677093799,"entity_type":"corporation"}],"id":108,"user":1,"created_at":1677093800},{"hex":"M11","tile":"8-2","type":"lay_tile","entity":"UP","rotation":1,"entity_type":"corporation","auto_actions":[{"hex":"M11","type":"credit_mobilier","amount":20,"entity":"UP","created_at":1677093803,"entity_type":"corporation"}],"id":109,"user":1,"created_at":1677093804},{"type":"pass","entity":"UP","entity_type":"corporation","id":110,"user":1,"created_at":1677093810},{"city":"57B-0-0","slot":0,"type":"place_token","entity":"UP","tokener":"UP","entity_type":"corporation","id":111,"user":1,"created_at":1677093814},{"type":"pass","entity":"UP","entity_type":"corporation","id":112,"user":1,"created_at":1677093833},{"type":"undo","entity":"UP","action_id":106,"entity_type":"corporation","id":113,"user":1,"created_at":1677093876},{"type":"lay_tile","entity":"UP","entity_type":"corporation","id":114,"created_at":1677093889,"auto_actions":[{"type":"credit_mobilier","entity":"UP","entity_type":"corporation","created_at":1677093889,"hex":"K13","amount":20}],"hex":"K13","tile":"8-1","rotation":4},{"type":"lay_tile","entity":"UP","entity_type":"corporation","id":115,"created_at":1677093893,"auto_actions":[{"type":"credit_mobilier","entity":"UP","entity_type":"corporation","created_at":1677093892,"hex":"L12","amount":20}],"hex":"L12","tile":"9-0","rotation":0},{"type":"lay_tile","entity":"UP","entity_type":"corporation","id":116,"created_at":1677093896,"auto_actions":[{"type":"credit_mobilier","entity":"UP","entity_type":"corporation","created_at":1677093896,"hex":"M11","amount":20}],"hex":"M11","tile":"8-2","rotation":1},{"type":"pass","entity":"UP","entity_type":"corporation","id":117,"created_at":1677093900},{"type":"place_token","entity":"UP","entity_type":"corporation","id":118,"created_at":1677093909,"city":"57B-0-0","slot":0,"tokener":"UP"},{"type":"pass","entity":"UP","entity_type":"corporation","id":119,"created_at":1677093913},{"type":"run_routes","entity":"UP","entity_type":"corporation","id":120,"created_at":1677093943,"routes":[{"train":"2-0","connections":[["M25","M27"]],"hexes":["M27","M25"],"revenue":50,"revenue_str":"M27-M25","nodes":["M25-0","M27-0"]},{"train":"2-1","connections":[["M21","M19"],["M23","M21"],["M25","M23"]],"hexes":["M19","M21","M23","M25"],"revenue":80,"revenue_str":"M19-M21-M23-M25","nodes":["M21-0","M19-0","M23-0","M25-0"]},{"train":"2-2","connections":[["L20","K19","K17"],["M21","L20"]],"hexes":["K17","L20","M21"],"revenue":80,"revenue_str":"K17-L20-M21 + 1 Fort","nodes":["L20-0","K17-0","M21-0"]}]},{"type":"dividend","entity":"UP","entity_type":"corporation","id":121,"created_at":1677093947,"kind":"payout"},{"type":"pass","entity":"UP","entity_type":"corporation","id":122,"created_at":1677093970},{"type":"pass","entity":"UP","entity_type":"corporation","id":123,"created_at":1677093974},{"type":"pass","entity":"LNP","entity_type":"corporation","id":124,"created_at":1677094195},{"type":"pass","entity":"LNP","entity_type":"corporation","id":125,"created_at":1677094218},{"type":"run_routes","entity":"LNP","entity_type":"corporation","id":126,"created_at":1677094244,"routes":[{"train":"2-3","connections":[["M21","M19"],["L20","M21"],["K17","K19","L20"]],"hexes":["M19","M21","L20","K17"],"revenue":90,"revenue_str":"M19-M21-L20-K17 + 1 Fort","nodes":["M21-0","M19-0","L20-0","K17-0"]},{"train":"2-4","connections":[["M23","M25"],["M21","M23"]],"hexes":["M25","M23","M21"],"revenue":70,"revenue_str":"M25-M23-M21","nodes":["M23-0","M25-0","M21-0"]}]},{"type":"dividend","entity":"LNP","entity_type":"corporation","id":127,"created_at":1677094250,"kind":"payout"},{"type":"pass","entity":"LNP","entity_type":"corporation","id":128,"created_at":1677094268},{"type":"pass","entity":"LNP","entity_type":"corporation","id":129,"created_at":1677094327},{"type":"buy_shares","entity":2,"entity_type":"player","id":130,"created_at":1677158775,"shares":["LNP_5"],"percent":10,"share_price":false},{"type":"buy_shares","entity":1,"entity_type":"player","id":131,"created_at":1677163194,"shares":["LNP_6"],"percent":10,"share_price":false},{"type":"buy_shares","entity":5,"entity_type":"player","id":132,"created_at":1677163429,"shares":["LNP_7"],"percent":10,"share_price":false},{"type":"buy_shares","entity":4,"entity_type":"player","id":133,"created_at":1677184355,"shares":["LNP_8"],"percent":10,"share_price":false},{"type":"pass","entity":2,"entity_type":"player","id":134,"created_at":1677209738},{"type":"program_share_pass","entity":1,"entity_type":"player","id":135,"created_at":1677212266,"auto_actions":[{"type":"pass","entity":1,"entity_type":"player","created_at":1677212262}],"unconditional":false,"indefinite":false},{"type":"program_share_pass","entity":5,"entity_type":"player","id":136,"created_at":1677215289,"auto_actions":[{"type":"pass","entity":5,"entity_type":"player","created_at":1677215289}],"unconditional":false,"indefinite":false},{"type":"pass","entity":4,"entity_type":"player","id":137,"created_at":1677273774},{"type":"pass","entity":"Coal-C","entity_type":"minor","id":138,"user":2,"created_at":1677277503},{"type":"undo","entity":"Coal-B","entity_type":"minor","id":139,"user":2,"created_at":1677277510},{"type":"pass","entity":"Coal-C","entity_type":"minor","id":140,"created_at":1677277510},{"type":"hex_token","entity":"Coal-B","entity_type":"minor","id":141,"created_at":1677283849,"hex":"J16","cost":40,"token_type":"development"},{"type":"hex_token","entity":"Coal-B","entity_type":"minor","id":142,"created_at":1677283861,"hex":"K13","cost":0,"token_type":"development"},{"type":"hex_token","entity":"Coal-A","entity_type":"minor","id":143,"created_at":1677407503,"hex":"L14","cost":20,"token_type":"development"},{"type":"pass","entity":"Coal-A","entity_type":"minor","id":144,"created_at":1677407518},{"type":"pass","entity":"Coal-D","entity_type":"minor","id":145,"created_at":1677447414},{"type":"lay_tile","entity":"UP","entity_type":"corporation","id":146,"created_at":1677447582,"auto_actions":[{"type":"credit_mobilier","entity":"UP","entity_type":"corporation","created_at":1677447579,"hex":"M9","amount":40}],"hex":"M9","tile":"8-3","rotation":2},{"type":"lay_tile","entity":"UP","entity_type":"corporation","id":147,"created_at":1677447589,"auto_actions":[{"type":"credit_mobilier","entity":"UP","entity_type":"corporation","created_at":1677447586,"hex":"L8","amount":70}],"hex":"L8","tile":"5b-0","rotation":5},{"type":"lay_tile","entity":"UP","entity_type":"corporation","id":148,"created_at":1677447596,"auto_actions":[{"type":"credit_mobilier","entity":"UP","entity_type":"corporation","created_at":1677447593,"hex":"M7","amount":40}],"hex":"M7","tile":"8-4","rotation":1},{"type":"pass","entity":"UP","entity_type":"corporation","id":149,"created_at":1677447621},{"type":"pass","entity":"UP","entity_type":"corporation","id":150,"created_at":1677447623},{"type":"pass","entity":"UP","entity_type":"corporation","id":151,"created_at":1677447627},{"type":"run_routes","entity":"UP","entity_type":"corporation","id":152,"created_at":1677447735,"routes":[{"train":"2-0","connections":[["M25","M27"]],"hexes":["M25","M27"],"revenue":50,"revenue_str":"M25-M27","nodes":["M25-0","M27-0"]},{"train":"2-1","connections":[["M21","M19"],["M23","M21"],["M25","M23"]],"hexes":["M19","M21","M23","M25"],"revenue":80,"revenue_str":"M19-M21-M23-M25","nodes":["M21-0","M19-0","M23-0","M25-0"]},{"train":"2-2","connections":[["K15","K13","L12","M11","M9","L8"],["K17","K15"],["L20","K19","K17"]],"hexes":["L8","K15","K17","L20"],"revenue":90,"revenue_str":"L8-K15-K17-L20 + 1 Fort","nodes":["K15-0","L8-0","K17-0","L20-0"]}]},{"type":"dividend","entity":"UP","entity_type":"corporation","id":153,"created_at":1677447738,"kind":"payout"},{"type":"pass","entity":"UP","entity_type":"corporation","id":154,"created_at":1677447746},{"type":"pass","entity":"UP","entity_type":"corporation","id":155,"created_at":1677447749},{"hex":"M17","tile":"9-1","type":"lay_tile","entity":"LNP","rotation":2,"entity_type":"corporation","id":156,"user":5,"created_at":1677448133},{"hex":"L16","tile":"4-2","type":"lay_tile","entity":"LNP","rotation":2,"entity_type":"corporation","id":157,"user":5,"created_at":1677448143},{"type":"pass","entity":"LNP","entity_type":"corporation","id":158,"user":5,"created_at":1677448151},{"type":"pass","entity":"LNP","entity_type":"corporation","id":159,"user":5,"created_at":1677448179},{"type":"run_routes","entity":"LNP","routes":[{"hexes":["L20","M21","M23","M25"],"nodes":["M21-0","L20-0","M23-0","M25-0"],"train":"2-3","revenue":80,"connections":[["M21","L20"],["M23","M21"],["M25","M23"]],"revenue_str":"L20-M21-M23-M25"},{"hexes":["L16","N18","M19","M21"],"nodes":["N18-0","L16-0","M19-0","M21-0"],"train":"2-4","revenue":50,"connections":[["N18","M17","L16"],["M19","N18"],["M21","M19"]],"revenue_str":"L16-N18-M19-M21"}],"entity_type":"corporation","id":160,"user":5,"created_at":1677448262},{"kind":"payout","type":"dividend","entity":"LNP","entity_type":"corporation","id":161,"user":5,"created_at":1677448268},{"type":"undo","entity":"LNP","entity_type":"corporation","id":162,"user":5,"created_at":1677448275},{"type":"undo","entity":"LNP","entity_type":"corporation","id":163,"user":5,"created_at":1677448279},{"type":"undo","entity":"LNP","action_id":155,"entity_type":"corporation","id":164,"user":5,"created_at":1677448320},{"type":"pass","entity":"LNP","entity_type":"corporation","id":165,"created_at":1677448325},{"type":"pass","entity":"LNP","entity_type":"corporation","id":166,"created_at":1677448334},{"type":"run_routes","entity":"LNP","entity_type":"corporation","id":167,"created_at":1677448337,"routes":[{"train":"2-3","connections":[["M21","M19"],["L20","M21"],["K17","K19","L20"]],"hexes":["M19","M21","L20","K17"],"revenue":90,"revenue_str":"M19-M21-L20-K17 + 1 Fort","nodes":["M21-0","M19-0","L20-0","K17-0"]},{"train":"2-4","connections":[["M23","M25"],["M21","M23"]],"hexes":["M25","M23","M21"],"revenue":70,"revenue_str":"M25-M23-M21","nodes":["M23-0","M25-0","M21-0"]}]},{"type":"dividend","entity":"LNP","entity_type":"corporation","id":168,"created_at":1677448339,"kind":"payout"},{"type":"pass","entity":"LNP","entity_type":"corporation","id":169,"created_at":1677448348},{"type":"pass","entity":"LNP","entity_type":"corporation","id":170,"created_at":1677448446},{"type":"pass","entity":"Coal-C","entity_type":"minor","id":171,"created_at":1677486506},{"type":"pass","entity":"Coal-A","entity_type":"minor","id":172,"created_at":1677488461},{"type":"pass","entity":"Coal-D","entity_type":"minor","id":173,"created_at":1677490671},{"type":"lay_tile","entity":"UP","entity_type":"corporation","id":174,"created_at":1677511874,"auto_actions":[{"type":"credit_mobilier","entity":"UP","entity_type":"corporation","created_at":1677511869,"hex":"M5","amount":30}],"hex":"M5","tile":"9-1","rotation":1},{"type":"lay_tile","entity":"UP","entity_type":"corporation","id":175,"created_at":1677511877,"auto_actions":[{"type":"credit_mobilier","entity":"UP","entity_type":"corporation","created_at":1677511873,"hex":"M3","amount":60}],"hex":"M3","tile":"9-2","rotation":1},{"type":"pass","entity":"UP","entity_type":"corporation","id":176,"created_at":1677511890},{"type":"place_token","entity":"UP","entity_type":"corporation","id":177,"created_at":1677511903,"city":"57B-1-0","slot":0,"tokener":"UP"},{"type":"double_head_trains","entity":"UP","entity_type":"corporation","id":178,"created_at":1677511915,"trains":["2-0","2-1","2-2"]},{"type":"run_routes","entity":"UP","entity_type":"corporation","id":179,"created_at":1677511936,"routes":[{"train":"2-0_2-1_2-2-0","connections":[["M1","L0"],["L8","M7","M5","M3","M1"],["K15","K13","L12","M11","M9","L8"],["K17","K15"],["L20","K19","K17"],["M21","L20"],["M23","M21"],["M25","M23"],["M27","M25"]],"hexes":["L0","M1","L8","K15","K17","L20","M21","M23","M25","M27"],"revenue":380,"revenue_str":"L0-M1-L8-K15-K17-L20-M21-M23-M25-M27 + Golden Spike + 1 Fort","nodes":["M1-0","L0-0","L8-0","K15-0","K17-0","L20-0","M21-0","M23-0","M25-0","M27-0"]}]},{"type":"dividend","entity":"UP","entity_type":"corporation","id":180,"created_at":1677511939,"kind":"payout"},{"type":"pass","entity":"UP","entity_type":"corporation","id":181,"created_at":1677511967},{"type":"pass","entity":"UP","entity_type":"corporation","id":182,"created_at":1677512192},{"type":"pass","entity":"LNP","entity_type":"corporation","id":183,"created_at":1677542068},{"type":"pass","entity":"LNP","entity_type":"corporation","id":184,"created_at":1677542072},{"type":"run_routes","entity":"LNP","entity_type":"corporation","id":185,"created_at":1677542076,"routes":[{"train":"2-3","connections":[["M21","M19"],["L20","M21"],["K17","K19","L20"]],"hexes":["M19","M21","L20","K17"],"revenue":90,"revenue_str":"M19-M21-L20-K17 + 1 Fort","nodes":["M21-0","M19-0","L20-0","K17-0"]},{"train":"2-4","connections":[["M23","M25"],["M21","M23"]],"hexes":["M25","M23","M21"],"revenue":70,"revenue_str":"M25-M23-M21","nodes":["M23-0","M25-0","M21-0"]}]},{"type":"dividend","entity":"LNP","entity_type":"corporation","id":186,"created_at":1677542079,"kind":"payout"},{"type":"buy_train","price":120,"train":"2-6","entity":"LNP","variant":"2+2","entity_type":"corporation","id":187,"user":5,"created_at":1677542103},{"type":"undo","entity":"LNP","entity_type":"corporation","id":188,"user":5,"created_at":1677542114},{"type":"buy_train","entity":"LNP","entity_type":"corporation","id":189,"created_at":1677542124,"train":"2-6","price":80,"variant":"2"},{"type":"pass","entity":"LNP","entity_type":"corporation","id":190,"created_at":1677542133},{"type":"pass","entity":"LNP","entity_type":"corporation","id":191,"created_at":1677542147},{"type":"pass","entity":2,"entity_type":"player","id":192,"created_at":1677591666},{"type":"par","entity":1,"entity_type":"player","id":193,"created_at":1677593836,"corporation":"WNW","share_price":"100,1,4"},{"type":"buy_shares","entity":5,"entity_type":"player","id":194,"created_at":1677600162,"shares":["WNW_1"],"percent":10,"share_price":false},{"type":"sell_shares","entity":4,"entity_type":"player","id":195,"created_at":1677637021,"shares":["UP_1","UP_3","UP_5","UP_6"],"percent":40},{"type":"par","entity":4,"entity_type":"player","id":196,"created_at":1677637141,"corporation":"RCL","share_price":"100,1,4"},{"type":"sell_shares","entity":2,"entity_type":"player","id":197,"created_at":1677754658,"shares":["UP_2"],"percent":10},{"type":"pass","entity":2,"entity_type":"player","id":198,"created_at":1677755131},{"type":"buy_shares","entity":1,"entity_type":"player","id":199,"created_at":1677773208,"shares":["UP_1"],"percent":10,"share_price":false},{"type":"buy_shares","entity":5,"entity_type":"player","id":200,"created_at":1677780757,"shares":["RCL_1"],"percent":10,"share_price":false},{"type":"buy_shares","entity":4,"entity_type":"player","id":201,"created_at":1677790392,"shares":["RCL_2"],"percent":10,"share_price":false},{"type":"pass","entity":2,"entity_type":"player","id":202,"created_at":1677847110},{"type":"buy_shares","entity":1,"entity_type":"player","id":203,"created_at":1677852946,"shares":["WNW_2"],"percent":10,"share_price":false},{"type":"program_share_pass","entity":5,"entity_type":"player","id":204,"created_at":1677855755,"auto_actions":[{"type":"pass","entity":5,"entity_type":"player","created_at":1677855753}],"unconditional":false,"indefinite":false},{"type":"buy_shares","entity":4,"entity_type":"player","id":205,"created_at":1677876894,"shares":["RCL_3"],"percent":10,"share_price":false},{"type":"pass","entity":2,"entity_type":"player","id":206,"created_at":1677963456},{"type":"pass","entity":1,"entity_type":"player","id":207,"created_at":1677982795,"auto_actions":[{"type":"pass","entity":5,"entity_type":"player","created_at":1677982794}]},{"type":"par","entity":4,"entity_type":"player","id":208,"created_at":1677986410,"corporation":"WYC","share_price":"100,1,4"},{"type":"par","entity":2,"entity_type":"player","id":209,"created_at":1678091844,"corporation":"BH","share_price":"100,1,4"},{"type":"program_buy_shares","entity":2,"entity_type":"player","id":210,"created_at":1678091960,"corporation":"BH","until_condition":3,"from_market":false,"auto_pass_after":false},{"type":"program_share_pass","entity":1,"entity_type":"player","id":211,"created_at":1678232405,"auto_actions":[{"type":"pass","entity":1,"entity_type":"player","created_at":1678232404},{"type":"program_disable","entity":5,"entity_type":"player","created_at":1678232404,"reason":"Corporation BH parred"}],"unconditional":false,"indefinite":false},{"type":"program_share_pass","entity":5,"entity_type":"player","id":212,"created_at":1678253973,"auto_actions":[{"type":"pass","entity":5,"entity_type":"player","created_at":1678253972}],"unconditional":false,"indefinite":false},{"type":"buy_shares","entity":4,"entity_type":"player","id":213,"created_at":1678335872,"auto_actions":[{"type":"buy_shares","entity":2,"entity_type":"player","created_at":1678335870,"shares":["BH_1"],"percent":10},{"type":"pass","entity":1,"entity_type":"player","created_at":1678335870},{"type":"pass","entity":5,"entity_type":"player","created_at":1678335870}],"shares":["WYC_1"],"percent":10,"share_price":false},{"type":"buy_shares","entity":4,"entity_type":"player","id":214,"created_at":1678335898,"auto_actions":[{"type":"program_disable","entity":2,"entity_type":"player","created_at":1678335896,"reason":"3 share(s) bought in BH, end condition met"}],"shares":["WYC_2"],"percent":10,"share_price":false},{"type":"buy_shares","entity":2,"entity_type":"player","id":215,"created_at":1678354439,"auto_actions":[{"type":"pass","entity":1,"entity_type":"player","created_at":1678354438},{"type":"pass","entity":5,"entity_type":"player","created_at":1678354438}],"shares":["BH_2"],"percent":10,"share_price":false},{"type":"buy_shares","entity":4,"entity_type":"player","id":216,"created_at":1678392376,"shares":["WYC_3"],"percent":10,"share_price":false},{"type":"sell_shares","entity":2,"entity_type":"player","id":217,"created_at":1678398383,"shares":["UP_4"],"percent":10},{"type":"buy_shares","entity":2,"entity_type":"player","id":218,"created_at":1678398391,"auto_actions":[{"type":"program_disable","entity":1,"entity_type":"player","created_at":1678398389,"reason":"Shares were sold"}],"shares":["BH_3"],"percent":10,"share_price":false},{"type":"pass","entity":1,"entity_type":"player","id":219,"created_at":1678423235,"auto_actions":[{"type":"program_disable","entity":5,"entity_type":"player","created_at":1678423232,"reason":"Shares were sold"}]},{"type":"program_share_pass","entity":5,"entity_type":"player","id":220,"created_at":1678429697,"auto_actions":[{"type":"pass","entity":5,"entity_type":"player","created_at":1678429696}],"unconditional":false,"indefinite":false},{"type":"buy_shares","entity":4,"entity_type":"player","id":221,"created_at":1678489125,"shares":["BH_4"],"percent":10,"share_price":false},{"type":"pass","entity":2,"entity_type":"player","id":222,"created_at":1678537792},{"type":"program_share_pass","entity":1,"entity_type":"player","id":223,"created_at":1678562526,"auto_actions":[{"type":"pass","entity":1,"entity_type":"player","created_at":1678562525},{"type":"pass","entity":5,"entity_type":"player","created_at":1678562525}],"unconditional":false,"indefinite":false},{"type":"buy_shares","entity":4,"entity_type":"player","id":224,"created_at":1678659658,"shares":["RCL_4"],"percent":10,"share_price":false},{"type":"program_share_pass","entity":2,"entity_type":"player","id":225,"created_at":1678872260,"auto_actions":[{"type":"pass","entity":2,"entity_type":"player","created_at":1678872258},{"type":"pass","entity":1,"entity_type":"player","created_at":1678872258},{"type":"pass","entity":5,"entity_type":"player","created_at":1678872258}],"unconditional":false,"indefinite":false},{"type":"buy_shares","entity":4,"entity_type":"player","id":226,"created_at":1678878757,"auto_actions":[{"type":"pass","entity":2,"entity_type":"player","created_at":1678878755},{"type":"pass","entity":1,"entity_type":"player","created_at":1678878755},{"type":"pass","entity":5,"entity_type":"player","created_at":1678878755}],"shares":["WYC_4"],"percent":10,"share_price":false},{"type":"pass","entity":4,"entity_type":"player","id":227,"created_at":1678878770},{"type":"hex_token","entity":"Coal-A","entity_type":"minor","id":228,"created_at":1678879447,"hex":"K19","cost":0,"token_type":"development"},{"type":"hex_token","entity":"Coal-B","entity_type":"minor","id":229,"created_at":1678886323,"hex":"K15","cost":0,"token_type":"development"},{"hex":"B10","cost":0,"type":"hex_token","entity":"Coal-C","token_type":"development","entity_type":"minor","id":230,"user":2,"created_at":1678912802},{"type":"undo","entity":"Coal-D","entity_type":"minor","id":231,"user":2,"created_at":1678912809},{"type":"hex_token","entity":"Coal-C","entity_type":"minor","id":232,"created_at":1678912819,"hex":"D10","cost":10,"token_type":"development"},{"type":"hex_token","entity":"Coal-D","entity_type":"minor","id":233,"created_at":1678946321,"hex":"D22","cost":0,"token_type":"development"},{"hex":"K17","tile":"206B-0","type":"lay_tile","entity":"LNP","rotation":1,"entity_type":"corporation","id":234,"user":5,"created_at":1678947867},{"hex":"M17","tile":"9-3","type":"lay_tile","entity":"LNP","rotation":2,"entity_type":"corporation","id":235,"user":5,"created_at":1678947881},{"type":"undo","entity":"LNP","action_id":233,"entity_type":"corporation","id":236,"user":5,"created_at":1678947907},{"type":"undo","entity":"LNP","entity_type":"corporation","id":237,"user":5,"created_at":1678947947},{"type":"redo","entity":"Coal-D","entity_type":"minor","id":238,"user":5,"created_at":1678947954},{"type":"lay_tile","entity":"LNP","entity_type":"corporation","id":239,"created_at":1678947960,"hex":"M25","tile":"GC-0","rotation":0},{"type":"lay_tile","entity":"LNP","entity_type":"corporation","id":240,"created_at":1678947968,"hex":"K17","tile":"206B-0","rotation":1},{"type":"pass","entity":"LNP","entity_type":"corporation","id":241,"created_at":1678947974},{"type":"buy_company","entity":"LNP","entity_type":"corporation","id":242,"created_at":1678947991,"company":"P4b","price":90},{"type":"pass","entity":"LNP","entity_type":"corporation","id":243,"user":5,"created_at":1678948000},{"type":"pass","entity":"LNP","entity_type":"corporation","id":244,"user":5,"created_at":1678948004},{"type":"undo","entity":"LNP","entity_type":"corporation","id":245,"user":5,"created_at":1678948027},{"type":"undo","entity":"LNP","entity_type":"corporation","id":246,"user":5,"created_at":1678948033},{"type":"place_token","entity":"LNP","entity_type":"corporation","id":247,"created_at":1678948035,"city":"GC-0-0","slot":1,"tokener":"LNP"},{"type":"pass","entity":"LNP","entity_type":"corporation","id":248,"created_at":1678948039},{"type":"run_routes","entity":"LNP","entity_type":"corporation","id":249,"created_at":1678948053,"routes":[{"train":"2-3","connections":[["M21","M19"],["L20","M21"],["K17","K19","L20"]],"hexes":["M19","M21","L20","K17"],"revenue":90,"revenue_str":"M19-M21-L20-K17","nodes":["M21-0","M19-0","L20-0","K17-0"]},{"train":"2-4","connections":[["M23","M25"],["M21","M23"]],"hexes":["M25","M23","M21"],"revenue":80,"revenue_str":"M25-M23-M21","nodes":["M23-0","M25-0","M21-0"]},{"train":"2-6","connections":[["M25","M27"]],"hexes":["M27","M25"],"revenue":70,"revenue_str":"M27-M25","nodes":["M25-0","M27-0"]}]},{"type":"dividend","entity":"LNP","entity_type":"corporation","id":250,"created_at":1678948055,"kind":"payout"},{"type":"buy_train","entity":"LNP","entity_type":"corporation","id":251,"created_at":1678948063,"train":"3-1","price":220,"variant":"3+2"},{"type":"pass","entity":"LNP","entity_type":"corporation","id":252,"created_at":1678948069},{"type":"pass","entity":"LNP","entity_type":"corporation","id":253,"created_at":1678948071},{"type":"lay_tile","entity":"UP","entity_type":"corporation","id":254,"created_at":1679318490,"hex":"K15","tile":"205B-0","rotation":1},{"type":"lay_tile","entity":"UP","entity_type":"corporation","id":255,"created_at":1679318503,"hex":"L8","tile":"206b-1","rotation":0},{"type":"pass","entity":"UP","entity_type":"corporation","id":256,"created_at":1679318510},{"type":"double_head_trains","entity":"UP","entity_type":"corporation","id":257,"created_at":1679318542,"trains":["2-0","2-1","2-2"]},{"type":"run_routes","entity":"UP","entity_type":"corporation","id":258,"created_at":1679318568,"routes":[{"train":"2-0_2-1_2-2-0","connections":[["L8","M7","M5","M3","M1"],["K15","K13","L12","M11","M9","L8"],["K17","K15"],["L20","K19","K17"],["M21","L20"],["M23","M21"],["M25","M23"],["M27","M25"]],"hexes":["M1","L8","K15","K17","L20","M21","M23","M25","M27"],"revenue":330,"revenue_str":"M1-L8-K15-K17-L20-M21-M23-M25-M27 + E/W","nodes":["L8-0","M1-0","K15-0","K17-0","L20-0","M21-0","M23-0","M25-0","M27-0"]}]},{"type":"dividend","entity":"UP","entity_type":"corporation","id":259,"created_at":1679318578,"kind":"withhold"},{"type":"buy_train","entity":"UP","entity_type":"corporation","id":260,"created_at":1679318589,"train":"3-2","price":220,"variant":"3+2"},{"type":"pass","entity":"UP","entity_type":"corporation","id":261,"created_at":1679318590},{"type":"pass","entity":"UP","entity_type":"corporation","id":262,"created_at":1679318592},{"type":"lay_tile","entity":"WNW","entity_type":"corporation","id":263,"created_at":1679318615,"hex":"H10","tile":"6-0","rotation":3},{"type":"lay_tile","entity":"WNW","entity_type":"corporation","id":264,"created_at":1679318621,"hex":"I11","tile":"9-3","rotation":2},{"type":"lay_tile","entity":"WNW","entity_type":"corporation","id":265,"created_at":1679318627,"hex":"J12","tile":"6b-0","rotation":2},{"type":"pass","entity":"WNW","entity_type":"corporation","id":266,"created_at":1679318634},{"type":"buy_train","entity":"WNW","entity_type":"corporation","id":267,"created_at":1679318644,"train":"3-3","price":220,"variant":"3+2"},{"type":"pass","entity":"WNW","entity_type":"corporation","id":268,"created_at":1679318647},{"type":"pass","entity":"WNW","entity_type":"corporation","id":269,"created_at":1679318650},{"hex":"C25","tile":"8-5","type":"lay_tile","entity":"RCL","rotation":2,"entity_type":"corporation","id":270,"user":4,"created_at":1679344173},{"hex":"B24","tile":"9-4","type":"lay_tile","entity":"RCL","rotation":2,"entity_type":"corporation","id":271,"user":4,"created_at":1679344180},{"type":"undo","entity":"RCL","entity_type":"corporation","id":272,"user":4,"created_at":1679344194},{"type":"undo","entity":"RCL","entity_type":"corporation","id":273,"user":4,"created_at":1679344197},{"type":"lay_tile","entity":"RCL","entity_type":"corporation","id":274,"created_at":1679344198,"hex":"D26","tile":"8-5","rotation":1},{"type":"lay_tile","entity":"RCL","entity_type":"corporation","id":275,"created_at":1679344205,"hex":"D24","tile":"57b-2","rotation":1},{"type":"lay_tile","entity":"RCL","entity_type":"corporation","id":276,"created_at":1679344219,"hex":"D22","tile":"9-4","rotation":1},{"type":"pass","entity":"RCL","entity_type":"corporation","id":277,"created_at":1679344223},{"type":"buy_train","entity":"RCL","entity_type":"corporation","id":278,"created_at":1679344279,"train":"3-4","price":220,"variant":"3+2"},{"type":"buy_train","entity":"RCL","entity_type":"corporation","id":279,"created_at":1679344318,"train":"3-5","price":180,"variant":"3"},{"type":"pass","entity":"RCL","entity_type":"corporation","id":280,"created_at":1679344322},{"type":"pass","entity":"RCL","entity_type":"corporation","id":281,"created_at":1679344330},{"type":"lay_tile","entity":"WYC","entity_type":"corporation","id":282,"created_at":1679344382,"hex":"H18","tile":"YC-1","rotation":3},{"type":"lay_tile","entity":"WYC","entity_type":"corporation","id":283,"created_at":1679344407,"hex":"H20","tile":"9-5","rotation":1},{"type":"lay_tile","entity":"WYC","entity_type":"corporation","id":284,"created_at":1679344411,"hex":"H22","tile":"57b-3","rotation":1},{"type":"pass","entity":"WYC","entity_type":"corporation","id":285,"created_at":1679344431},{"type":"buy_train","entity":"WYC","entity_type":"corporation","id":286,"created_at":1679344437,"train":"4-0","price":360,"variant":"4+3"},{"type":"pass","entity":"WYC","entity_type":"corporation","id":287,"created_at":1679344441},{"type":"pass","entity":"WYC","entity_type":"corporation","id":288,"created_at":1679344443},{"type":"buy_company","entity":"BH","entity_type":"corporation","id":289,"created_at":1679392414,"company":"P5a","price":100},{"type":"buy_company","entity":"BH","entity_type":"corporation","id":290,"created_at":1679392417,"company":"P7","price":100},{"type":"buy_company","entity":"BH","entity_type":"corporation","id":291,"created_at":1679392421,"company":"P9","price":150},{"type":"lay_tile","entity":"BH","entity_type":"corporation","id":292,"created_at":1679392457,"hex":"C9","tile":"YC-2","rotation":3},{"type":"lay_tile","entity":"BH","entity_type":"corporation","id":293,"created_at":1679392472,"hex":"C9","tile":"GC-1","rotation":0},{"type":"lay_tile","entity":"P5a","entity_type":"company","id":294,"created_at":1679392511,"hex":"C11","tile":"6b-1","rotation":5},{"type":"pass","entity":"BH","entity_type":"corporation","id":295,"user":2,"created_at":1679392584},{"type":"undo","entity":"BH","entity_type":"corporation","id":296,"user":2,"created_at":1679392594},{"type":"sell_shares","entity":"BH","shares":["BH_5","BH_6","BH_7","BH_8"],"percent":40,"entity_type":"corporation","id":297,"user":2,"created_at":1679392597},{"type":"pass","entity":"BH","entity_type":"corporation","id":298,"user":2,"created_at":1679392608},{"type":"undo","entity":"BH","entity_type":"corporation","id":299,"user":2,"created_at":1679392626},{"type":"undo","entity":"BH","entity_type":"corporation","id":300,"user":2,"created_at":1679392629},{"type":"sell_shares","entity":"BH","entity_type":"corporation","id":301,"created_at":1679392632,"shares":["BH_5","BH_6"],"percent":20},{"type":"pass","entity":"BH","entity_type":"corporation","id":302,"created_at":1679392644},{"type":"buy_train","entity":"BH","entity_type":"corporation","id":303,"created_at":1679392646,"train":"4-1","price":360,"variant":"4+3"},{"type":"choose","choice":"0","entity":"BH","entity_type":"corporation","id":304,"user":2,"created_at":1679392654},{"type":"undo","entity":"BH","entity_type":"corporation","id":305,"user":2,"created_at":1679392664},{"type":"pass","entity":"BH","entity_type":"corporation","id":306,"created_at":1679392673},{"type":"pass","entity":"BH","entity_type":"corporation","id":307,"created_at":1679392685},{"type":"hex_token","entity":"Coal-A","entity_type":"minor","id":308,"created_at":1679401776,"hex":"K19","cost":0,"token_type":"development"},{"hex":"K13","cost":0,"type":"hex_token","entity":"Coal-B","token_type":"development","entity_type":"minor","id":309,"user":1,"created_at":1679407153},{"type":"undo","entity":"Coal-C","entity_type":"minor","id":310,"user":1,"created_at":1679407177},{"type":"hex_token","entity":"Coal-B","entity_type":"minor","id":311,"created_at":1679407182,"hex":"K17","cost":0,"token_type":"development"},{"type":"hex_token","entity":"Coal-C","entity_type":"minor","id":312,"created_at":1679602214,"hex":"C11","cost":0,"token_type":"development"},{"type":"hex_token","entity":"Coal-D","entity_type":"minor","id":313,"created_at":1679617254,"hex":"D22","cost":0,"token_type":"development"},{"type":"lay_tile","entity":"LNP","entity_type":"corporation","id":314,"created_at":1679634313,"hex":"L26","tile":"8-6","rotation":0},{"type":"lay_tile","entity":"LNP","entity_type":"corporation","id":315,"created_at":1679634316,"hex":"K25","tile":"8-7","rotation":3},{"type":"lay_tile","entity":"LNP","entity_type":"corporation","id":316,"created_at":1679634336,"auto_actions":[{"type":"pass","entity":"LNP","entity_type":"corporation","created_at":1679634335}],"hex":"J26","tile":"3-0","rotation":5},{"type":"run_routes","entity":"LNP","entity_type":"corporation","id":317,"created_at":1679634366,"routes":[{"train":"3-1","connections":[["M21","L20"],["M23","M21"],["M25","M23"],["M27","M25"]],"hexes":["L20","M21","M23","M25","M27"],"revenue":120,"revenue_str":"L20-M21-M23-M25-M27","nodes":["M21-0","L20-0","M23-0","M25-0","M27-0"]}]},{"kind":"payout","type":"dividend","entity":"LNP","entity_type":"corporation","id":318,"user":5,"created_at":1679634369},{"type":"undo","entity":"LNP","entity_type":"corporation","id":319,"user":5,"created_at":1679634383},{"type":"dividend","entity":"LNP","entity_type":"corporation","id":320,"created_at":1679634385,"kind":"withhold"},{"type":"buy_train","entity":"LNP","entity_type":"corporation","id":321,"created_at":1679634393,"train":"4-2","price":300,"variant":"4"},{"type":"pass","entity":"LNP","entity_type":"corporation","id":322,"created_at":1679634404},{"type":"pass","entity":"LNP","entity_type":"corporation","id":323,"created_at":1679634407},{"type":"pass","entity":"UP","entity_type":"corporation","id":324,"created_at":1679638221},{"type":"run_routes","entity":"UP","entity_type":"corporation","id":325,"created_at":1679638282,"routes":[{"train":"3-2","connections":[["M23","M25"],["M21","M23"],["L20","M21"],["K17","K19","L20"]],"hexes":["M25","M23","M21","L20","K17"],"revenue":130,"revenue_str":"M25-M23-M21-L20-K17","nodes":["M23-0","M25-0","M21-0","L20-0","K17-0"]}]},{"type":"dividend","entity":"UP","entity_type":"corporation","id":326,"created_at":1679638284,"kind":"payout"},{"type":"buy_train","entity":"UP","entity_type":"corporation","id":327,"created_at":1679638304,"train":"3-3","price":130},{"type":"pass","entity":"UP","entity_type":"corporation","id":328,"created_at":1679638309},{"type":"lay_tile","entity":"WNW","entity_type":"corporation","id":329,"created_at":1679638322,"hex":"J14","tile":"8-8","rotation":5},{"type":"pass","entity":"WNW","entity_type":"corporation","id":330,"created_at":1679638329},{"type":"sell_shares","entity":"WNW","entity_type":"corporation","id":331,"created_at":1679638342,"shares":["WNW_3","WNW_4"],"percent":20},{"type":"buy_train","entity":"WNW","entity_type":"corporation","id":332,"created_at":1679638345,"train":"4-3","price":360,"variant":"4+3"},{"type":"pass","entity":"WNW","entity_type":"corporation","id":333,"created_at":1679638352},{"type":"pass","entity":"WNW","entity_type":"corporation","id":334,"created_at":1679638357},{"hex":"D20","tile":"6b-2","type":"lay_tile","entity":"RCL","rotation":2,"entity_type":"corporation","id":335,"user":4,"created_at":1679641078},{"type":"undo","entity":"RCL","entity_type":"corporation","id":336,"user":4,"created_at":1679641098},{"type":"lay_tile","entity":"RCL","entity_type":"corporation","id":337,"created_at":1679641104,"hex":"D20","tile":"6b-2","rotation":4},{"type":"lay_tile","entity":"RCL","entity_type":"corporation","id":338,"created_at":1679641106,"hex":"E19","tile":"9-6","rotation":0},{"type":"lay_tile","entity":"RCL","entity_type":"corporation","id":339,"created_at":1679641112,"auto_actions":[{"type":"pass","entity":"RCL","entity_type":"corporation","created_at":1679641110}],"hex":"F18","tile":"57b-0","rotation":0},{"type":"double_head_trains","entity":"RCL","entity_type":"corporation","id":340,"created_at":1679641151,"trains":["3-4","3-5"]},{"type":"run_routes","entity":"RCL","entity_type":"corporation","id":341,"created_at":1679641161,"routes":[{"train":"3-4_3-5-0","connections":[["D20","E19","F18"],["D24","D22","D20"],["C27","D26","D24"]],"hexes":["F18","D20","D24","C27"],"revenue":70,"revenue_str":"F18-D20-D24-C27 + 1 Fort","nodes":["D20-0","F18-0","D24-0","C27-0"]}]},{"type":"dividend","entity":"RCL","entity_type":"corporation","id":342,"created_at":1679641163,"kind":"payout"},{"type":"pass","entity":"RCL","entity_type":"corporation","id":343,"created_at":1679641164},{"type":"pass","entity":"RCL","entity_type":"corporation","id":344,"created_at":1679641168},{"type":"lay_tile","entity":"WYC","entity_type":"corporation","id":345,"created_at":1679641175,"hex":"H18","tile":"GC-2","rotation":3},{"type":"lay_tile","entity":"WYC","entity_type":"corporation","id":346,"created_at":1679641178,"auto_actions":[{"type":"pass","entity":"WYC","entity_type":"corporation","created_at":1679641176}],"hex":"G17","tile":"8-9","rotation":3},{"type":"run_routes","entity":"WYC","entity_type":"corporation","id":347,"created_at":1679641210,"routes":[{"train":"4-0","connections":[["D20","D22","D24"],["F18","E19","D20"],["H18","G17","F18"],["H18","H20","H22"]],"hexes":["D24","D20","F18","H18","H22"],"revenue":100,"revenue_str":"D24-D20-F18-H18-H22 + 2 Forts","nodes":["D20-0","D24-0","F18-0","H18-0","H22-0"]}]},{"type":"dividend","entity":"WYC","entity_type":"corporation","id":348,"created_at":1679641211,"kind":"payout"},{"type":"pass","entity":"WYC","entity_type":"corporation","id":349,"created_at":1679641229},{"type":"pass","entity":"WYC","entity_type":"corporation","id":350,"created_at":1679641230},{"hex":"B10","tile":"57b-4","type":"lay_tile","entity":"BH","rotation":0,"entity_type":"corporation","id":351,"user":2,"created_at":1679727088},{"hex":"D12","tile":"6b-3","type":"lay_tile","entity":"BH","rotation":0,"entity_type":"corporation","id":352,"user":2,"created_at":1679727129},{"hex":"E11","tile":"58-0","type":"lay_tile","entity":"BH","rotation":3,"entity_type":"corporation","id":353,"user":2,"created_at":1679727133},{"type":"undo","entity":"BH","entity_type":"corporation","id":354,"user":2,"created_at":1679727164},{"type":"undo","entity":"BH","entity_type":"corporation","id":355,"user":2,"created_at":1679727167},{"type":"undo","entity":"BH","entity_type":"corporation","id":356,"user":2,"created_at":1679727170},{"type":"lay_tile","entity":"BH","entity_type":"corporation","id":357,"created_at":1679727171,"hex":"D12","tile":"6b-3","rotation":0},{"type":"lay_tile","entity":"BH","entity_type":"corporation","id":358,"created_at":1679727172,"hex":"E11","tile":"58-0","rotation":3},{"type":"lay_tile","entity":"BH","entity_type":"corporation","id":359,"created_at":1679727175,"hex":"F12","tile":"WRC-0","rotation":0},{"type":"lay_tile","entity":"P5a","entity_type":"company","id":360,"created_at":1679727185,"hex":"G11","tile":"4-2","rotation":0},{"type":"pass","entity":"BH","entity_type":"corporation","id":361,"created_at":1679727208},{"type":"run_routes","entity":"BH","entity_type":"corporation","id":362,"created_at":1679727266,"routes":[{"train":"4-1","connections":[["G11","H10"],["E11","F12","G11"],["D12","E11"],["C11","D12"],["C9","C11"],["C5","C7","C9"]],"hexes":["H10","G11","E11","D12","C11","C9","C5"],"revenue":130,"revenue_str":"H10-G11-E11-D12-C11-C9-C5","nodes":["G11-0","H10-0","E11-0","D12-0","C11-0","C9-0","C5-5"]}]},{"type":"dividend","entity":"BH","entity_type":"corporation","id":363,"created_at":1679727268,"kind":"payout"},{"type":"choose","entity":"BH","entity_type":"corporation","id":364,"created_at":1679727271,"choice":"0"},{"type":"pass","entity":"BH","entity_type":"corporation","id":365,"created_at":1679727296},{"type":"buy_shares","entity":"BH","entity_type":"corporation","id":366,"created_at":1679727316,"shares":["BH_5"],"percent":10},{"type":"pass","entity":"BH","entity_type":"corporation","id":367,"created_at":1679727349},{"type":"buy_shares","entity":5,"entity_type":"player","id":368,"created_at":1679732641,"shares":["WYC_5"],"percent":10,"share_price":false},{"type":"buy_shares","entity":1,"entity_type":"player","id":369,"created_at":1679862232,"shares":["UP_3"],"percent":10,"share_price":false},{"type":"buy_shares","entity":2,"entity_type":"player","id":370,"created_at":1679913504,"shares":["WNW_3"],"percent":10,"share_price":false},{"type":"buy_shares","entity":4,"entity_type":"player","id":371,"created_at":1679959718,"shares":["WNW_5"],"percent":10,"share_price":false},{"type":"buy_shares","entity":5,"entity_type":"player","id":372,"created_at":1679976997,"shares":["UP_5"],"percent":10,"share_price":false},{"type":"pass","entity":1,"entity_type":"player","id":373,"created_at":1680025872},{"type":"par","entity":2,"entity_type":"player","id":374,"created_at":1680035664,"corporation":"FE&MV","share_price":"100,1,4"},{"type":"buy_shares","entity":4,"entity_type":"player","id":375,"created_at":1680036029,"shares":["RCL_5"],"percent":10,"share_price":false},{"type":"buy_shares","entity":5,"entity_type":"player","id":376,"created_at":1680036920,"shares":["BH_7"],"percent":10,"share_price":false},{"type":"program_share_pass","entity":1,"entity_type":"player","id":377,"created_at":1680041009,"auto_actions":[{"type":"pass","entity":1,"entity_type":"player","created_at":1680041007}],"unconditional":false,"indefinite":false},{"type":"buy_shares","entity":2,"entity_type":"player","id":378,"created_at":1680249815,"shares":["FE&MV_1"],"percent":10,"share_price":false},{"type":"program_buy_shares","entity":2,"entity_type":"player","id":379,"created_at":1680249836,"corporation":"FE&MV","until_condition":5,"from_market":false,"auto_pass_after":false},{"type":"program_buy_shares","entity":2,"entity_type":"player","id":380,"created_at":1680249858,"corporation":"FE&MV","until_condition":4,"from_market":false,"auto_pass_after":false},{"type":"program_buy_shares","entity":2,"corporation":"FE&MV","entity_type":"player","from_market":false,"auto_pass_after":false,"until_condition":4,"id":381,"user":2,"created_at":1680249861},{"type":"undo","entity":4,"entity_type":"player","id":382,"user":2,"created_at":1680249874},{"type":"program_buy_shares","entity":2,"entity_type":"player","id":383,"created_at":1680249878,"corporation":"WYC","until_condition":4,"from_market":false,"auto_pass_after":false},{"type":"program_disable","entity":2,"reason":"user","entity_type":"player","original_type":"program_buy_shares","id":384,"user":2,"created_at":1680249888},{"type":"program_buy_shares","entity":2,"corporation":"WYC","entity_type":"player","from_market":false,"auto_pass_after":false,"until_condition":1,"id":385,"user":2,"created_at":1680249895},{"type":"program_disable","entity":2,"reason":"user","entity_type":"player","original_type":"program_buy_shares","id":386,"user":2,"created_at":1680249921},{"type":"program_buy_shares","entity":2,"corporation":"FE&MV","entity_type":"player","from_market":false,"auto_pass_after":false,"until_condition":4,"id":387,"user":2,"created_at":1680249926},{"type":"undo","entity":4,"entity_type":"player","id":388,"user":2,"created_at":1680249945},{"type":"undo","entity":4,"entity_type":"player","id":389,"user":2,"created_at":1680249948},{"type":"undo","entity":4,"entity_type":"player","id":390,"user":2,"created_at":1680249961},{"type":"undo","entity":4,"entity_type":"player","id":391,"user":2,"created_at":1680249965},{"type":"program_share_pass","entity":4,"indefinite":false,"entity_type":"player","auto_actions":[{"type":"pass","entity":4,"created_at":1680250020,"entity_type":"player"}],"unconditional":false,"id":392,"user":4,"created_at":1680250022},{"type":"program_share_pass","entity":5,"indefinite":false,"entity_type":"player","auto_actions":[{"type":"pass","entity":5,"created_at":1680254532,"entity_type":"player"},{"type":"pass","entity":1,"created_at":1680254532,"entity_type":"player"},{"type":"buy_shares","entity":2,"shares":["WYC_6"],"percent":10,"created_at":1680254532,"entity_type":"player"},{"type":"pass","entity":4,"created_at":1680254532,"entity_type":"player"},{"type":"pass","entity":5,"created_at":1680254532,"entity_type":"player"},{"type":"pass","entity":1,"created_at":1680254532,"entity_type":"player"},{"type":"buy_shares","entity":2,"shares":["WYC_7"],"percent":10,"created_at":1680254532,"entity_type":"player"},{"type":"pass","entity":4,"created_at":1680254532,"entity_type":"player"},{"type":"pass","entity":5,"created_at":1680254532,"entity_type":"player"},{"type":"pass","entity":1,"created_at":1680254532,"entity_type":"player"}],"unconditional":false,"id":393,"user":5,"created_at":1680254534},{"type":"undo","entity":2,"entity_type":"player","id":394,"user":2,"created_at":1680258848},{"type":"undo","entity":5,"entity_type":"player","id":395,"user":2,"created_at":1680258851},{"type":"pass","entity":4,"entity_type":"player","id":396,"user":2,"created_at":1680258852},{"type":"pass","entity":5,"entity_type":"player","auto_actions":[{"type":"pass","entity":1,"created_at":1680258852,"entity_type":"player"},{"type":"buy_shares","entity":2,"shares":["WYC_6"],"percent":10,"created_at":1680258852,"entity_type":"player"}],"id":397,"user":2,"created_at":1680258854},{"type":"undo","entity":4,"entity_type":"player","id":398,"user":2,"created_at":1680258859},{"type":"program_buy_shares","entity":2,"entity_type":"player","id":399,"created_at":1680258868,"corporation":"FE&MV","until_condition":4,"from_market":false,"auto_pass_after":false},{"type":"pass","entity":5,"entity_type":"player","id":400,"user":2,"created_at":1680258877,"auto_actions":[{"type":"pass","entity":1,"entity_type":"player","created_at":1680258875},{"type":"buy_shares","entity":2,"entity_type":"player","created_at":1680258875,"shares":["FE&MV_2"],"percent":10}]},{"type":"pass","entity":4,"entity_type":"player","id":401,"user":2,"created_at":1680258883},{"type":"pass","entity":5,"entity_type":"player","id":402,"user":2,"created_at":1680258885,"auto_actions":[{"type":"pass","entity":1,"entity_type":"player","created_at":1680258883},{"type":"program_disable","entity":2,"entity_type":"player","created_at":1680258883,"reason":"4 share(s) bought in FE&MV, end condition met"}]},{"type":"buy_shares","entity":2,"entity_type":"player","id":403,"created_at":1680258911,"shares":["FE&MV_3"],"percent":10,"share_price":false},{"type":"program_share_pass","entity":4,"entity_type":"player","id":404,"created_at":1680299657,"auto_actions":[{"type":"pass","entity":4,"entity_type":"player","created_at":1680299655}],"unconditional":false,"indefinite":false},{"type":"program_share_pass","entity":5,"entity_type":"player","id":405,"created_at":1680300965,"auto_actions":[{"type":"pass","entity":5,"entity_type":"player","created_at":1680300963},{"type":"pass","entity":1,"entity_type":"player","created_at":1680300963}],"unconditional":false,"indefinite":false},{"type":"pass","entity":2,"entity_type":"player","id":406,"created_at":1680308866},{"type":"hex_token","entity":"Coal-B","entity_type":"minor","id":407,"created_at":1680319890,"hex":"K15","cost":0,"token_type":"development"},{"type":"hex_token","entity":"Coal-D","entity_type":"minor","id":408,"created_at":1680640145,"hex":"E19","cost":0,"token_type":"development"},{"type":"pass","entity":"Coal-A","entity_type":"minor","id":409,"created_at":1680641313},{"type":"hex_token","entity":"Coal-C","entity_type":"minor","id":410,"created_at":1680828743,"hex":"D12","cost":0,"token_type":"development"},{"type":"lay_tile","entity":"LNP","entity_type":"corporation","id":411,"created_at":1680843974,"hex":"M17","tile":"9-7","rotation":2},{"type":"lay_tile","entity":"LNP","entity_type":"corporation","id":412,"created_at":1680843986,"hex":"L16","tile":"58-1","rotation":3},{"type":"pass","entity":"LNP","entity_type":"corporation","id":413,"created_at":1680843994},{"type":"pass","entity":"LNP","entity_type":"corporation","id":414,"created_at":1680843996},{"type":"run_routes","entity":"LNP","entity_type":"corporation","id":415,"created_at":1680844077,"routes":[{"train":"3-1","connections":[["M21","M19"],["M19","N18"],["N18","M17","L16"],["L16","K17"]],"hexes":["M21","M19","N18","L16","K17"],"revenue":130,"revenue_str":"M21-M19-N18-L16-K17","nodes":["M21-0","M19-0","N18-0","L16-0","K17-0"]},{"train":"4-2","connections":[["M25","M27"],["M23","M25"],["M21","M23"]],"hexes":["M27","M25","M23","M21"],"revenue":110,"revenue_str":"M27-M25-M23-M21","nodes":["M25-0","M27-0","M23-0","M21-0"]}]},{"kind":"payout","type":"dividend","entity":"LNP","entity_type":"corporation","id":416,"user":5,"created_at":1680844080},{"type":"undo","entity":"LNP","entity_type":"corporation","id":417,"user":5,"created_at":1680844094},{"type":"dividend","entity":"LNP","entity_type":"corporation","id":418,"created_at":1680844097,"kind":"withhold"},{"type":"pass","entity":"LNP","entity_type":"corporation","id":419,"created_at":1680844105},{"type":"pass","entity":"LNP","entity_type":"corporation","id":420,"created_at":1680844114},{"type":"lay_tile","entity":"UP","entity_type":"corporation","id":421,"created_at":1680846949,"hex":"H10","tile":"15-0","rotation":3},{"type":"lay_tile","entity":"UP","entity_type":"corporation","id":422,"created_at":1680846973,"auto_actions":[{"type":"pass","entity":"UP","entity_type":"corporation","created_at":1680846971}],"hex":"C11","tile":"206B-2","rotation":2},{"type":"double_head_trains","entity":"UP","entity_type":"corporation","id":423,"created_at":1680846984,"trains":["3-2","3-3"]},{"type":"run_routes","entity":"UP","entity_type":"corporation","id":424,"created_at":1680847055,"routes":[{"train":"3-2_3-3-0","connections":[["L8","M7","M5","M3","M1"],["K15","K13","L12","M11","M9","L8"],["K17","K15"],["L20","K19","K17"],["M21","L20"],["M23","M21"],["M25","M23"],["M27","M25"]],"hexes":["M1","L8","K15","K17","L20","M21","M23","M25","M27"],"revenue":320,"revenue_str":"M1-L8-K15-K17-L20-M21-M23-M25-M27 + E/W","nodes":["L8-0","M1-0","K15-0","K17-0","L20-0","M21-0","M23-0","M25-0","M27-0"]}]},{"type":"dividend","entity":"UP","entity_type":"corporation","id":425,"created_at":1680847075,"kind":"payout"},{"type":"pass","entity":"UP","entity_type":"corporation","id":426,"created_at":1680847077},{"hex":"I17","tile":"8-10","type":"lay_tile","entity":"WYC","rotation":3,"entity_type":"corporation","id":427,"user":4,"created_at":1680851281},{"hex":"J18","tile":"8-11","type":"lay_tile","entity":"WYC","rotation":0,"entity_type":"corporation","id":428,"user":4,"created_at":1680851284},{"type":"pass","entity":"WYC","entity_type":"corporation","id":429,"user":4,"created_at":1680851300},{"type":"pass","entity":"WYC","entity_type":"corporation","id":430,"user":4,"created_at":1680851308},{"type":"undo","entity":"WYC","action_id":426,"entity_type":"corporation","id":431,"user":4,"created_at":1680913364},{"hex":"D24","tile":"205b-1","type":"lay_tile","entity":"WYC","rotation":4,"entity_type":"corporation","id":432,"user":4,"created_at":1680913377},{"hex":"E25","tile":"8-10","type":"lay_tile","entity":"WYC","rotation":2,"entity_type":"corporation","auto_actions":[{"type":"pass","entity":"WYC","created_at":1680913377,"entity_type":"corporation"}],"id":433,"user":4,"created_at":1680913379},{"type":"pass","entity":"WYC","entity_type":"corporation","id":434,"user":4,"created_at":1680913385},{"type":"undo","entity":"WYC","action_id":426,"entity_type":"corporation","id":435,"user":4,"created_at":1680913410},{"type":"lay_tile","entity":"WYC","entity_type":"corporation","id":436,"created_at":1680913416,"hex":"H16","tile":"9-8","rotation":1},{"type":"lay_tile","entity":"WYC","entity_type":"corporation","id":437,"created_at":1680913419,"hex":"H14","tile":"9-9","rotation":1},{"type":"lay_tile","entity":"WYC","entity_type":"corporation","id":438,"created_at":1680913422,"auto_actions":[{"type":"pass","entity":"WYC","entity_type":"corporation","created_at":1680913420}],"hex":"H12","tile":"9-10","rotation":1},{"type":"place_token","entity":"WYC","entity_type":"corporation","id":439,"created_at":1680913460,"city":"15-0-0","slot":1,"tokener":"WYC"},{"type":"run_routes","entity":"WYC","entity_type":"corporation","id":440,"created_at":1680913516,"routes":[{"train":"4-0","connections":[["L8","M7","M5","M3","M1"],["K15","K13","L12","M11","M9","L8"],["J12","J14","K15"],["H10","I11","J12"],["H18","H16","H14","H12","H10"],["H18","G17","F18"]],"hexes":["M1","L8","K15","J12","H10","H18","F18"],"revenue":180,"revenue_str":"M1-L8-K15-J12-H10-H18-F18 + 1 Fort","nodes":["L8-0","M1-0","K15-0","J12-0","H10-0","H18-0","F18-0"]}]},{"kind":"payout","type":"dividend","entity":"WYC","entity_type":"corporation","id":441,"user":4,"created_at":1680913518},{"type":"undo","entity":"WYC","entity_type":"corporation","id":442,"user":4,"created_at":1680913538},{"kind":"withhold","type":"dividend","entity":"WYC","entity_type":"corporation","id":443,"user":4,"created_at":1680913540},{"type":"undo","entity":"WYC","entity_type":"corporation","id":444,"user":4,"created_at":1680913549},{"type":"dividend","entity":"WYC","entity_type":"corporation","id":445,"created_at":1680913551,"kind":"payout"},{"type":"sell_shares","entity":"WYC","entity_type":"corporation","id":446,"created_at":1680913568,"shares":["WYC_6","WYC_7","WYC_8"],"percent":30},{"type":"buy_train","entity":"WYC","entity_type":"corporation","id":447,"created_at":1680913583,"train":"5-0","price":580,"variant":"5+4"},{"type":"pass","entity":"WYC","entity_type":"corporation","id":448,"created_at":1680913587},{"type":"pass","entity":"WYC","entity_type":"corporation","id":449,"created_at":1680913590},{"type":"lay_tile","entity":"FE&MV","entity_type":"corporation","id":450,"created_at":1680956914,"hex":"G25","tile":"8-10","rotation":4},{"type":"lay_tile","entity":"FE&MV","entity_type":"corporation","id":451,"created_at":1680956917,"hex":"H24","tile":"8-11","rotation":1},{"type":"pass","entity":"FE&MV","entity_type":"corporation","id":452,"created_at":1680956974},{"type":"place_token","entity":"FE&MV","entity_type":"corporation","id":453,"created_at":1680956980,"city":"GC-2-0","slot":1,"tokener":"FE&MV"},{"type":"sell_shares","entity":"FE&MV","entity_type":"corporation","id":454,"created_at":1680956999,"shares":["FE&MV_4","FE&MV_5"],"percent":20},{"type":"buy_train","entity":"FE&MV","entity_type":"corporation","id":455,"created_at":1680957006,"train":"5-1","price":580,"variant":"5+4"},{"type":"pass","entity":"FE&MV","entity_type":"corporation","id":456,"created_at":1680957009},{"type":"lay_tile","entity":"RCL","entity_type":"corporation","id":457,"created_at":1681042739,"hex":"H18","tile":"BC-0","rotation":1},{"type":"lay_tile","entity":"RCL","entity_type":"corporation","id":458,"created_at":1681042762,"auto_actions":[{"type":"pass","entity":"RCL","entity_type":"corporation","created_at":1681042760}],"hex":"H22","tile":"205b-1","rotation":4},{"type":"place_token","entity":"RCL","entity_type":"corporation","id":459,"created_at":1681042887,"city":"BC-0-0","slot":2,"tokener":"RCL"},{"type":"pass","entity":"RCL","entity_type":"corporation","id":460,"created_at":1681043799},{"type":"run_routes","entity":"RCL","entity_type":"corporation","id":461,"created_at":1681043831,"routes":[{"train":"3-4","connections":[["D20","D22","D24"],["F18","E19","D20"],["H18","G17","F18"]],"hexes":["D24","D20","F18","H18"],"revenue":80,"revenue_str":"D24-D20-F18-H18","nodes":["D20-0","D24-0","F18-0","H18-0"]},{"train":"3-5","connections":[["H18","H20","H22"],["H18","H16","H14","H12","H10"]],"hexes":["H22","H18","H10"],"revenue":90,"revenue_str":"H22-H18-H10","nodes":["H18-0","H22-0","H10-0"]}]},{"type":"dividend","entity":"RCL","entity_type":"corporation","id":462,"created_at":1681043834,"kind":"payout"},{"type":"pass","entity":"RCL","entity_type":"corporation","id":463,"created_at":1681043837},{"type":"pass","entity":"RCL","entity_type":"corporation","id":464,"created_at":1681043842},{"type":"buy_shares","entity":"BH","entity_type":"corporation","id":465,"created_at":1681044036,"shares":["BH_6"],"percent":10},{"hex":"C9","tile":"BC-1","type":"lay_tile","entity":"P5a","rotation":4,"entity_type":"company","id":466,"user":2,"created_at":1681044057},{"hex":"C11","tile":"448B-0","type":"lay_tile","entity":"BH","rotation":5,"entity_type":"corporation","id":467,"user":2,"created_at":1681044078},{"hex":"B10","tile":"57b-4","type":"lay_tile","entity":"BH","rotation":2,"entity_type":"corporation","auto_actions":[{"type":"pass","entity":"BH","created_at":1681044084,"entity_type":"corporation"}],"id":468,"user":2,"created_at":1681044086},{"type":"pass","entity":"BH","entity_type":"corporation","id":469,"user":2,"created_at":1681044127},{"type":"pass","entity":"BH","entity_type":"corporation","id":470,"user":2,"created_at":1681044133},{"type":"undo","entity":"BH","entity_type":"corporation","id":471,"user":2,"created_at":1681044159},{"type":"undo","entity":"BH","entity_type":"corporation","id":472,"user":2,"created_at":1681044163},{"type":"undo","entity":"BH","entity_type":"corporation","id":473,"user":2,"created_at":1681044166},{"type":"undo","entity":"BH","entity_type":"corporation","id":474,"user":2,"created_at":1681044170},{"hex":"B10","tile":"57b-4","type":"lay_tile","entity":"BH","rotation":0,"entity_type":"corporation","id":475,"user":2,"created_at":1681044172},{"type":"pass","entity":"BH","entity_type":"corporation","id":476,"user":2,"created_at":1681044174},{"type":"pass","entity":"BH","entity_type":"corporation","id":477,"user":2,"created_at":1681044177},{"type":"pass","entity":"BH","entity_type":"corporation","id":478,"user":2,"created_at":1681044179},{"type":"undo","entity":"BH","entity_type":"corporation","id":479,"user":2,"created_at":1681044228},{"type":"undo","entity":"BH","entity_type":"corporation","id":480,"user":2,"created_at":1681044232},{"city":"206B-2-0","slot":0,"type":"place_token","entity":"BH","tokener":"BH","entity_type":"corporation","id":481,"user":2,"created_at":1681044234},{"type":"undo","entity":"BH","entity_type":"corporation","id":482,"user":2,"created_at":1681044238},{"type":"undo","entity":"BH","entity_type":"corporation","id":483,"user":2,"created_at":1681044242},{"type":"undo","entity":"BH","entity_type":"corporation","id":484,"user":2,"created_at":1681044245},{"type":"undo","entity":"BH","entity_type":"corporation","id":485,"user":2,"created_at":1681044249},{"hex":"G11","tile":"142-0","type":"lay_tile","entity":"P5a","rotation":0,"entity_type":"company","id":486,"user":2,"created_at":1681044255},{"hex":"H12","tile":"20-0","type":"lay_tile","entity":"BH","rotation":1,"entity_type":"corporation","id":487,"user":2,"created_at":1681044263},{"hex":"I13","tile":"8-12","type":"lay_tile","entity":"BH","rotation":0,"entity_type":"corporation","auto_actions":[{"type":"pass","entity":"BH","created_at":1681044271,"entity_type":"corporation"}],"id":488,"user":2,"created_at":1681044273},{"type":"undo","entity":"BH","entity_type":"corporation","id":489,"user":2,"created_at":1681044281},{"type":"undo","entity":"BH","entity_type":"corporation","id":490,"user":2,"created_at":1681044284},{"type":"undo","entity":"BH","entity_type":"corporation","id":491,"user":2,"created_at":1681044288},{"type":"lay_tile","entity":"BH","entity_type":"corporation","id":492,"created_at":1681044390,"hex":"C9","tile":"BC-1","rotation":4},{"hex":"C11","tile":"448B-0","type":"lay_tile","entity":"P5a","rotation":5,"entity_type":"company","id":493,"user":2,"created_at":1681044428},{"hex":"B10","tile":"57b-4","type":"lay_tile","entity":"BH","rotation":0,"entity_type":"corporation","auto_actions":[{"type":"pass","entity":"BH","created_at":1681044483,"entity_type":"corporation"}],"id":494,"user":2,"created_at":1681044486},{"type":"undo","entity":"BH","entity_type":"corporation","id":495,"user":2,"created_at":1681044497},{"type":"undo","entity":"BH","entity_type":"corporation","id":496,"user":2,"created_at":1681044510},{"type":"lay_tile","entity":"BH","entity_type":"corporation","id":497,"created_at":1681044514,"hex":"D12","tile":"12B-0","rotation":0},{"hex":"D10","tile":"8-12","type":"lay_tile","entity":"P5a","rotation":2,"entity_type":"company","auto_actions":[{"type":"pass","entity":"BH","created_at":1681044525,"entity_type":"corporation"}],"id":498,"user":2,"created_at":1681044527},{"city":"12B-0-0","slot":0,"type":"place_token","entity":"BH","tokener":"BH","entity_type":"corporation","id":499,"user":2,"created_at":1681044536},{"type":"pass","entity":"BH","entity_type":"corporation","id":500,"user":2,"created_at":1681044540},{"type":"undo","entity":"BH","entity_type":"corporation","id":501,"user":2,"created_at":1681044611},{"type":"undo","entity":"BH","entity_type":"corporation","id":502,"user":2,"created_at":1681044615},{"type":"undo","entity":"BH","entity_type":"corporation","id":503,"user":2,"created_at":1681044619},{"type":"lay_tile","entity":"P5a","entity_type":"company","id":504,"created_at":1681044644,"auto_actions":[{"type":"pass","entity":"BH","entity_type":"corporation","created_at":1681044642}],"hex":"B10","tile":"57b-4","rotation":0},{"type":"pass","entity":"BH","entity_type":"corporation","id":505,"user":2,"created_at":1681044662},{"type":"pass","entity":"BH","entity_type":"corporation","id":506,"user":2,"created_at":1681044664},{"type":"undo","entity":"BH","entity_type":"corporation","id":507,"user":2,"created_at":1681044817},{"type":"undo","entity":"BH","entity_type":"corporation","id":508,"user":2,"created_at":1681044821},{"type":"place_token","entity":"BH","entity_type":"corporation","id":509,"created_at":1681044824,"city":"12B-0-0","slot":0,"tokener":"BH"},{"type":"pass","entity":"BH","entity_type":"corporation","id":510,"created_at":1681044827},{"type":"run_routes","entity":"BH","entity_type":"corporation","id":511,"created_at":1681044859,"routes":[{"train":"4-1","connections":[["G11","H10"],["E11","F12","G11"],["D12","E11"],["C11","D12"],["C9","C11"],["C5","C7","C9"]],"hexes":["H10","G11","E11","D12","C11","C9","C5"],"revenue":150,"revenue_str":"H10-G11-E11-D12-C11-C9-C5","nodes":["G11-0","H10-0","E11-0","D12-0","C11-0","C9-0","C5-5"]},{"train":"2+1-0","connections":[["B10","A11"],["C9","B10"]],"hexes":["A11","B10","C9"],"revenue":90,"revenue_str":"A11-B10-C9","nodes":["B10-0","A11-0","C9-0"]}]},{"type":"dividend","entity":"BH","entity_type":"corporation","id":512,"created_at":1681044866,"kind":"payout"},{"type":"choose","entity":"BH","entity_type":"corporation","id":513,"created_at":1681044889,"choice":"0"},{"type":"pass","entity":"BH","entity_type":"corporation","id":514,"created_at":1681044903},{"type":"pass","entity":"BH","entity_type":"corporation","id":515,"created_at":1681044907},{"type":"lay_tile","entity":"WNW","entity_type":"corporation","id":516,"created_at":1681051400,"hex":"E11","tile":"141-0","rotation":2},{"type":"lay_tile","entity":"WNW","entity_type":"corporation","id":517,"created_at":1681051404,"auto_actions":[{"type":"pass","entity":"WNW","entity_type":"corporation","created_at":1681051401}],"hex":"D10","tile":"9-11","rotation":2},{"type":"place_token","entity":"WNW","entity_type":"corporation","id":518,"created_at":1681051406,"city":"BC-1-0","slot":1,"tokener":"WNW"},{"type":"run_routes","entity":"WNW","entity_type":"corporation","id":519,"created_at":1681051553,"routes":[{"train":"4-3","connections":[["H10","H12","H14","H16","H18"],["J12","I11","H10"],["K15","J14","J12"],["L8","M9","M11","L12","K13","K15"],["M1","M3","M5","M7","L8"]],"hexes":["H18","H10","J12","K15","L8","M1"],"revenue":180,"revenue_str":"H18-H10-J12-K15-L8-M1 + Uranium","nodes":["H10-0","H18-0","J12-0","K15-0","L8-0","M1-0"]}]},{"type":"dividend","entity":"WNW","entity_type":"corporation","id":520,"created_at":1681051561,"kind":"payout"},{"type":"pass","entity":"WNW","entity_type":"corporation","id":521,"created_at":1681051566},{"type":"hex_token","entity":"Coal-B","entity_type":"minor","id":522,"created_at":1681051574,"hex":"K15","cost":0,"token_type":"development"},{"type":"hex_token","entity":"Oil-B","entity_type":"minor","id":523,"created_at":1681051583,"hex":"K17","cost":0,"token_type":"development"},{"hex":"J14","cost":0,"type":"hex_token","entity":"Coal-D","token_type":"development","entity_type":"minor","id":524,"user":4,"created_at":1681074898},{"type":"undo","entity":"Oil-D","entity_type":"minor","id":525,"user":4,"created_at":1681074910},{"type":"hex_token","entity":"Coal-D","entity_type":"minor","id":526,"created_at":1681074919,"hex":"D22","cost":0,"token_type":"development"},{"type":"hex_token","entity":"Oil-D","entity_type":"minor","id":527,"created_at":1681074936,"hex":"E19","cost":0,"token_type":"development"},{"type":"hex_token","entity":"Coal-A","entity_type":"minor","id":528,"created_at":1681076926,"hex":"L16","cost":0,"token_type":"development"},{"type":"pass","entity":"Oil-A","entity_type":"minor","id":529,"created_at":1681076947},{"type":"hex_token","entity":"Coal-C","entity_type":"minor","id":530,"created_at":1681077050,"hex":"D10","cost":0,"token_type":"development"},{"type":"hex_token","entity":"Oil-C","entity_type":"minor","id":531,"created_at":1681077066,"hex":"D10","cost":0,"token_type":"development"},{"type":"lay_tile","entity":"UP","entity_type":"corporation","id":532,"created_at":1681089628,"hex":"K15","tile":"448B-0","rotation":1},{"type":"lay_tile","entity":"UP","entity_type":"corporation","id":533,"created_at":1681089656,"auto_actions":[{"type":"pass","entity":"UP","entity_type":"corporation","created_at":1681089654}],"hex":"K17","tile":"449B-0","rotation":0},{"type":"double_head_trains","entity":"UP","entity_type":"corporation","id":534,"created_at":1681089672,"trains":["3-2","3-3"]},{"type":"run_routes","entity":"UP","entity_type":"corporation","id":535,"created_at":1681089679,"routes":[{"train":"3-2_3-3-0","connections":[["L8","M7","M5","M3","M1"],["K15","K13","L12","M11","M9","L8"],["K17","K15"],["L20","K19","K17"],["M21","L20"],["M23","M21"],["M25","M23"],["M27","M25"]],"hexes":["M1","L8","K15","K17","L20","M21","M23","M25","M27"],"revenue":370,"revenue_str":"M1-L8-K15-K17-L20-M21-M23-M25-M27 + E/W","nodes":["L8-0","M1-0","K15-0","K17-0","L20-0","M21-0","M23-0","M25-0","M27-0"]}]},{"type":"dividend","entity":"UP","entity_type":"corporation","id":536,"created_at":1681089681,"kind":"payout"},{"type":"lay_tile","entity":"LNP","entity_type":"corporation","id":537,"created_at":1681103343,"hex":"M21","tile":"BL-0","rotation":0},{"type":"lay_tile","entity":"LNP","entity_type":"corporation","id":538,"created_at":1681103406,"auto_actions":[{"type":"pass","entity":"LNP","entity_type":"corporation","created_at":1681103405}],"hex":"J12","tile":"13b-0","rotation":0},{"type":"place_token","entity":"LNP","entity_type":"corporation","id":539,"created_at":1681103412,"city":"448B-0-0","slot":1,"tokener":"LNP"},{"type":"pass","entity":"LNP","entity_type":"corporation","id":540,"created_at":1681103430},{"type":"run_routes","entity":"LNP","entity_type":"corporation","id":541,"created_at":1681103510,"routes":[{"train":"3-1","connections":[["L16","M17","N18"],["K17","L16"],["K15","K17"],["L8","M9","M11","L12","K13","K15"]],"hexes":["N18","L16","K17","K15","L8"],"revenue":150,"revenue_str":"N18-L16-K17-K15-L8","nodes":["L16-0","N18-0","K17-0","K15-0","L8-0"]},{"train":"4-2","connections":[["M23","M21"],["M25","M23"],["M27","M25"]],"hexes":["M21","M23","M25","M27"],"revenue":130,"revenue_str":"M21-M23-M25-M27","nodes":["M23-0","M21-0","M25-0","M27-0"]}]},{"type":"dividend","entity":"LNP","entity_type":"corporation","id":542,"created_at":1681103512,"kind":"withhold"},{"type":"buy_train","entity":"LNP","entity_type":"corporation","id":543,"created_at":1681103529,"train":"5-2","price":500,"variant":"5"},{"type":"pass","entity":"LNP","entity_type":"corporation","id":544,"created_at":1681103546},{"hex":"C11","tile":"449B-1","type":"lay_tile","entity":"BH","rotation":1,"entity_type":"corporation","id":545,"user":2,"created_at":1681215047},{"hex":"D12","tile":"448B-1","type":"lay_tile","entity":"BH","rotation":0,"entity_type":"corporation","auto_actions":[{"type":"pass","entity":"BH","created_at":1681215050,"entity_type":"corporation"}],"id":546,"user":2,"created_at":1681215052},{"type":"pass","entity":"BH","entity_type":"corporation","id":547,"user":2,"created_at":1681215065},{"type":"pass","entity":"BH","entity_type":"corporation","id":548,"user":2,"created_at":1681215070},{"type":"undo","entity":"BH","entity_type":"corporation","id":549,"user":2,"created_at":1681215135},{"type":"undo","entity":"BH","entity_type":"corporation","id":550,"user":2,"created_at":1681215140},{"type":"undo","entity":"BH","entity_type":"corporation","id":551,"user":2,"created_at":1681215144},{"type":"undo","entity":"BH","entity_type":"corporation","id":552,"user":2,"created_at":1681215173},{"hex":"D12","tile":"448B-1","type":"lay_tile","entity":"BH","rotation":0,"entity_type":"corporation","id":553,"user":2,"created_at":1681215198},{"hex":"B8","tile":"8-12","type":"lay_tile","entity":"BH","rotation":3,"entity_type":"corporation","auto_actions":[{"type":"pass","entity":"BH","created_at":1681215202,"entity_type":"corporation"}],"id":554,"user":2,"created_at":1681215204},{"type":"pass","entity":"BH","entity_type":"corporation","id":555,"user":2,"created_at":1681215225},{"type":"pass","entity":"BH","entity_type":"corporation","id":556,"user":2,"created_at":1681215228},{"type":"undo","entity":"BH","entity_type":"corporation","id":557,"user":2,"created_at":1681215281},{"type":"undo","entity":"BH","entity_type":"corporation","id":558,"user":2,"created_at":1681215286},{"type":"undo","entity":"BH","entity_type":"corporation","id":559,"user":2,"created_at":1681215290},{"type":"undo","entity":"BH","entity_type":"corporation","id":560,"user":2,"created_at":1681215295},{"hex":"G11","tile":"141-1","type":"lay_tile","entity":"BH","rotation":0,"entity_type":"corporation","id":561,"user":2,"created_at":1681215297},{"hex":"G9","tile":"58-2","type":"lay_tile","entity":"BH","rotation":2,"entity_type":"corporation","auto_actions":[{"type":"pass","entity":"BH","created_at":1681215288,"entity_type":"corporation"}],"id":562,"user":2,"created_at":1681215299},{"type":"undo","entity":"BH","entity_type":"corporation","id":563,"user":2,"created_at":1681215330},{"type":"undo","entity":"BH","entity_type":"corporation","id":564,"user":2,"created_at":1681215334},{"hex":"B10","tile":"206b-2","type":"lay_tile","entity":"BH","rotation":0,"entity_type":"corporation","id":565,"user":2,"created_at":1681215374},{"hex":"C11","tile":"450B-0","type":"lay_tile","entity":"BH","rotation":5,"entity_type":"corporation","auto_actions":[{"type":"pass","entity":"BH","created_at":1681215377,"entity_type":"corporation"}],"id":566,"user":2,"created_at":1681215379},{"type":"pass","entity":"BH","entity_type":"corporation","id":567,"user":2,"created_at":1681215383},{"type":"pass","entity":"BH","entity_type":"corporation","id":568,"user":2,"created_at":1681215385},{"type":"undo","entity":"BH","entity_type":"corporation","id":569,"user":2,"created_at":1681215427},{"type":"undo","entity":"BH","entity_type":"corporation","id":570,"user":2,"created_at":1681215431},{"type":"undo","entity":"BH","entity_type":"corporation","id":571,"user":2,"created_at":1681215436},{"type":"undo","entity":"BH","entity_type":"corporation","id":572,"user":2,"created_at":1681215440},{"hex":"C11","tile":"450B-0","type":"lay_tile","entity":"BH","rotation":5,"entity_type":"corporation","id":573,"user":2,"created_at":1681215442},{"hex":"B12","tile":"58-2","type":"lay_tile","entity":"BH","rotation":0,"entity_type":"corporation","auto_actions":[{"type":"pass","entity":"BH","created_at":1681215451,"entity_type":"corporation"}],"id":574,"user":2,"created_at":1681215453},{"type":"pass","entity":"BH","entity_type":"corporation","id":575,"user":2,"created_at":1681215457},{"type":"pass","entity":"BH","entity_type":"corporation","id":576,"user":2,"created_at":1681215460},{"type":"undo","entity":"BH","entity_type":"corporation","id":577,"user":2,"created_at":1681215508},{"type":"undo","entity":"BH","entity_type":"corporation","id":578,"user":2,"created_at":1681215512},{"type":"undo","entity":"BH","entity_type":"corporation","id":579,"user":2,"created_at":1681215517},{"type":"undo","entity":"BH","entity_type":"corporation","id":580,"user":2,"created_at":1681215521},{"hex":"C11","tile":"450B-0","type":"lay_tile","entity":"BH","rotation":5,"entity_type":"corporation","id":581,"user":2,"created_at":1681215523},{"hex":"D12","tile":"448B-1","type":"lay_tile","entity":"BH","rotation":5,"entity_type":"corporation","auto_actions":[{"type":"pass","entity":"BH","created_at":1681215532,"entity_type":"corporation"}],"id":582,"user":2,"created_at":1681215535},{"type":"pass","entity":"BH","entity_type":"corporation","id":583,"user":2,"created_at":1681215575},{"type":"pass","entity":"BH","entity_type":"corporation","id":584,"user":2,"created_at":1681215577},{"type":"undo","entity":"BH","entity_type":"corporation","id":585,"user":2,"created_at":1681215638},{"type":"undo","entity":"BH","entity_type":"corporation","id":586,"user":2,"created_at":1681215642},{"type":"undo","entity":"BH","entity_type":"corporation","id":587,"user":2,"created_at":1681215647},{"type":"undo","entity":"BH","entity_type":"corporation","id":588,"user":2,"created_at":1681215651},{"hex":"C11","tile":"450B-0","type":"lay_tile","entity":"BH","rotation":5,"entity_type":"corporation","id":589,"user":2,"created_at":1681215672},{"hex":"B12","tile":"58-2","type":"lay_tile","entity":"BH","rotation":0,"entity_type":"corporation","auto_actions":[{"type":"pass","entity":"BH","created_at":1681215672,"entity_type":"corporation"}],"id":590,"user":2,"created_at":1681215675},{"type":"pass","entity":"BH","entity_type":"corporation","id":591,"user":2,"created_at":1681215680},{"type":"pass","entity":"BH","entity_type":"corporation","id":592,"user":2,"created_at":1681215682},{"type":"undo","entity":"BH","entity_type":"corporation","id":593,"user":2,"created_at":1681215746},{"type":"undo","entity":"BH","entity_type":"corporation","id":594,"user":2,"created_at":1681215750},{"type":"undo","entity":"BH","entity_type":"corporation","id":595,"user":2,"created_at":1681215755},{"type":"undo","entity":"BH","entity_type":"corporation","id":596,"user":2,"created_at":1681215759},{"type":"lay_tile","entity":"BH","entity_type":"corporation","id":597,"created_at":1681215761,"hex":"C11","tile":"450B-0","rotation":5},{"type":"lay_tile","entity":"BH","entity_type":"corporation","id":598,"created_at":1681215764,"auto_actions":[{"type":"pass","entity":"BH","entity_type":"corporation","created_at":1681215760}],"hex":"D12","tile":"448B-1","rotation":5},{"type":"pass","entity":"BH","entity_type":"corporation","id":599,"created_at":1681215797},{"type":"pass","entity":"BH","entity_type":"corporation","id":600,"created_at":1681215805},{"type":"run_routes","entity":"BH","entity_type":"corporation","id":601,"created_at":1681215844,"routes":[{"train":"4-1","connections":[["G11","H10"],["E11","F12","G11"],["C9","D10","E11"],["B10","C9"],["A11","B10"]],"hexes":["H10","G11","E11","C9","B10","A11"],"revenue":140,"revenue_str":"H10-G11-E11-C9-B10-A11","nodes":["G11-0","H10-0","E11-0","C9-0","B10-0","A11-0"]},{"train":"2+1-0","connections":[["D12","E11"],["C11","D12"],["C9","C11"],["C5","C7","C9"]],"hexes":["E11","D12","C11","C9","C5"],"revenue":190,"revenue_str":"E11-D12-C11-C9-C5","nodes":["D12-0","E11-0","C11-0","C9-0","C5-5"]}]},{"type":"dividend","entity":"BH","entity_type":"corporation","id":602,"created_at":1681215856,"kind":"payout"},{"type":"pass","entity":"BH","entity_type":"corporation","id":603,"created_at":1681215863},{"type":"pass","entity":"BH","entity_type":"corporation","id":604,"created_at":1681215936},{"type":"lay_tile","entity":"RCL","entity_type":"corporation","id":605,"created_at":1681306210,"hex":"I19","tile":"8-12","rotation":0},{"type":"lay_tile","entity":"RCL","entity_type":"corporation","id":606,"created_at":1681306215,"hex":"J18","tile":"9-12","rotation":0},{"type":"pass","entity":"RCL","entity_type":"corporation","id":607,"created_at":1681306233},{"type":"place_token","entity":"RCL","entity_type":"corporation","id":608,"created_at":1681306255,"city":"449B-0-0","slot":1,"tokener":"RCL"},{"type":"double_head_trains","entity":"RCL","trains":["3-4","3-5"],"entity_type":"corporation","id":609,"user":4,"created_at":1681306278},{"type":"undo","entity":"RCL","entity_type":"corporation","id":610,"user":4,"created_at":1681306333},{"type":"double_head_trains","entity":"RCL","entity_type":"corporation","id":611,"created_at":1681306351,"trains":["3-4","3-5"]},{"type":"run_routes","entity":"RCL","entity_type":"corporation","id":612,"created_at":1681306394,"routes":[{"train":"3-4_3-5-0","connections":[["D20","D22","D24"],["F18","E19","D20"],["H18","G17","F18"],["K17","J18","I19","H18"],["K15","K17"],["L8","M9","M11","L12","K13","K15"],["M1","M3","M5","M7","L8"]],"hexes":["D24","D20","F18","H18","K17","K15","L8","M1"],"revenue":265,"revenue_str":"D24-D20-F18-H18-K17-K15-L8-M1 + P6b","nodes":["D20-0","D24-0","F18-0","H18-0","K17-0","K15-0","L8-0","M1-0"]}]},{"type":"dividend","entity":"RCL","entity_type":"corporation","id":613,"created_at":1681306397,"kind":"payout"},{"type":"sell_shares","entity":"RCL","entity_type":"corporation","id":614,"created_at":1681306407,"shares":["RCL_6","RCL_7","RCL_8"],"percent":30},{"type":"buy_train","entity":"RCL","entity_type":"corporation","id":615,"created_at":1681306411,"train":"5-3","price":500,"variant":"5"},{"type":"pass","entity":"RCL","entity_type":"corporation","id":616,"created_at":1681306416},{"type":"lay_tile","entity":"WYC","entity_type":"corporation","id":617,"created_at":1681306484,"hex":"D24","tile":"205b-2","rotation":4},{"type":"lay_tile","entity":"WYC","entity_type":"corporation","id":618,"created_at":1681306487,"auto_actions":[{"type":"pass","entity":"WYC","entity_type":"corporation","created_at":1681306484}],"hex":"E25","tile":"8-13","rotation":2},{"type":"place_token","entity":"WYC","entity_type":"corporation","id":619,"created_at":1681306494,"city":"BC-1-0","slot":2,"tokener":"WYC"},{"type":"double_head_trains","entity":"WYC","entity_type":"corporation","id":620,"created_at":1681306499,"trains":["4-0","5-0"]},{"type":"run_routes","entity":"WYC","entity_type":"corporation","id":621,"created_at":1681306578,"routes":[{"train":"4-0_5-0-0","connections":[["D24","E25","E27"],["D20","D22","D24"],["F18","E19","D20"],["H18","G17","F18"],["H10","H12","H14","H16","H18"],["G11","H10"],["E11","F12","G11"],["D12","E11"],["C11","D12"],["C9","C11"],["B10","C9"],["A11","B10"],["A11","A1"]],"hexes":["E27","D24","D20","F18","H18","H10","G11","E11","D12","C11","C9","B10","A11","A1"],"revenue":495,"revenue_str":"E27-D24-D20-F18-H18-H10-G11-E11-D12-C11-C9-B10-A11-A1 + Northern Spike + P6b","nodes":["D24-0","E27-0","D20-0","F18-0","H18-0","H10-0","G11-0","E11-0","D12-0","C11-0","C9-0","B10-0","A11-0","A1-0"]}]},{"type":"dividend","entity":"WYC","entity_type":"corporation","id":622,"created_at":1681306582,"kind":"payout"},{"type":"pass","entity":"WYC","entity_type":"corporation","id":623,"created_at":1681306586},{"type":"pass","entity":"WYC","entity_type":"corporation","id":624,"created_at":1681306588},{"type":"lay_tile","entity":"WNW","entity_type":"corporation","id":625,"created_at":1681311013,"hex":"H10","tile":"611-0","rotation":2},{"type":"lay_tile","entity":"WNW","entity_type":"corporation","id":626,"created_at":1681311021,"auto_actions":[{"type":"pass","entity":"WNW","entity_type":"corporation","created_at":1681311019}],"hex":"J12","tile":"450b-1","rotation":0},{"type":"pass","entity":"WNW","entity_type":"corporation","id":627,"created_at":1681311156},{"type":"run_routes","entity":"WNW","entity_type":"corporation","id":628,"created_at":1681311234,"routes":[{"train":"4-3","connections":[["E11","D10","C9"],["G11","F12","E11"],["H10","G11"],["J12","I11","H10"],["K15","J14","J12"],["K17","K15"]],"hexes":["C9","E11","G11","H10","J12","K15","K17"],"revenue":250,"revenue_str":"C9-E11-G11-H10-J12-K15-K17 + Uranium","nodes":["E11-0","C9-0","G11-0","H10-0","J12-0","K15-0","K17-0"]}]},{"type":"dividend","entity":"WNW","entity_type":"corporation","id":629,"created_at":1681311237,"kind":"payout"},{"type":"pass","entity":"WNW","entity_type":"corporation","id":630,"created_at":1681311243},{"type":"lay_tile","entity":"FE&MV","entity_type":"corporation","id":631,"created_at":1681381369,"hex":"I17","tile":"9-13","rotation":0},{"type":"lay_tile","entity":"FE&MV","entity_type":"corporation","id":632,"created_at":1681381372,"hex":"J16","tile":"9-14","rotation":0},{"type":"sell_shares","entity":"FE&MV","entity_type":"corporation","id":633,"created_at":1681381376,"shares":["FE&MV_6"],"percent":10},{"type":"pass","entity":"FE&MV","entity_type":"corporation","id":634,"created_at":1681381393},{"type":"place_token","entity":"FE&MV","entity_type":"corporation","id":635,"created_at":1681381395,"city":"448B-0-0","slot":1,"tokener":"FE&MV"},{"type":"run_routes","entity":"FE&MV","entity_type":"corporation","id":636,"created_at":1681381485,"routes":[{"train":"5-1","connections":[["D24","E25","E27"],["D20","D22","D24"],["F18","E19","D20"],["H18","G17","F18"],["K15","J16","I17","H18"],["L8","M9","M11","L12","K13","K15"],["M1","M3","M5","M7","L8"]],"hexes":["E27","D24","D20","F18","H18","K15","L8","M1"],"revenue":300,"revenue_str":"E27-D24-D20-F18-H18-K15-L8-M1 + E/W","nodes":["D24-0","E27-0","D20-0","F18-0","H18-0","K15-0","L8-0","M1-0"]}]},{"type":"dividend","entity":"FE&MV","entity_type":"corporation","id":637,"created_at":1681381487,"kind":"payout"},{"type":"pass","entity":"FE&MV","entity_type":"corporation","id":638,"user":2,"created_at":1681381498},{"type":"undo","entity":1,"entity_type":"player","id":639,"user":2,"created_at":1681381775},{"type":"pass","entity":"FE&MV","entity_type":"corporation","id":640,"created_at":1681381831},{"type":"buy_shares","entity":1,"entity_type":"player","id":641,"created_at":1681567137,"shares":["WNW_6"],"percent":10,"share_price":false},{"type":"sell_shares","entity":4,"entity_type":"player","id":642,"created_at":1681628823,"shares":["LNP_4"],"percent":10},{"type":"buy_shares","entity":4,"entity_type":"player","id":643,"created_at":1681628826,"shares":["FE&MV_7"],"percent":10,"share_price":false},{"type":"buy_shares","entity":5,"entity_type":"player","id":644,"created_at":1681630298,"shares":["WYC_6"],"percent":10,"share_price":false},{"type":"buy_shares","entity":2,"entity_type":"player","id":645,"created_at":1681634742,"shares":["WYC_7"],"percent":10,"share_price":false},{"type":"buy_shares","entity":1,"entity_type":"player","id":646,"created_at":1681654796,"shares":["WYC_8"],"percent":10,"share_price":false},{"type":"program_share_pass","entity":4,"entity_type":"player","id":647,"created_at":1681707492,"auto_actions":[{"type":"pass","entity":4,"entity_type":"player","created_at":1681707488}],"unconditional":false,"indefinite":false},{"type":"sell_shares","entity":5,"entity_type":"player","id":648,"created_at":1681718149,"shares":["UP_5"],"percent":10},{"type":"buy_shares","entity":5,"entity_type":"player","id":649,"created_at":1681718224,"shares":["FE&MV_8"],"percent":10,"share_price":false},{"type":"buy_shares","entity":2,"entity_type":"player","id":650,"created_at":1681807533,"shares":["LNP_4"],"percent":10,"share_price":false},{"type":"buy_shares","entity":1,"entity_type":"player","id":651,"created_at":1681865398,"auto_actions":[{"type":"program_disable","entity":4,"entity_type":"player","created_at":1681865394,"reason":"Shares were sold"}],"shares":["WNW_7"],"percent":10,"share_price":false},{"type":"program_share_pass","entity":4,"entity_type":"player","id":652,"created_at":1681869547,"auto_actions":[{"type":"pass","entity":4,"entity_type":"player","created_at":1681869543}],"unconditional":false,"indefinite":false},{"type":"buy_shares","entity":5,"entity_type":"player","id":653,"created_at":1681880769,"shares":["FE&MV_4"],"percent":10,"share_price":false},{"type":"buy_shares","entity":2,"entity_type":"player","id":654,"created_at":1681987589,"shares":["RCL_6"],"percent":10,"share_price":false},{"type":"sell_shares","entity":1,"shares":["UP_7"],"percent":10,"entity_type":"player","id":655,"user":1,"created_at":1681996283},{"type":"buy_shares","entity":1,"shares":["WNW_8"],"percent":10,"entity_type":"player","share_price":false,"auto_actions":[{"type":"program_disable","entity":4,"reason":"Shares were sold","created_at":1681996296,"entity_type":"player"}],"id":656,"user":1,"created_at":1681996298},{"type":"pass","entity":4,"entity_type":"player","id":657,"user":4,"created_at":1682026354},{"type":"buy_shares","entity":5,"shares":["FE&MV_5"],"percent":10,"entity_type":"player","share_price":false,"id":658,"user":5,"created_at":1682030970},{"type":"buy_shares","entity":2,"shares":["FE&MV_6"],"percent":10,"entity_type":"player","share_price":false,"id":659,"user":2,"created_at":1682031731},{"type":"undo","entity":1,"entity_type":"player","id":660,"user":1,"created_at":1682098606},{"type":"undo","entity":2,"entity_type":"player","id":661,"user":1,"created_at":1682098612},{"type":"undo","entity":5,"entity_type":"player","id":662,"user":1,"created_at":1682098617},{"type":"undo","entity":4,"entity_type":"player","id":663,"user":1,"created_at":1682098622},{"type":"undo","entity":1,"entity_type":"player","id":664,"user":1,"created_at":1682098627},{"type":"sell_shares","entity":1,"entity_type":"player","id":665,"created_at":1682098634,"shares":["UP_1"],"percent":10},{"type":"buy_shares","entity":1,"entity_type":"player","id":666,"created_at":1682098647,"auto_actions":[{"type":"program_disable","entity":4,"entity_type":"player","created_at":1682098645,"reason":"Shares were sold"}],"shares":["WNW_8"],"percent":10,"share_price":false},{"type":"pass","entity":4,"entity_type":"player","id":667,"user":1,"created_at":1682098651},{"type":"buy_shares","entity":5,"entity_type":"player","id":668,"user":1,"created_at":1682098662,"shares":["FE&MV_5"],"percent":10,"share_price":false},{"type":"buy_shares","entity":2,"entity_type":"player","id":669,"user":1,"created_at":1682098667,"shares":["FE&MV_6"],"percent":10,"share_price":false},{"type":"buy_shares","entity":1,"entity_type":"player","id":670,"created_at":1682098741,"shares":["BH_8"],"percent":10,"share_price":false},{"type":"program_share_pass","entity":4,"entity_type":"player","id":671,"created_at":1682123620,"auto_actions":[{"type":"pass","entity":4,"entity_type":"player","created_at":1682123617}],"unconditional":false,"indefinite":false},{"type":"program_share_pass","entity":5,"entity_type":"player","id":672,"created_at":1682124087,"auto_actions":[{"type":"pass","entity":5,"entity_type":"player","created_at":1682124084}],"unconditional":false,"indefinite":false},{"type":"pass","entity":2,"entity_type":"player","id":673,"created_at":1682125134},{"type":"buy_shares","entity":1,"entity_type":"player","id":674,"created_at":1682129515,"auto_actions":[{"type":"pass","entity":4,"entity_type":"player","created_at":1682129512},{"type":"pass","entity":5,"entity_type":"player","created_at":1682129512}],"shares":["BH_5"],"percent":10,"share_price":false},{"type":"pass","entity":2,"entity_type":"player","id":675,"created_at":1682130891},{"type":"program_share_pass","entity":2,"entity_type":"player","id":676,"created_at":1682130915,"unconditional":false,"indefinite":false},{"type":"pass","entity":1,"entity_type":"player","id":677,"created_at":1682130953},{"hex":"J16","cost":0,"type":"hex_token","entity":"Coal-D","token_type":"development","entity_type":"minor","id":678,"user":4,"created_at":1682287424},{"type":"undo","entity":"Oil-D","entity_type":"minor","id":679,"user":4,"created_at":1682287447},{"type":"hex_token","entity":"Coal-D","entity_type":"minor","id":680,"created_at":1682287466,"hex":"J18","cost":0,"token_type":"development"},{"type":"hex_token","entity":"Oil-D","entity_type":"minor","id":681,"created_at":1682287497,"hex":"C13","cost":10,"token_type":"development"},{"type":"hex_token","entity":"Coal-A","entity_type":"minor","id":682,"created_at":1682287952,"hex":"J16","cost":0,"token_type":"development"},{"hex":"L8","cost":0,"type":"hex_token","entity":"Oil-A","token_type":"development","entity_type":"minor","id":683,"user":5,"created_at":1682287977},{"type":"undo","entity":"Coal-C","entity_type":"minor","id":684,"user":5,"created_at":1682288009},{"type":"hex_token","entity":"Oil-A","entity_type":"minor","id":685,"created_at":1682288016,"hex":"J16","cost":0,"token_type":"development"},{"type":"hex_token","entity":"Coal-C","entity_type":"minor","id":686,"created_at":1682318707,"hex":"D10","cost":0,"token_type":"development"},{"type":"hex_token","entity":"Oil-C","entity_type":"minor","id":687,"created_at":1682318728,"hex":"J12","cost":0,"token_type":"development"},{"type":"hex_token","entity":"Coal-B","entity_type":"minor","id":688,"created_at":1682341858,"hex":"K19","cost":0,"token_type":"development"},{"type":"remove_hex_token","entity":"Oil-B","entity_type":"minor","id":689,"created_at":1682341872,"hex":"K17"},{"type":"hex_token","entity":"Oil-B","entity_type":"minor","id":690,"created_at":1682341874,"hex":"J18","cost":0,"token_type":"development"},{"type":"hex_token","entity":"Oil-B","entity_type":"minor","id":691,"created_at":1682341877,"hex":"K19","cost":0,"token_type":"development"},{"type":"lay_tile","entity":"UP","entity_type":"corporation","id":692,"created_at":1682341936,"hex":"L16","tile":"144-0","rotation":1},{"type":"pass","entity":"UP","entity_type":"corporation","id":693,"created_at":1682341947},{"type":"sell_shares","entity":1,"entity_type":"player","id":694,"created_at":1682341960,"shares":["LNP_6"],"percent":10},{"type":"sell_shares","entity":1,"entity_type":"player","id":695,"created_at":1682341964,"shares":["WYC_8"],"percent":10},{"type":"sell_shares","entity":1,"entity_type":"player","id":696,"created_at":1682341981,"shares":["BH_8","BH_5"],"percent":20},{"type":"sell_shares","entity":1,"entity_type":"player","id":697,"created_at":1682341996,"shares":["WNW_2"],"percent":10},{"type":"buy_train","entity":"UP","entity_type":"corporation","id":698,"created_at":1682342003,"train":"6-1","price":700,"variant":"6+5"},{"hex":"B8","tile":"8-14","type":"lay_tile","entity":"BH","rotation":3,"entity_type":"corporation","id":699,"user":2,"created_at":1682342148},{"type":"undo","entity":"BH","entity_type":"corporation","id":700,"user":2,"created_at":1682342177},{"hex":"G11","tile":"142-0","type":"lay_tile","entity":"BH","rotation":0,"entity_type":"corporation","id":701,"user":2,"created_at":1682342180},{"hex":"H12","tile":"20-0","type":"lay_tile","entity":"BH","rotation":1,"entity_type":"corporation","auto_actions":[{"type":"pass","entity":"BH","created_at":1682342183,"entity_type":"corporation"}],"id":702,"user":2,"created_at":1682342186},{"type":"pass","entity":"BH","entity_type":"corporation","id":703,"user":2,"created_at":1682344217},{"type":"pass","entity":"BH","entity_type":"corporation","id":704,"user":2,"created_at":1682344227},{"type":"undo","entity":"BH","entity_type":"corporation","id":705,"user":2,"created_at":1682344265},{"type":"undo","entity":"BH","entity_type":"corporation","id":706,"user":2,"created_at":1682344270},{"type":"undo","entity":"BH","entity_type":"corporation","id":707,"user":2,"created_at":1682344276},{"hex":"B8","tile":"8-14","type":"lay_tile","entity":"BH","rotation":3,"entity_type":"corporation","auto_actions":[{"type":"pass","entity":"BH","created_at":1682344290,"entity_type":"corporation"}],"id":708,"user":2,"created_at":1682344293},{"type":"pass","entity":"BH","entity_type":"corporation","id":709,"user":2,"created_at":1682344301},{"type":"pass","entity":"BH","entity_type":"corporation","id":710,"user":2,"created_at":1682344303},{"type":"undo","entity":"BH","entity_type":"corporation","id":711,"user":2,"created_at":1682344381},{"type":"undo","entity":"BH","entity_type":"corporation","id":712,"user":2,"created_at":1682344386},{"type":"undo","entity":"BH","entity_type":"corporation","id":713,"user":2,"created_at":1682344392},{"type":"buy_shares","entity":"BH","shares":["BH_8"],"percent":10,"entity_type":"corporation","id":714,"user":2,"created_at":1682344452},{"type":"undo","entity":"BH","entity_type":"corporation","id":715,"user":2,"created_at":1682344458},{"type":"buy_shares","entity":"BH","shares":["BH_8","BH_5"],"percent":20,"entity_type":"corporation","id":716,"user":2,"created_at":1682344461},{"type":"undo","entity":"BH","entity_type":"corporation","id":717,"user":2,"created_at":1682344473},{"type":"undo","entity":"BH","entity_type":"corporation","id":718,"user":2,"created_at":1682344479},{"type":"lay_tile","entity":"BH","entity_type":"corporation","id":719,"created_at":1682344481,"hex":"G11","tile":"142-0","rotation":0},{"type":"lay_tile","entity":"BH","entity_type":"corporation","id":720,"created_at":1682344515,"auto_actions":[{"type":"pass","entity":"BH","entity_type":"corporation","created_at":1682344512}],"hex":"H12","tile":"20-0","rotation":1},{"type":"pass","entity":"BH","entity_type":"corporation","id":721,"user":2,"created_at":1682344520},{"type":"pass","entity":"BH","entity_type":"corporation","id":722,"user":2,"created_at":1682344696},{"type":"run_routes","entity":"BH","routes":[{"hexes":["H10","G11","E11","C9","B10","A11"],"nodes":["G11-0","H10-0","E11-0","C9-0","B10-0","A11-0"],"train":"4-1","revenue":170,"connections":[["G11","H10"],["E11","F12","G11"],["C9","D10","E11"],["B10","C9"],["A11","B10"]],"revenue_str":"H10-G11-E11-C9-B10-A11"},{"hexes":["E11","D12","C11","C9","C5"],"nodes":["D12-0","E11-0","C11-0","C9-0","C5-5"],"train":"2+1-0","revenue":190,"connections":[["D12","E11"],["C11","D12"],["C9","C11"],["C5","C7","C9"]],"revenue_str":"E11-D12-C11-C9-C5"}],"entity_type":"corporation","id":723,"user":2,"created_at":1682344731},{"kind":"payout","type":"dividend","entity":"BH","entity_type":"corporation","id":724,"user":2,"created_at":1682344734},{"type":"undo","entity":"BH","entity_type":"corporation","id":725,"user":2,"created_at":1682344745},{"type":"undo","entity":"BH","entity_type":"corporation","id":726,"user":2,"created_at":1682344750},{"type":"undo","entity":"BH","entity_type":"corporation","id":727,"user":2,"created_at":1682344756},{"type":"undo","entity":"BH","entity_type":"corporation","id":728,"user":2,"created_at":1682344761},{"type":"buy_shares","entity":"BH","shares":["BH_8","BH_5"],"percent":20,"entity_type":"corporation","id":729,"user":2,"created_at":1682344764},{"type":"pass","entity":"BH","entity_type":"corporation","id":730,"user":2,"created_at":1682344767},{"type":"pass","entity":"BH","entity_type":"corporation","id":731,"user":2,"created_at":1682344770},{"type":"run_routes","entity":"BH","routes":[{"hexes":["H10","G11","E11","C9","B10","A11"],"nodes":["G11-0","H10-0","E11-0","C9-0","B10-0","A11-0"],"train":"4-1","revenue":170,"connections":[["G11","H10"],["E11","F12","G11"],["C9","D10","E11"],["B10","C9"],["A11","B10"]],"revenue_str":"H10-G11-E11-C9-B10-A11"},{"hexes":["E11","D12","C11","C9","C5"],"nodes":["D12-0","E11-0","C11-0","C9-0","C5-5"],"train":"2+1-0","revenue":190,"connections":[["D12","E11"],["C11","D12"],["C9","C11"],["C5","C7","C9"]],"revenue_str":"E11-D12-C11-C9-C5"}],"entity_type":"corporation","id":732,"user":2,"created_at":1682344773},{"kind":"payout","type":"dividend","entity":"BH","entity_type":"corporation","id":733,"user":2,"created_at":1682344775},{"type":"undo","entity":"BH","entity_type":"corporation","id":734,"user":2,"created_at":1682344781},{"type":"undo","entity":"BH","entity_type":"corporation","id":735,"user":2,"created_at":1682344786},{"type":"run_routes","entity":"BH","routes":[{"hexes":["H10","G11","E11","C9","B10","A11"],"nodes":["G11-0","H10-0","E11-0","C9-0","B10-0","A11-0"],"train":"4-1","revenue":170,"connections":[["G11","H10"],["E11","F12","G11"],["C9","D10","E11"],["B10","C9"],["A11","B10"]],"revenue_str":"H10-G11-E11-C9-B10-A11"},{"hexes":["E11","D12","C11","C9","C5"],"nodes":["D12-0","E11-0","C11-0","C9-0","C5-5"],"train":"2+1-0","revenue":190,"connections":[["D12","E11"],["C11","D12"],["C9","C11"],["C5","C7","C9"]],"revenue_str":"E11-D12-C11-C9-C5"}],"entity_type":"corporation","id":736,"user":2,"created_at":1682344789},{"kind":"payout","type":"dividend","entity":"BH","entity_type":"corporation","id":737,"user":2,"created_at":1682344792},{"type":"undo","entity":"BH","entity_type":"corporation","id":738,"user":2,"created_at":1682344868},{"type":"undo","entity":"BH","entity_type":"corporation","id":739,"user":2,"created_at":1682344873},{"type":"undo","entity":"BH","entity_type":"corporation","id":740,"user":2,"created_at":1682344879},{"type":"undo","entity":"BH","entity_type":"corporation","id":741,"user":2,"created_at":1682344884},{"type":"undo","entity":"BH","entity_type":"corporation","id":742,"user":2,"created_at":1682344889},{"type":"buy_shares","entity":"BH","entity_type":"corporation","id":743,"created_at":1682344893,"shares":["BH_8"],"percent":10},{"type":"pass","entity":"BH","entity_type":"corporation","id":744,"user":2,"created_at":1682344896},{"type":"pass","entity":"BH","entity_type":"corporation","id":745,"user":2,"created_at":1682344899},{"type":"run_routes","entity":"BH","routes":[{"hexes":["H10","G11","E11","C9","B10","A11"],"nodes":["G11-0","H10-0","E11-0","C9-0","B10-0","A11-0"],"train":"4-1","revenue":170,"connections":[["G11","H10"],["E11","F12","G11"],["C9","D10","E11"],["B10","C9"],["A11","B10"]],"revenue_str":"H10-G11-E11-C9-B10-A11"},{"hexes":["E11","D12","C11","C9","C5"],"nodes":["D12-0","E11-0","C11-0","C9-0","C5-5"],"train":"2+1-0","revenue":190,"connections":[["D12","E11"],["C11","D12"],["C9","C11"],["C5","C7","C9"]],"revenue_str":"E11-D12-C11-C9-C5"}],"entity_type":"corporation","id":746,"user":2,"created_at":1682344902},{"kind":"payout","type":"dividend","entity":"BH","entity_type":"corporation","id":747,"user":2,"created_at":1682344904},{"type":"undo","entity":"BH","entity_type":"corporation","id":748,"user":2,"created_at":1682344914},{"type":"undo","entity":"BH","entity_type":"corporation","id":749,"user":2,"created_at":1682344919},{"type":"undo","entity":"BH","entity_type":"corporation","id":750,"user":2,"created_at":1682344925},{"type":"undo","entity":"BH","entity_type":"corporation","id":751,"user":2,"created_at":1682344931},{"type":"buy_shares","entity":"BH","entity_type":"corporation","id":752,"created_at":1682344933,"shares":["BH_5"],"percent":10},{"type":"pass","entity":"BH","entity_type":"corporation","id":753,"created_at":1682344936},{"type":"pass","entity":"BH","entity_type":"corporation","id":754,"created_at":1682344939},{"type":"run_routes","entity":"BH","entity_type":"corporation","id":755,"created_at":1682344942,"routes":[{"train":"4-1","connections":[["G11","H10"],["E11","F12","G11"],["C9","D10","E11"],["B10","C9"],["A11","B10"]],"hexes":["H10","G11","E11","C9","B10","A11"],"revenue":170,"revenue_str":"H10-G11-E11-C9-B10-A11","nodes":["G11-0","H10-0","E11-0","C9-0","B10-0","A11-0"]},{"train":"2+1-0","connections":[["D12","E11"],["C11","D12"],["C9","C11"],["C5","C7","C9"]],"hexes":["E11","D12","C11","C9","C5"],"revenue":190,"revenue_str":"E11-D12-C11-C9-C5","nodes":["D12-0","E11-0","C11-0","C9-0","C5-5"]}]},{"type":"dividend","entity":"BH","entity_type":"corporation","id":756,"created_at":1682344945,"kind":"payout"},{"type":"pass","entity":"BH","entity_type":"corporation","id":757,"created_at":1682344948},{"type":"pass","entity":"BH","entity_type":"corporation","id":758,"created_at":1682344950},{"type":"pass","entity":"WYC","entity_type":"corporation","id":759,"user":4,"created_at":1682368840},{"type":"pass","entity":"WYC","entity_type":"corporation","id":760,"user":4,"created_at":1682368865},{"type":"undo","entity":"WYC","entity_type":"corporation","id":761,"user":4,"created_at":1682368882},{"type":"undo","entity":"WYC","entity_type":"corporation","id":762,"user":4,"created_at":1682368888},{"hex":"B10","tile":"206b-0","type":"lay_tile","entity":"WYC","rotation":3,"entity_type":"corporation","id":763,"user":4,"created_at":1682368891},{"type":"undo","entity":"WYC","entity_type":"corporation","id":764,"user":4,"created_at":1682368901},{"type":"lay_tile","entity":"WYC","entity_type":"corporation","id":765,"created_at":1682368904,"hex":"B10","tile":"206b-0","rotation":0},{"type":"pass","entity":"WYC","entity_type":"corporation","id":766,"created_at":1682368907},{"type":"pass","entity":"WYC","entity_type":"corporation","id":767,"created_at":1682368910},{"type":"run_routes","entity":"WYC","entity_type":"corporation","id":768,"created_at":1682369056,"routes":[{"train":"4-0","connections":[["B10","A11"],["C11","B10"],["D12","C11"],["E11","D12"],["C9","D10","E11"],["C5","C7","C9"]],"hexes":["A11","B10","C11","D12","E11","C9","C5"],"revenue":260,"revenue_str":"A11-B10-C11-D12-E11-C9-C5 + P6b","nodes":["B10-0","A11-0","C11-0","D12-0","E11-0","C9-0","C5-5"]},{"train":"5-0","connections":[["D24","E25","E27"],["D20","D22","D24"],["F18","E19","D20"],["H18","G17","F18"],["H10","H12","H14","H16","H18"],["J12","I11","H10"],["K15","J14","J12"]],"hexes":["E27","D24","D20","F18","H18","H10","J12","K15"],"revenue":280,"revenue_str":"E27-D24-D20-F18-H18-H10-J12-K15 + Uranium","nodes":["D24-0","E27-0","D20-0","F18-0","H18-0","H10-0","J12-0","K15-0"]}]},{"type":"dividend","entity":"WYC","entity_type":"corporation","id":769,"created_at":1682369059,"kind":"payout"},{"type":"pass","entity":"WYC","entity_type":"corporation","id":770,"created_at":1682369064},{"hex":"I9","tile":"57b-1","type":"lay_tile","entity":"WNW","rotation":0,"entity_type":"corporation","id":771,"user":1,"created_at":1682379771},{"type":"undo","entity":"WNW","entity_type":"corporation","id":772,"user":1,"created_at":1682379780},{"type":"lay_tile","entity":"WNW","entity_type":"corporation","id":773,"created_at":1682379786,"hex":"I9","tile":"6b-4","rotation":3},{"type":"lay_tile","entity":"WNW","entity_type":"corporation","id":774,"created_at":1682379789,"hex":"J10","tile":"8-14","rotation":0},{"type":"lay_tile","entity":"WNW","entity_type":"corporation","id":775,"created_at":1682379794,"auto_actions":[{"type":"pass","entity":"WNW","entity_type":"corporation","created_at":1682379791}],"hex":"K9","tile":"9-15","rotation":0},{"type":"pass","entity":"WNW","entity_type":"corporation","id":776,"created_at":1682379840},{"type":"run_routes","entity":"WNW","entity_type":"corporation","id":777,"created_at":1682379907,"routes":[{"train":"4-3","connections":[["C9","C7","C5"],["E11","D10","C9"],["G11","F12","E11"],["H10","G11"],["J12","I11","H10"],["J12","J14","K15"]],"hexes":["C5","C9","E11","G11","H10","J12","K15"],"revenue":270,"revenue_str":"C5-C9-E11-G11-H10-J12-K15 + Uranium","nodes":["C9-0","C5-5","E11-0","G11-0","H10-0","J12-0","K15-0"]}]},{"type":"dividend","entity":"WNW","entity_type":"corporation","id":778,"created_at":1682379916,"kind":"withhold"},{"type":"buy_train","entity":"WNW","entity_type":"corporation","id":779,"created_at":1682379920,"train":"6-2","price":700,"variant":"6+5"},{"type":"lay_tile","entity":"FE&MV","entity_type":"corporation","id":780,"created_at":1682380694,"hex":"I13","tile":"8-15","rotation":0},{"type":"lay_tile","entity":"FE&MV","entity_type":"corporation","id":781,"created_at":1682380749,"hex":"B12","tile":"58-2","rotation":0},{"type":"pass","entity":"FE&MV","entity_type":"corporation","id":782,"user":2,"created_at":1682380752},{"type":"pass","entity":"FE&MV","entity_type":"corporation","id":783,"user":2,"created_at":1682380769},{"type":"undo","entity":"FE&MV","entity_type":"corporation","id":784,"user":2,"created_at":1682380862},{"type":"undo","entity":"FE&MV","entity_type":"corporation","id":785,"user":2,"created_at":1682380867},{"type":"pass","entity":"FE&MV","entity_type":"corporation","id":786,"created_at":1682380870},{"type":"place_token","entity":"FE&MV","entity_type":"corporation","id":787,"created_at":1682380873,"city":"450B-1-0","slot":1,"tokener":"FE&MV"},{"type":"run_routes","entity":"FE&MV","entity_type":"corporation","id":788,"created_at":1682380894,"routes":[{"train":"5-1","connections":[["C11","B12"],["D12","C11"],["E11","D12"],["G11","F12","E11"],["J12","I13","H12","G11"],["K15","J14","J12"],["L8","M9","M11","L12","K13","K15"],["M1","M3","M5","M7","L8"]],"hexes":["B12","C11","D12","E11","G11","J12","K15","L8","M1"],"revenue":320,"revenue_str":"B12-C11-D12-E11-G11-J12-K15-L8-M1 + Uranium","nodes":["C11-0","B12-0","D12-0","E11-0","G11-0","J12-0","K15-0","L8-0","M1-0"]}]},{"type":"dividend","entity":"FE&MV","entity_type":"corporation","id":789,"created_at":1682380897,"kind":"payout"},{"type":"pass","entity":"FE&MV","entity_type":"corporation","id":790,"created_at":1682380900},{"type":"lay_tile","entity":"LNP","entity_type":"corporation","id":791,"created_at":1682394659,"hex":"J26","tile":"141-1","rotation":5},{"type":"lay_tile","entity":"LNP","entity_type":"corporation","id":792,"created_at":1682394672,"auto_actions":[{"type":"pass","entity":"LNP","entity_type":"corporation","created_at":1682394669}],"hex":"I25","tile":"8-16","rotation":3},{"type":"pass","entity":"LNP","entity_type":"corporation","id":793,"created_at":1682394686},{"type":"run_routes","entity":"LNP","entity_type":"corporation","id":794,"created_at":1682394753,"routes":[{"train":"4-2","connections":[["M23","M21"],["M25","M23"],["M27","M25"]],"hexes":["M21","M23","M25","M27"],"revenue":130,"revenue_str":"M21-M23-M25-M27","nodes":["M23-0","M21-0","M25-0","M27-0"]},{"train":"5-2","connections":[["L16","K17"],["N18","M17","L16"],["M19","N18"],["M21","M19"]],"hexes":["K17","L16","N18","M19","M21"],"revenue":140,"revenue_str":"K17-L16-N18-M19-M21","nodes":["L16-0","K17-0","N18-0","M19-0","M21-0"]}]},{"type":"dividend","entity":"LNP","entity_type":"corporation","id":795,"created_at":1682394766,"kind":"payout"},{"type":"lay_tile","entity":"RCL","entity_type":"corporation","id":796,"created_at":1682505376,"hex":"L14","tile":"9-10","rotation":1},{"type":"lay_tile","entity":"RCL","entity_type":"corporation","id":797,"created_at":1682505389,"auto_actions":[{"type":"pass","entity":"RCL","entity_type":"corporation","created_at":1682505386}],"hex":"L12","tile":"20-1","rotation":0},{"type":"run_routes","entity":"RCL","entity_type":"corporation","id":798,"created_at":1682505457,"routes":[{"train":"5-3","connections":[["L20","M21"],["K17","K19","L20"],["H18","I19","J18","K17"],["H18","I17","J16","K15"]],"hexes":["M21","L20","K17","H18","K15"],"revenue":200,"revenue_str":"M21-L20-K17-H18-K15","nodes":["L20-0","M21-0","K17-0","H18-0","K15-0"]}]},{"type":"dividend","entity":"RCL","entity_type":"corporation","id":799,"created_at":1682505460,"kind":"payout"},{"type":"pass","entity":"RCL","entity_type":"corporation","id":800,"created_at":1682505463},{"type":"pass","entity":"RCL","entity_type":"corporation","id":801,"created_at":1682505466},{"type":"hex_token","entity":"Coal-D","entity_type":"minor","id":802,"created_at":1682505483,"hex":"E19","cost":0,"token_type":"development"},{"type":"remove_hex_token","entity":"Oil-D","entity_type":"minor","id":803,"created_at":1682505489,"hex":"E19"},{"type":"hex_token","entity":"Oil-D","entity_type":"minor","id":804,"created_at":1682505492,"hex":"E19","cost":0,"token_type":"development"},{"type":"remove_hex_token","entity":"Oil-D","entity_type":"minor","id":805,"created_at":1682505521,"hex":"C13"},{"type":"pass","entity":"Oil-D","entity_type":"minor","id":806,"user":4,"created_at":1682505527},{"type":"undo","entity":"Coal-A","entity_type":"minor","id":807,"user":4,"created_at":1682505541},{"type":"remove_hex_token","entity":"Oil-D","entity_type":"minor","id":808,"created_at":1682505544,"hex":"E19"},{"type":"hex_token","entity":"Oil-D","entity_type":"minor","id":809,"created_at":1682505547,"hex":"E19","cost":0,"token_type":"development"},{"type":"hex_token","entity":"Oil-D","entity_type":"minor","id":810,"created_at":1682505550,"hex":"F18","cost":0,"token_type":"development"},{"type":"hex_token","entity":"Oil-D","entity_type":"minor","id":811,"created_at":1682505554,"hex":"D22","cost":0,"token_type":"development"},{"hex":"L16","cost":0,"type":"hex_token","entity":"Coal-A","token_type":"development","entity_type":"minor","id":812,"user":5,"created_at":1682505626},{"type":"undo","entity":"Oil-A","entity_type":"minor","id":813,"user":5,"created_at":1682505642},{"type":"pass","entity":"Coal-A","entity_type":"minor","id":814,"created_at":1682505671},{"type":"pass","entity":"Oil-A","entity_type":"minor","id":815,"created_at":1682505676},{"type":"hex_token","entity":"Coal-C","entity_type":"minor","id":816,"created_at":1682505737,"hex":"D12","cost":0,"token_type":"development"},{"hex":"J12","type":"remove_hex_token","entity":"Oil-C","entity_type":"minor","id":817,"user":2,"created_at":1682505789},{"type":"undo","entity":"Oil-C","entity_type":"minor","id":818,"user":2,"created_at":1682505799},{"hex":"I13","cost":0,"type":"hex_token","entity":"Oil-C","token_type":"development","entity_type":"minor","id":819,"user":2,"created_at":1682505805},{"type":"undo","entity":"Coal-B","entity_type":"minor","id":820,"user":2,"created_at":1682505817},{"type":"hex_token","entity":"Oil-C","entity_type":"minor","id":821,"created_at":1682505820,"hex":"J14","cost":0,"token_type":"development"},{"type":"hex_token","entity":"Coal-B","entity_type":"minor","id":822,"created_at":1682516741,"hex":"J12","cost":0,"token_type":"development"},{"type":"hex_token","entity":"Oil-B","entity_type":"minor","id":823,"created_at":1682516756,"hex":"J10","cost":0,"token_type":"development"},{"hex":"B12","tile":"144-1","type":"lay_tile","entity":"BH","rotation":0,"entity_type":"corporation","id":824,"user":2,"created_at":1682517399},{"type":"pass","entity":"BH","entity_type":"corporation","id":825,"user":2,"created_at":1682517402},{"type":"pass","entity":"BH","entity_type":"corporation","id":826,"user":2,"created_at":1682517407},{"type":"pass","entity":"BH","entity_type":"corporation","id":827,"user":2,"created_at":1682517416},{"type":"undo","entity":"BH","entity_type":"corporation","id":828,"user":2,"created_at":1682517572},{"type":"undo","entity":"BH","entity_type":"corporation","id":829,"user":2,"created_at":1682517578},{"type":"undo","entity":"BH","entity_type":"corporation","id":830,"user":2,"created_at":1682517584},{"type":"undo","entity":"BH","entity_type":"corporation","id":831,"user":2,"created_at":1682517590},{"type":"lay_tile","entity":"BH","entity_type":"corporation","id":832,"created_at":1682517618,"hex":"K11","tile":"9-16","rotation":0},{"type":"lay_tile","entity":"BH","entity_type":"corporation","id":833,"created_at":1682517621,"hex":"L10","tile":"5b-1","rotation":3},{"type":"pass","entity":"BH","entity_type":"corporation","id":834,"created_at":1682517633},{"type":"place_token","entity":"BH","entity_type":"corporation","id":835,"created_at":1682517637,"city":"450B-1-0","slot":1,"tokener":"BH"},{"type":"pass","entity":"BH","entity_type":"corporation","id":836,"created_at":1682517640},{"type":"run_routes","entity":"BH","entity_type":"corporation","id":837,"created_at":1682517684,"routes":[{"train":"4-1","connections":[["G11","H12","I13","J12"],["E11","F12","G11"],["D12","E11"],["C11","D12"],["C9","C11"],["C5","C7","C9"]],"hexes":["J12","G11","E11","D12","C11","C9","C5"],"revenue":290,"revenue_str":"J12-G11-E11-D12-C11-C9-C5 + Uranium","nodes":["G11-0","J12-0","E11-0","D12-0","C11-0","C9-0","C5-5"]},{"train":"2+1-0","connections":[["L16","M17","N18"],["L10","L12","L14","L16"],["J12","K11","L10"],["J12","I11","H10"]],"hexes":["N18","L16","L10","J12","H10"],"revenue":180,"revenue_str":"N18-L16-L10-J12-H10 + Uranium","nodes":["L16-0","N18-0","L10-0","J12-0","H10-0"]}]},{"type":"dividend","entity":"BH","entity_type":"corporation","id":838,"created_at":1682517686,"kind":"payout"},{"type":"sell_shares","entity":"BH","shares":["BH_6","BH_8"],"percent":20,"entity_type":"corporation","id":839,"user":2,"created_at":1682517733},{"type":"buy_train","price":900,"train":"7-0","entity":"BH","variant":"7+5","entity_type":"corporation","id":840,"user":2,"created_at":1682517740},{"type":"undo","entity":"BH","entity_type":"corporation","id":841,"user":2,"created_at":1682517840},{"type":"buy_train","price":800,"train":"7-0","entity":"BH","variant":"7","entity_type":"corporation","id":842,"user":2,"created_at":1682517844},{"type":"undo","entity":"BH","entity_type":"corporation","id":843,"user":2,"created_at":1682517858},{"type":"buy_train","price":900,"train":"7-0","entity":"BH","variant":"7+5","entity_type":"corporation","id":844,"user":2,"created_at":1682517924},{"type":"pass","entity":"BH","entity_type":"corporation","id":845,"user":2,"created_at":1682517941},{"type":"pass","entity":"BH","entity_type":"corporation","id":846,"user":2,"created_at":1682517946},{"type":"undo","entity":"UP","entity_type":"corporation","id":847,"user":2,"created_at":1682518731},{"type":"undo","entity":"BH","entity_type":"corporation","id":848,"user":2,"created_at":1682518737},{"type":"undo","entity":"BH","entity_type":"corporation","id":849,"user":2,"created_at":1682518743},{"type":"undo","entity":"BH","entity_type":"corporation","id":850,"user":2,"created_at":1682518749},{"type":"sell_shares","entity":"BH","entity_type":"corporation","id":851,"created_at":1682518865,"shares":["BH_6","BH_8"],"percent":20},{"type":"buy_train","entity":"BH","entity_type":"corporation","id":852,"created_at":1682518868,"train":"7-0","price":900,"variant":"7+5"},{"type":"pass","entity":"BH","entity_type":"corporation","id":853,"created_at":1682518884},{"type":"pass","entity":"BH","entity_type":"corporation","id":854,"created_at":1682518889},{"type":"lay_tile","entity":"UP","entity_type":"corporation","id":855,"created_at":1682520028,"hex":"L10","tile":"206b-2","rotation":4},{"type":"lay_tile","entity":"UP","entity_type":"corporation","id":856,"created_at":1682520034,"auto_actions":[{"type":"pass","entity":"UP","entity_type":"corporation","created_at":1682520030}],"hex":"L8","tile":"448b-2","rotation":3},{"type":"run_routes","entity":"UP","entity_type":"corporation","id":857,"created_at":1682520095,"routes":[{"train":"6-1","connections":[["L8","M7","M5","M3","M1"],["L10","L8"],["L16","L14","L12","L10"],["K17","L16"],["L20","K19","K17"],["M21","L20"],["M23","M21"],["M25","M23"],["M27","M25"]],"hexes":["M1","L8","L10","L16","K17","L20","M21","M23","M25","M27"],"revenue":380,"revenue_str":"M1-L8-L10-L16-K17-L20-M21-M23-M25-M27 + E/W","nodes":["L8-0","M1-0","L10-0","L16-0","K17-0","L20-0","M21-0","M23-0","M25-0","M27-0"]}]},{"type":"dividend","entity":"UP","entity_type":"corporation","id":858,"created_at":1682520098,"kind":"payout"},{"hex":"C9","tile":"RC-0","type":"lay_tile","entity":"WYC","rotation":3,"entity_type":"corporation","id":859,"user":4,"created_at":1682556024},{"type":"undo","entity":"WYC","entity_type":"corporation","id":860,"user":4,"created_at":1682556037},{"type":"lay_tile","entity":"WYC","entity_type":"corporation","id":861,"created_at":1682556040,"hex":"H18","tile":"RC-0","rotation":0},{"type":"pass","entity":"WYC","entity_type":"corporation","id":862,"created_at":1682556045},{"type":"run_routes","entity":"WYC","entity_type":"corporation","id":863,"created_at":1682556110,"routes":[{"train":"5-0","connections":[["C9","C7","C5"],["C9","C11"],["C11","D12"],["D12","E11"],["E11","F12","G11"],["G11","H10"],["H10","H12","H14","H16","H18"],["H18","H20","H22"]],"hexes":["C5","C9","C11","D12","E11","G11","H10","H18","H22"],"revenue":300,"revenue_str":"C5-C9-C11-D12-E11-G11-H10-H18-H22","nodes":["C9-0","C5-5","C11-0","D12-0","E11-0","G11-0","H10-0","H18-0","H22-0"]}]},{"type":"dividend","entity":"WYC","entity_type":"corporation","id":864,"created_at":1682556113,"kind":"payout"},{"type":"pass","entity":"WYC","entity_type":"corporation","id":865,"created_at":1682556117},{"type":"pass","entity":"WYC","entity_type":"corporation","id":866,"created_at":1682556120},{"hex":"D12","tile":"51B-0","type":"lay_tile","entity":"FE&MV","rotation":0,"entity_type":"corporation","id":867,"user":2,"created_at":1682562435},{"hex":"C11","tile":"51B-1","type":"lay_tile","entity":"FE&MV","rotation":3,"entity_type":"corporation","auto_actions":[{"type":"pass","entity":"FE&MV","created_at":1682562442,"entity_type":"corporation"}],"id":868,"user":2,"created_at":1682562447},{"type":"undo","entity":"FE&MV","entity_type":"corporation","id":869,"user":2,"created_at":1682562458},{"type":"undo","entity":"FE&MV","entity_type":"corporation","id":870,"user":2,"created_at":1682562465},{"type":"lay_tile","entity":"FE&MV","entity_type":"corporation","id":871,"created_at":1682562468,"hex":"C11","tile":"51B-0","rotation":3},{"hex":"D12","tile":"51B-1","type":"lay_tile","entity":"FE&MV","rotation":1,"entity_type":"corporation","auto_actions":[{"type":"pass","entity":"FE&MV","created_at":1682562476,"entity_type":"corporation"}],"id":872,"user":2,"created_at":1682562480},{"type":"pass","entity":"FE&MV","entity_type":"corporation","id":873,"user":2,"created_at":1682562486},{"type":"undo","entity":"FE&MV","entity_type":"corporation","id":874,"user":2,"created_at":1682562546},{"type":"undo","entity":"FE&MV","entity_type":"corporation","id":875,"user":2,"created_at":1682562552},{"type":"lay_tile","entity":"FE&MV","entity_type":"corporation","id":876,"created_at":1682562584,"auto_actions":[{"type":"pass","entity":"FE&MV","entity_type":"corporation","created_at":1682562580}],"hex":"K15","tile":"51B-1","rotation":3},{"type":"pass","entity":"FE&MV","entity_type":"corporation","id":877,"created_at":1682562590},{"type":"run_routes","entity":"FE&MV","entity_type":"corporation","id":878,"created_at":1682562780,"routes":[{"train":"5-1","connections":[["H18","I19","J18","K17"],["K15","J16","I17","H18"],["L8","M9","M11","L12","K13","K15"],["L10","L8"],["G11","H12","I13","J12","K11","L10"],["E11","F12","G11"],["D12","E11"],["C11","D12"]],"hexes":["K17","H18","K15","L8","L10","G11","E11","D12","C11"],"revenue":300,"revenue_str":"K17-H18-K15-L8-L10-G11-E11-D12-C11","nodes":["H18-0","K17-0","K15-0","L8-0","L10-0","G11-0","E11-0","D12-0","C11-0"]}]},{"type":"dividend","entity":"FE&MV","entity_type":"corporation","id":879,"created_at":1682562783,"kind":"payout"},{"type":"pass","entity":"FE&MV","entity_type":"corporation","id":880,"created_at":1682562823},{"type":"lay_tile","entity":"LNP","entity_type":"corporation","id":881,"created_at":1682571103,"hex":"K17","tile":"51B-2","rotation":2},{"type":"pass","entity":"LNP","entity_type":"corporation","id":882,"created_at":1682571173},{"type":"run_routes","entity":"LNP","entity_type":"corporation","id":883,"created_at":1682571203,"routes":[{"train":"5-2","connections":[["K15","K17"],["K15","J14","J12","K11","L10"],["L10","L8"],["L8","M7","M5","M3","M1"]],"hexes":["K17","K15","L10","L8","M1"],"revenue":200,"revenue_str":"K17-K15-L10-L8-M1","nodes":["K15-0","K17-0","L10-0","L8-0","M1-0"]}]},{"type":"dividend","entity":"LNP","entity_type":"corporation","id":884,"created_at":1682571206,"kind":"payout"},{"type":"pass","entity":"LNP","entity_type":"corporation","id":885,"created_at":1682571209},{"type":"lay_tile","entity":"RCL","entity_type":"corporation","id":886,"created_at":1682599185,"hex":"D20","tile":"13B-0","rotation":0},{"type":"pass","entity":"RCL","entity_type":"corporation","id":887,"created_at":1682599190},{"type":"run_routes","entity":"RCL","entity_type":"corporation","id":888,"created_at":1682599201,"routes":[{"train":"5-3","connections":[["L20","M21"],["K17","K19","L20"],["H18","I19","J18","K17"],["H18","I17","J16","K15"]],"hexes":["M21","L20","K17","H18","K15"],"revenue":220,"revenue_str":"M21-L20-K17-H18-K15","nodes":["L20-0","M21-0","K17-0","H18-0","K15-0"]}]},{"type":"dividend","entity":"RCL","entity_type":"corporation","id":889,"created_at":1682599205,"kind":"payout"},{"type":"pass","entity":"RCL","entity_type":"corporation","id":890,"created_at":1682599208},{"type":"pass","entity":"RCL","entity_type":"corporation","id":891,"created_at":1682599214},{"type":"lay_tile","entity":"WNW","entity_type":"corporation","id":892,"created_at":1682610047,"hex":"L8","tile":"51b-3","rotation":4},{"type":"lay_tile","entity":"WNW","entity_type":"corporation","id":893,"created_at":1682610054,"auto_actions":[{"type":"pass","entity":"WNW","entity_type":"corporation","created_at":1682610051}],"hex":"H10","tile":"51-0","rotation":2},{"type":"run_routes","entity":"WNW","entity_type":"corporation","id":894,"created_at":1682610199,"routes":[{"train":"6-2","connections":[["L8","M9","M11","L12","K13","K15"],["I9","J10","K9","L8"],["H10","I9"],["G11","H10"],["E11","F12","G11"],["D12","E11"],["C11","D12"],["C9","C11"],["B10","C9"],["A11","B10"]],"hexes":["K15","L8","I9","H10","G11","E11","D12","C11","C9","B10","A11"],"revenue":360,"revenue_str":"K15-L8-I9-H10-G11-E11-D12-C11-C9-B10-A11","nodes":["L8-0","K15-0","I9-0","H10-0","G11-0","E11-0","D12-0","C11-0","C9-0","B10-0","A11-0"]}]},{"type":"dividend","entity":"WNW","entity_type":"corporation","id":895,"created_at":1682610202,"kind":"payout"},{"type":"pass","entity":"WNW","entity_type":"corporation","id":896,"created_at":1682610367},{"type":"sell_shares","entity":4,"entity_type":"player","id":897,"created_at":1682629940,"shares":["LNP_8"],"percent":10},{"type":"buy_shares","entity":4,"entity_type":"player","id":898,"created_at":1682629944,"shares":["UP_6"],"percent":10,"share_price":false},{"type":"buy_shares","entity":5,"entity_type":"player","id":899,"created_at":1682635534,"shares":["BH_5"],"percent":10,"share_price":false},{"type":"sell_shares","entity":2,"entity_type":"player","id":900,"created_at":1682637158,"shares":["LNP_5","LNP_4"],"percent":20},{"type":"buy_shares","entity":2,"entity_type":"player","id":901,"created_at":1682637164,"shares":["BH_6"],"percent":10,"share_price":false},{"type":"buy_shares","entity":1,"entity_type":"player","id":902,"created_at":1682639900,"shares":["BH_8"],"percent":10,"share_price":false},{"type":"sell_shares","entity":4,"shares":["RCL_2"],"percent":10,"entity_type":"player","id":903,"user":4,"created_at":1682650692},{"type":"undo","entity":4,"entity_type":"player","id":904,"user":4,"created_at":1682650723},{"type":"pass","entity":4,"entity_type":"player","id":905,"created_at":1682650726},{"type":"buy_shares","entity":5,"entity_type":"player","id":906,"created_at":1682655179,"shares":["UP_2"],"percent":10,"share_price":false},{"type":"buy_shares","entity":2,"entity_type":"player","id":907,"created_at":1682655294,"shares":["UP_4"],"percent":10,"share_price":false},{"type":"buy_shares","entity":1,"entity_type":"player","id":908,"created_at":1682693142,"shares":["WNW_4"],"percent":10,"share_price":false},{"type":"program_share_pass","entity":4,"entity_type":"player","id":909,"created_at":1682739402,"auto_actions":[{"type":"pass","entity":4,"entity_type":"player","created_at":1682739398}],"unconditional":false,"indefinite":false},{"type":"program_share_pass","entity":5,"entity_type":"player","id":910,"created_at":1682742868,"auto_actions":[{"type":"pass","entity":5,"entity_type":"player","created_at":1682742866}],"unconditional":false,"indefinite":false},{"type":"buy_shares","entity":2,"entity_type":"player","id":911,"created_at":1682743115,"shares":["WNW_2"],"percent":10,"share_price":false},{"type":"program_share_pass","entity":1,"entity_type":"player","id":912,"created_at":1682780365,"auto_actions":[{"type":"pass","entity":1,"entity_type":"player","created_at":1682780361},{"type":"pass","entity":4,"entity_type":"player","created_at":1682780361},{"type":"pass","entity":5,"entity_type":"player","created_at":1682780361}],"unconditional":false,"indefinite":false},{"type":"sell_shares","entity":2,"entity_type":"player","id":913,"created_at":1682814119,"shares":["RCL_6"],"percent":10},{"type":"buy_shares","entity":2,"entity_type":"player","id":914,"created_at":1682814140,"auto_actions":[{"type":"program_disable","entity":1,"entity_type":"player","created_at":1682814135,"reason":"Shares were sold"}],"shares":["UP_5"],"percent":10,"share_price":false},{"type":"program_share_pass","entity":2,"entity_type":"player","id":915,"created_at":1682814245,"unconditional":false,"indefinite":false},{"type":"program_disable","entity":2,"entity_type":"player","id":916,"created_at":1682814318,"reason":"user","original_type":"program_share_pass"},{"type":"program_share_pass","entity":1,"entity_type":"player","id":917,"created_at":1682814354,"auto_actions":[{"type":"pass","entity":1,"entity_type":"player","created_at":1682814351},{"type":"program_disable","entity":4,"entity_type":"player","created_at":1682814351,"reason":"Shares were sold"}],"unconditional":false,"indefinite":false},{"type":"program_share_pass","entity":4,"entity_type":"player","id":918,"created_at":1682815297,"auto_actions":[{"type":"pass","entity":4,"entity_type":"player","created_at":1682815292},{"type":"program_disable","entity":5,"entity_type":"player","created_at":1682815292,"reason":"Shares were sold"}],"unconditional":false,"indefinite":false},{"type":"program_share_pass","entity":5,"entity_type":"player","id":919,"created_at":1682828614,"auto_actions":[{"type":"pass","entity":5,"entity_type":"player","created_at":1682828610}],"unconditional":false,"indefinite":false},{"type":"sell_shares","entity":2,"entity_type":"player","id":920,"created_at":1682828735,"shares":["WYC_7"],"percent":10},{"type":"buy_shares","entity":2,"entity_type":"player","id":921,"created_at":1682828739,"auto_actions":[{"type":"program_disable","entity":1,"entity_type":"player","created_at":1682828734,"reason":"Shares were sold"}],"shares":["UP_1"],"percent":10,"share_price":false},{"type":"program_share_pass","entity":2,"entity_type":"player","id":922,"created_at":1682828748,"unconditional":false,"indefinite":false},{"type":"program_share_pass","entity":1,"entity_type":"player","id":923,"created_at":1682915330,"auto_actions":[{"type":"pass","entity":1,"entity_type":"player","created_at":1682915326},{"type":"program_disable","entity":4,"entity_type":"player","created_at":1682915326,"reason":"Shares were sold"}],"unconditional":false,"indefinite":false},{"type":"program_share_pass","entity":4,"entity_type":"player","id":924,"created_at":1682920226,"auto_actions":[{"type":"pass","entity":4,"entity_type":"player","created_at":1682920222},{"type":"program_disable","entity":5,"entity_type":"player","created_at":1682920222,"reason":"Shares were sold"}],"unconditional":false,"indefinite":false},{"type":"program_share_pass","entity":5,"entity_type":"player","id":925,"created_at":1682922053,"auto_actions":[{"type":"pass","entity":5,"entity_type":"player","created_at":1682922049},{"type":"pass","entity":2,"entity_type":"player","created_at":1682922049}],"unconditional":false,"indefinite":false},{"hex":"F20","cost":10,"type":"hex_token","entity":"Coal-D","token_type":"development","entity_type":"minor","id":926,"user":4,"created_at":1682922461},{"type":"undo","entity":"Oil-D","entity_type":"minor","id":927,"user":4,"created_at":1682922473},{"type":"hex_token","entity":"Coal-D","entity_type":"minor","id":928,"created_at":1682922477,"hex":"E19","cost":0,"token_type":"development"},{"type":"pass","entity":"Oil-D","entity_type":"minor","id":929,"created_at":1682922517},{"type":"hex_token","entity":"Coal-A","entity_type":"minor","id":930,"created_at":1682922596,"hex":"L16","cost":0,"token_type":"development"},{"type":"pass","entity":"Oil-A","entity_type":"minor","id":931,"created_at":1682922602},{"type":"hex_token","entity":"Coal-B","entity_type":"minor","id":932,"created_at":1682945998,"hex":"C11","cost":0,"token_type":"development"},{"type":"pass","entity":"Oil-B","entity_type":"minor","id":933,"user":1,"created_at":1682946016},{"type":"undo","entity":"Coal-C","entity_type":"minor","id":934,"user":1,"created_at":1682946084},{"type":"remove_hex_token","entity":"Oil-B","entity_type":"minor","id":935,"created_at":1682946088,"hex":"J10"},{"type":"hex_token","entity":"Oil-B","entity_type":"minor","id":936,"created_at":1682946092,"hex":"C11","cost":0,"token_type":"development"},{"type":"pass","entity":"Oil-B","entity_type":"minor","id":937,"created_at":1682946110},{"type":"hex_token","entity":"Coal-C","entity_type":"minor","id":938,"created_at":1682946952,"hex":"D10","cost":0,"token_type":"development"},{"type":"remove_hex_token","entity":"Oil-C","entity_type":"minor","id":939,"created_at":1682946960,"hex":"J12"},{"type":"hex_token","entity":"Oil-C","entity_type":"minor","id":940,"created_at":1682946975,"hex":"D12","cost":0,"token_type":"development"},{"type":"pass","entity":"Oil-C","entity_type":"minor","id":941,"created_at":1682946997},{"type":"lay_tile","entity":"BH","entity_type":"corporation","id":942,"created_at":1682947063,"hex":"M21","tile":"RL-0","rotation":0},{"type":"lay_tile","entity":"BH","entity_type":"corporation","id":943,"created_at":1682947123,"auto_actions":[{"type":"pass","entity":"BH","entity_type":"corporation","created_at":1682947119}],"hex":"M25","tile":"BC-0","rotation":4},{"city":"RL-0-0","slot":2,"type":"place_token","entity":"BH","tokener":"BH","entity_type":"corporation","id":944,"user":2,"created_at":1682951401},{"type":"double_head_trains","entity":"BH","trains":["2+1-0","7-0"],"entity_type":"corporation","id":945,"user":2,"created_at":1682951412},{"type":"undo","entity":"BH","entity_type":"corporation","id":946,"user":2,"created_at":1682951458},{"type":"pass","entity":"BH","entity_type":"corporation","id":947,"user":2,"created_at":1682951462},{"type":"undo","entity":"BH","entity_type":"corporation","id":948,"user":2,"created_at":1682951600},{"type":"double_head_trains","entity":"BH","trains":["2+1-0","7-0"],"entity_type":"corporation","id":949,"user":2,"created_at":1682951603},{"type":"undo","entity":"BH","entity_type":"corporation","id":950,"user":2,"created_at":1682951658},{"type":"undo","entity":"BH","entity_type":"corporation","id":951,"user":2,"created_at":1682951678},{"type":"place_token","entity":"BH","entity_type":"corporation","id":952,"created_at":1682951697,"city":"RL-0-0","slot":2,"tokener":"BH"},{"type":"pass","entity":"BH","entity_type":"corporation","id":953,"created_at":1682951718},{"type":"run_routes","entity":"BH","entity_type":"corporation","id":954,"created_at":1682952234,"routes":[{"train":"2+1-0","connections":[["D12","E11"],["C11","D12"],["C9","C11"],["C5","C7","C9"]],"hexes":["E11","D12","C11","C9","C5"],"revenue":210,"revenue_str":"E11-D12-C11-C9-C5","nodes":["D12-0","E11-0","C11-0","C9-0","C5-5"]},{"train":"7-0","connections":[["M25","M27"],["M23","M25"],["M21","M23"],["M19","M21"],["N18","M19"],["L16","M17","N18"],["L10","L12","L14","L16"],["L8","L10"],["M1","M3","M5","M7","L8"]],"hexes":["M27","M25","M23","M21","M19","N18","L16","L10","L8","M1"],"revenue":350,"revenue_str":"M27-M25-M23-M21-M19-N18-L16-L10-L8-M1 + E/W","nodes":["M25-0","M27-0","M23-0","M21-0","M19-0","N18-0","L16-0","L10-0","L8-0","M1-0"]}]},{"type":"dividend","entity":"BH","entity_type":"corporation","id":955,"created_at":1682952237,"kind":"payout"},{"type":"pass","entity":"BH","entity_type":"corporation","id":956,"created_at":1682952242},{"type":"pass","entity":"BH","entity_type":"corporation","id":957,"created_at":1682952245},{"type":"lay_tile","entity":"UP","entity_type":"corporation","id":958,"created_at":1682952342,"hex":"L10","tile":"448b-0","rotation":1},{"type":"pass","entity":"UP","entity_type":"corporation","id":959,"created_at":1682952355},{"type":"run_routes","entity":"UP","entity_type":"corporation","id":960,"created_at":1682952376,"routes":[{"train":"6-1","connections":[["L8","M7","M5","M3","M1"],["L10","L8"],["L16","L14","L12","L10"],["K17","L16"],["L20","K19","K17"],["M21","L20"],["M23","M21"],["M25","M23"],["M27","M25"]],"hexes":["M1","L8","L10","L16","K17","L20","M21","M23","M25","M27"],"revenue":420,"revenue_str":"M1-L8-L10-L16-K17-L20-M21-M23-M25-M27 + E/W","nodes":["L8-0","M1-0","L10-0","L16-0","K17-0","L20-0","M21-0","M23-0","M25-0","M27-0"]}]},{"type":"dividend","entity":"UP","entity_type":"corporation","id":961,"created_at":1682952380,"kind":"payout"},{"hex":"B10","tile":"449b-1","type":"lay_tile","entity":"FE&MV","rotation":2,"entity_type":"corporation","id":962,"user":2,"created_at":1682953226},{"hex":"H22","tile":"448b-3","type":"lay_tile","entity":"FE&MV","rotation":4,"entity_type":"corporation","auto_actions":[{"type":"pass","entity":"FE&MV","created_at":1682953249,"entity_type":"corporation"}],"id":963,"user":2,"created_at":1682953253},{"type":"pass","entity":"FE&MV","entity_type":"corporation","id":964,"user":2,"created_at":1682953260},{"type":"run_routes","entity":"FE&MV","routes":[{"hexes":["K17","H18","K15","L8","L10","G11","E11","D12","C11"],"nodes":["H18-0","K17-0","K15-0","L8-0","L10-0","G11-0","E11-0","D12-0","C11-0"],"train":"5-1","revenue":350,"connections":[["H18","I19","J18","K17"],["K15","J16","I17","H18"],["L8","M9","M11","L12","K13","K15"],["L10","L8"],["G11","H12","I13","J12","K11","L10"],["E11","F12","G11"],["D12","E11"],["C11","D12"]],"revenue_str":"K17-H18-K15-L8-L10-G11-E11-D12-C11"}],"entity_type":"corporation","id":965,"user":2,"created_at":1682953271},{"type":"undo","entity":"FE&MV","entity_type":"corporation","id":966,"user":2,"created_at":1682953286},{"type":"undo","entity":"FE&MV","entity_type":"corporation","id":967,"user":2,"created_at":1682953401},{"type":"pass","entity":"FE&MV","entity_type":"corporation","id":968,"user":2,"created_at":1682953404},{"type":"run_routes","entity":"FE&MV","routes":[{"hexes":["K17","H18","K15","L8","L10","G11","E11","D12","C11"],"nodes":["H18-0","K17-0","K15-0","L8-0","L10-0","G11-0","E11-0","D12-0","C11-0"],"train":"5-1","revenue":350,"connections":[["H18","I19","J18","K17"],["K15","J16","I17","H18"],["L8","M9","M11","L12","K13","K15"],["L10","L8"],["G11","H12","I13","J12","K11","L10"],["E11","F12","G11"],["D12","E11"],["C11","D12"]],"revenue_str":"K17-H18-K15-L8-L10-G11-E11-D12-C11"}],"entity_type":"corporation","id":969,"user":2,"created_at":1682953434},{"kind":"payout","type":"dividend","entity":"FE&MV","entity_type":"corporation","id":970,"user":2,"created_at":1682953443},{"type":"undo","entity":"FE&MV","entity_type":"corporation","id":971,"user":2,"created_at":1682953476},{"type":"undo","entity":"FE&MV","entity_type":"corporation","id":972,"user":2,"created_at":1682953482},{"type":"undo","entity":"FE&MV","entity_type":"corporation","id":973,"user":2,"created_at":1682953596},{"type":"undo","entity":"FE&MV","entity_type":"corporation","id":974,"user":2,"created_at":1682953603},{"type":"undo","entity":"FE&MV","entity_type":"corporation","id":975,"user":2,"created_at":1682953609},{"hex":"I23","tile":"9-17","type":"lay_tile","entity":"FE&MV","rotation":2,"entity_type":"corporation","id":976,"user":2,"created_at":1682953634},{"hex":"J24","tile":"8-17","type":"lay_tile","entity":"FE&MV","rotation":2,"entity_type":"corporation","id":977,"user":2,"created_at":1682953638},{"type":"undo","entity":"FE&MV","entity_type":"corporation","id":978,"user":2,"created_at":1682953649},{"type":"undo","entity":"FE&MV","entity_type":"corporation","id":979,"user":2,"created_at":1682953655},{"hex":"C13","tile":"8-17","type":"lay_tile","entity":"FE&MV","rotation":1,"entity_type":"corporation","id":980,"user":2,"created_at":1682953756},{"hex":"B14","tile":"8-18","type":"lay_tile","entity":"FE&MV","rotation":4,"entity_type":"corporation","id":981,"user":2,"created_at":1682953760},{"hex":"B16","tile":"5-0","type":"lay_tile","entity":"FE&MV","rotation":1,"entity_type":"corporation","auto_actions":[{"type":"pass","entity":"FE&MV","created_at":1682953758,"entity_type":"corporation"}],"id":982,"user":2,"created_at":1682953763},{"type":"undo","entity":"FE&MV","entity_type":"corporation","id":983,"user":2,"created_at":1682953797},{"type":"undo","entity":"FE&MV","entity_type":"corporation","id":984,"user":2,"created_at":1682953803},{"type":"undo","entity":"FE&MV","entity_type":"corporation","id":985,"user":2,"created_at":1682953810},{"hex":"B10","tile":"448b-3","type":"lay_tile","entity":"FE&MV","rotation":3,"entity_type":"corporation","id":986,"user":2,"created_at":1682953960},{"hex":"B12","tile":"143-0","type":"lay_tile","entity":"FE&MV","rotation":0,"entity_type":"corporation","auto_actions":[{"type":"pass","entity":"FE&MV","created_at":1682953977,"entity_type":"corporation"}],"id":987,"user":2,"created_at":1682953982},{"type":"pass","entity":"FE&MV","entity_type":"corporation","id":988,"user":2,"created_at":1682953985},{"type":"undo","entity":"FE&MV","entity_type":"corporation","id":989,"user":2,"created_at":1682954037},{"type":"undo","entity":"FE&MV","entity_type":"corporation","id":990,"user":2,"created_at":1682954044},{"type":"undo","entity":"FE&MV","entity_type":"corporation","id":991,"user":2,"created_at":1682954050},{"hex":"B10","tile":"449b-1","type":"lay_tile","entity":"FE&MV","rotation":2,"entity_type":"corporation","id":992,"user":2,"created_at":1682954062},{"hex":"H22","tile":"450b-2","type":"lay_tile","entity":"FE&MV","rotation":1,"entity_type":"corporation","auto_actions":[{"type":"pass","entity":"FE&MV","created_at":1682954145,"entity_type":"corporation"}],"id":993,"user":2,"created_at":1682954149},{"type":"undo","entity":"FE&MV","entity_type":"corporation","id":994,"user":2,"created_at":1682954165},{"type":"undo","entity":"FE&MV","entity_type":"corporation","id":995,"user":2,"created_at":1682954171},{"hex":"H26","tile":"9-17","type":"lay_tile","entity":"FE&MV","rotation":0,"entity_type":"corporation","id":996,"user":2,"created_at":1682954175},{"type":"undo","entity":"FE&MV","entity_type":"corporation","id":997,"user":2,"created_at":1682954211},{"type":"lay_tile","entity":"FE&MV","entity_type":"corporation","id":998,"created_at":1682954215,"hex":"H22","tile":"450b-2","rotation":1},{"type":"lay_tile","entity":"FE&MV","entity_type":"corporation","id":999,"created_at":1682954246,"auto_actions":[{"type":"pass","entity":"FE&MV","entity_type":"corporation","created_at":1682954241}],"hex":"B10","tile":"449b-1","rotation":2},{"type":"pass","entity":"FE&MV","entity_type":"corporation","id":1000,"created_at":1682954253},{"type":"run_routes","entity":"FE&MV","entity_type":"corporation","id":1001,"created_at":1682954256,"routes":[{"train":"5-1","connections":[["H18","I19","J18","K17"],["K15","J16","I17","H18"],["L8","M9","M11","L12","K13","K15"],["L10","L8"],["G11","H12","I13","J12","K11","L10"],["E11","F12","G11"],["D12","E11"],["C11","D12"]],"hexes":["K17","H18","K15","L8","L10","G11","E11","D12","C11"],"revenue":350,"revenue_str":"K17-H18-K15-L8-L10-G11-E11-D12-C11","nodes":["H18-0","K17-0","K15-0","L8-0","L10-0","G11-0","E11-0","D12-0","C11-0"]}]},{"type":"dividend","entity":"FE&MV","entity_type":"corporation","id":1002,"created_at":1682954260,"kind":"payout"},{"type":"pass","entity":"FE&MV","entity_type":"corporation","id":1003,"created_at":1682954263},{"type":"pass","entity":"WYC","entity_type":"corporation","id":1004,"created_at":1682975035},{"type":"run_routes","entity":"WYC","entity_type":"corporation","id":1005,"created_at":1682975067,"routes":[{"train":"5-0","connections":[["C9","C7","C5"],["C9","C11"],["C11","D12"],["D12","E11"],["E11","F12","G11"],["G11","H10"],["H10","H12","H14","H16","H18"],["H18","H20","H22"]],"hexes":["C5","C9","C11","D12","E11","G11","H10","H18","H22"],"revenue":350,"revenue_str":"C5-C9-C11-D12-E11-G11-H10-H18-H22","nodes":["C9-0","C5-5","C11-0","D12-0","E11-0","G11-0","H10-0","H18-0","H22-0"]}]},{"type":"dividend","entity":"WYC","entity_type":"corporation","id":1006,"created_at":1682975071,"kind":"payout"},{"type":"pass","entity":"WYC","entity_type":"corporation","id":1007,"created_at":1682975074},{"type":"pass","entity":"WYC","entity_type":"corporation","id":1008,"created_at":1682975078},{"type":"pass","entity":"RCL","entity_type":"corporation","id":1009,"created_at":1682975116},{"type":"run_routes","entity":"RCL","entity_type":"corporation","id":1010,"created_at":1682975155,"routes":[{"train":"5-3","connections":[["L20","M21"],["K17","K19","L20"],["H18","I19","J18","K17"],["H18","I17","J16","K15"]],"hexes":["M21","L20","K17","H18","K15"],"revenue":240,"revenue_str":"M21-L20-K17-H18-K15","nodes":["L20-0","M21-0","K17-0","H18-0","K15-0"]}]},{"type":"dividend","entity":"RCL","entity_type":"corporation","id":1011,"created_at":1682975158,"kind":"payout"},{"type":"pass","entity":"RCL","entity_type":"corporation","id":1012,"created_at":1682975162},{"type":"pass","entity":"RCL","entity_type":"corporation","id":1013,"created_at":1682975166},{"type":"lay_tile","entity":"WNW","entity_type":"corporation","id":1014,"created_at":1682993171,"hex":"B12","tile":"144-1","rotation":0},{"type":"pass","entity":"WNW","entity_type":"corporation","id":1015,"created_at":1682993177},{"type":"run_routes","entity":"WNW","entity_type":"corporation","id":1016,"created_at":1682993233,"routes":[{"train":"6-2","connections":[["L8","M9","M11","L12","K13","K15"],["I9","J10","K9","L8"],["H10","I9"],["G11","H10"],["E11","F12","G11"],["D12","E11"],["C11","D12"],["C9","C11"],["B10","C9"],["A11","B10"]],"hexes":["K15","L8","I9","H10","G11","E11","D12","C11","C9","B10","A11"],"revenue":400,"revenue_str":"K15-L8-I9-H10-G11-E11-D12-C11-C9-B10-A11","nodes":["L8-0","K15-0","I9-0","H10-0","G11-0","E11-0","D12-0","C11-0","C9-0","B10-0","A11-0"]}]},{"type":"dividend","entity":"WNW","entity_type":"corporation","id":1017,"created_at":1682993237,"kind":"payout"},{"type":"pass","entity":"WNW","entity_type":"corporation","id":1018,"created_at":1682993245},{"type":"pass","entity":"LNP","entity_type":"corporation","id":1019,"created_at":1683006672},{"type":"run_routes","entity":"LNP","entity_type":"corporation","id":1020,"created_at":1683006709,"routes":[{"train":"5-2","connections":[["K15","K17"],["K15","J14","J12","K11","L10"],["L10","L8"],["L8","M7","M5","M3","M1"]],"hexes":["K17","K15","L10","L8","M1"],"revenue":220,"revenue_str":"K17-K15-L10-L8-M1","nodes":["K15-0","K17-0","L10-0","L8-0","M1-0"]}]},{"type":"dividend","entity":"LNP","entity_type":"corporation","id":1021,"created_at":1683006712,"kind":"payout"},{"type":"pass","entity":"LNP","entity_type":"corporation","id":1022,"created_at":1683006733},{"type":"pass","entity":"Coal-D","entity_type":"minor","id":1023,"created_at":1683025885},{"type":"pass","entity":"Oil-D","entity_type":"minor","id":1024,"created_at":1683025888},{"type":"hex_token","entity":"Coal-A","entity_type":"minor","id":1025,"created_at":1683029694,"hex":"M11","cost":0,"token_type":"development"},{"type":"hex_token","entity":"Oil-A","entity_type":"minor","id":1026,"created_at":1683029713,"hex":"K11","cost":0,"token_type":"development"},{"type":"pass","entity":"Coal-B","entity_type":"minor","id":1027,"created_at":1683032733},{"type":"pass","entity":"Oil-B","entity_type":"minor","id":1028,"created_at":1683032737},{"type":"hex_token","entity":"Coal-C","entity_type":"minor","id":1029,"created_at":1683037011,"hex":"J14","cost":0,"token_type":"development"},{"type":"pass","entity":"Oil-C","entity_type":"minor","id":1030,"created_at":1683037052},{"type":"lay_tile","entity":"BH","entity_type":"corporation","id":1031,"created_at":1683037061,"hex":"B8","tile":"8-17","rotation":3},{"type":"pass","entity":"BH","entity_type":"corporation","id":1032,"user":2,"created_at":1683037064},{"type":"undo","entity":"BH","entity_type":"corporation","id":1033,"user":2,"created_at":1683037082},{"hex":"L24","tile":"8-18","type":"lay_tile","entity":"BH","rotation":3,"entity_type":"corporation","id":1034,"user":2,"created_at":1683037090},{"type":"pass","entity":"BH","entity_type":"corporation","id":1035,"user":2,"created_at":1683037106},{"type":"pass","entity":"BH","entity_type":"corporation","id":1036,"user":2,"created_at":1683037111},{"type":"undo","entity":"BH","entity_type":"corporation","id":1037,"user":2,"created_at":1683037121},{"type":"undo","entity":"BH","entity_type":"corporation","id":1038,"user":2,"created_at":1683037128},{"type":"pass","entity":"BH","entity_type":"corporation","id":1039,"user":2,"created_at":1683037150},{"type":"pass","entity":"BH","entity_type":"corporation","id":1040,"user":2,"created_at":1683037153},{"type":"pass","entity":"BH","entity_type":"corporation","id":1041,"user":2,"created_at":1683037157},{"type":"undo","entity":"BH","action_id":1031,"entity_type":"corporation","id":1042,"user":2,"created_at":1683037359},{"type":"lay_tile","entity":"BH","entity_type":"corporation","id":1043,"created_at":1683037369,"hex":"L24","tile":"9-17","rotation":2},{"type":"lay_tile","entity":"BH","entity_type":"corporation","id":1044,"created_at":1683037374,"auto_actions":[{"type":"pass","entity":"BH","entity_type":"corporation","created_at":1683037370}],"hex":"K23","tile":"8-18","rotation":3},{"type":"pass","entity":"BH","entity_type":"corporation","id":1045,"created_at":1683037380},{"type":"pass","entity":"BH","entity_type":"corporation","id":1046,"created_at":1683037384},{"type":"run_routes","entity":"BH","entity_type":"corporation","id":1047,"created_at":1683037421,"routes":[{"train":"2+1-0","connections":[["C11","D12"],["B10","C11"],["C9","B10"],["C5","C7","C9"]],"hexes":["D12","C11","B10","C9","C5"],"revenue":220,"revenue_str":"D12-C11-B10-C9-C5","nodes":["C11-0","D12-0","B10-0","C9-0","C5-5"]},{"train":"7-0","connections":[["M25","M27"],["M23","M25"],["M21","M23"],["M19","M21"],["N18","M19"],["L16","M17","N18"],["L10","L12","L14","L16"],["G11","H12","I13","J12","K11","L10"],["E11","F12","G11"],["C9","D10","E11"],["A9","B8","C9"]],"hexes":["M27","M25","M23","M21","M19","N18","L16","L10","G11","E11","C9","A9"],"revenue":400,"revenue_str":"M27-M25-M23-M21-M19-N18-L16-L10-G11-E11-C9-A9 + E/W","nodes":["M25-0","M27-0","M23-0","M21-0","M19-0","N18-0","L16-0","L10-0","G11-0","E11-0","C9-0","A9-0"]}]},{"type":"dividend","entity":"BH","entity_type":"corporation","id":1048,"created_at":1683037424,"kind":"payout"},{"type":"pass","entity":"BH","entity_type":"corporation","id":1049,"created_at":1683037428},{"type":"pass","entity":"BH","entity_type":"corporation","id":1050,"created_at":1683037431},{"type":"pass","entity":"UP","entity_type":"corporation","id":1051,"created_at":1683037521},{"type":"run_routes","entity":"UP","entity_type":"corporation","id":1052,"created_at":1683041552,"routes":[{"train":"6-1","connections":[["L8","M7","M5","M3","M1"],["L10","L8"],["L16","L14","L12","L10"],["K17","L16"],["L20","K19","K17"],["M21","L20"],["M23","M21"],["M25","M23"],["M27","M25"]],"hexes":["M1","L8","L10","L16","K17","L20","M21","M23","M25","M27"],"revenue":420,"revenue_str":"M1-L8-L10-L16-K17-L20-M21-M23-M25-M27 + E/W","nodes":["L8-0","M1-0","L10-0","L16-0","K17-0","L20-0","M21-0","M23-0","M25-0","M27-0"]}]},{"type":"dividend","entity":"UP","entity_type":"corporation","id":1053,"created_at":1683041569,"kind":"payout"},{"type":"lay_tile","entity":"FE&MV","entity_type":"corporation","id":1054,"created_at":1683060710,"hex":"I23","tile":"9-0","rotation":2},{"type":"lay_tile","entity":"FE&MV","entity_type":"corporation","id":1055,"created_at":1683060714,"hex":"J24","tile":"8-19","rotation":0},{"type":"lay_tile","entity":"FE&MV","entity_type":"corporation","id":1056,"created_at":1683060732,"auto_actions":[{"type":"pass","entity":"FE&MV","entity_type":"corporation","created_at":1683060728}],"hex":"H26","tile":"9-18","rotation":0},{"type":"pass","entity":"FE&MV","entity_type":"corporation","id":1057,"created_at":1683060739},{"type":"run_routes","entity":"FE&MV","entity_type":"corporation","id":1058,"created_at":1683060779,"routes":[{"train":"5-1","connections":[["L8","M7","M5","M3","M1"],["L10","L8"],["K15","J14","J12","K11","L10"],["H18","I17","J16","K15"],["H22","H20","H18"],["M25","L24","K23","J24","I23","H22"],["M27","M25"]],"hexes":["M1","L8","L10","K15","H18","H22","M25","M27"],"revenue":420,"revenue_str":"M1-L8-L10-K15-H18-H22-M25-M27 + E/W","nodes":["L8-0","M1-0","L10-0","K15-0","H18-0","H22-0","M25-0","M27-0"]}]},{"type":"dividend","entity":"FE&MV","entity_type":"corporation","id":1059,"created_at":1683060782,"kind":"payout"},{"type":"pass","entity":"FE&MV","entity_type":"corporation","id":1060,"created_at":1683060787},{"type":"pass","entity":"WYC","entity_type":"corporation","id":1061,"created_at":1683065013},{"type":"run_routes","entity":"WYC","entity_type":"corporation","id":1062,"created_at":1683065017,"routes":[{"train":"5-0","connections":[["C9","C7","C5"],["C9","C11"],["C11","D12"],["D12","E11"],["E11","F12","G11"],["G11","H10"],["H10","H12","H14","H16","H18"],["H18","H20","H22"]],"hexes":["C5","C9","C11","D12","E11","G11","H10","H18","H22"],"revenue":350,"revenue_str":"C5-C9-C11-D12-E11-G11-H10-H18-H22","nodes":["C9-0","C5-5","C11-0","D12-0","E11-0","G11-0","H10-0","H18-0","H22-0"]}]},{"type":"dividend","entity":"WYC","entity_type":"corporation","id":1063,"created_at":1683065021,"kind":"payout"},{"type":"pass","entity":"WYC","entity_type":"corporation","id":1064,"created_at":1683065024},{"type":"pass","entity":"WYC","entity_type":"corporation","id":1065,"created_at":1683065028},{"type":"lay_tile","entity":"WNW","entity_type":"corporation","id":1066,"created_at":1683065141,"hex":"I9","tile":"13b-1","rotation":1},{"type":"lay_tile","entity":"WNW","entity_type":"corporation","id":1067,"created_at":1683065148,"auto_actions":[{"type":"pass","entity":"WNW","entity_type":"corporation","created_at":1683065143}],"hex":"I9","tile":"450b-3","rotation":1},{"type":"run_routes","entity":"WNW","entity_type":"corporation","id":1068,"created_at":1683065154,"routes":[{"train":"6-2","connections":[["L8","M9","M11","L12","K13","K15"],["I9","J10","K9","L8"],["H10","I9"],["G11","H10"],["E11","F12","G11"],["D12","E11"],["C11","D12"],["C9","C11"],["B10","C9"],["A11","B10"]],"hexes":["K15","L8","I9","H10","G11","E11","D12","C11","C9","B10","A11"],"revenue":410,"revenue_str":"K15-L8-I9-H10-G11-E11-D12-C11-C9-B10-A11","nodes":["L8-0","K15-0","I9-0","H10-0","G11-0","E11-0","D12-0","C11-0","C9-0","B10-0","A11-0"]}]},{"type":"dividend","entity":"WNW","entity_type":"corporation","id":1069,"created_at":1683065158,"kind":"payout"},{"type":"pass","entity":"WNW","entity_type":"corporation","id":1070,"created_at":1683065194},{"type":"pass","entity":"RCL","entity_type":"corporation","id":1071,"created_at":1683065318},{"type":"run_routes","entity":"RCL","entity_type":"corporation","id":1072,"created_at":1683065322,"routes":[{"train":"5-3","connections":[["L20","M21"],["K17","K19","L20"],["H18","I19","J18","K17"],["H18","I17","J16","K15"]],"hexes":["M21","L20","K17","H18","K15"],"revenue":240,"revenue_str":"M21-L20-K17-H18-K15","nodes":["L20-0","M21-0","K17-0","H18-0","K15-0"]}]},{"type":"dividend","entity":"RCL","entity_type":"corporation","id":1073,"created_at":1683065326,"kind":"payout"},{"type":"pass","entity":"RCL","entity_type":"corporation","id":1074,"created_at":1683065329},{"type":"pass","entity":"RCL","entity_type":"corporation","id":1075,"created_at":1683065333},{"type":"pass","entity":"LNP","entity_type":"corporation","id":1076,"created_at":1683096992},{"type":"run_routes","entity":"LNP","entity_type":"corporation","id":1077,"created_at":1683096996,"routes":[{"train":"5-2","connections":[["K15","K17"],["K15","J14","J12","K11","L10"],["L10","L8"],["L8","M7","M5","M3","M1"]],"hexes":["K17","K15","L10","L8","M1"],"revenue":220,"revenue_str":"K17-K15-L10-L8-M1","nodes":["K15-0","K17-0","L10-0","L8-0","M1-0"]}]},{"type":"dividend","entity":"LNP","entity_type":"corporation","id":1078,"created_at":1683096999,"kind":"payout"},{"type":"pass","entity":"LNP","entity_type":"corporation","id":1079,"created_at":1683097003},{"type":"pass","entity":"BH","entity_type":"corporation","id":1080,"created_at":1683097360},{"type":"pass","entity":"BH","entity_type":"corporation","id":1081,"created_at":1683097377},{"type":"pass","entity":"BH","entity_type":"corporation","id":1082,"user":2,"created_at":1683097381},{"type":"undo","entity":"BH","entity_type":"corporation","id":1083,"user":2,"created_at":1683097432},{"type":"pass","entity":"BH","entity_type":"corporation","id":1084,"created_at":1683097436},{"type":"run_routes","entity":"BH","entity_type":"corporation","id":1085,"created_at":1683097440,"routes":[{"train":"2+1-0","connections":[["C11","D12"],["B10","C11"],["C9","B10"],["C5","C7","C9"]],"hexes":["D12","C11","B10","C9","C5"],"revenue":220,"revenue_str":"D12-C11-B10-C9-C5","nodes":["C11-0","D12-0","B10-0","C9-0","C5-5"]},{"train":"7-0","connections":[["M25","M27"],["M23","M25"],["M21","M23"],["M19","M21"],["N18","M19"],["L16","M17","N18"],["L10","L12","L14","L16"],["G11","H12","I13","J12","K11","L10"],["E11","F12","G11"],["C9","D10","E11"],["A9","B8","C9"]],"hexes":["M27","M25","M23","M21","M19","N18","L16","L10","G11","E11","C9","A9"],"revenue":400,"revenue_str":"M27-M25-M23-M21-M19-N18-L16-L10-G11-E11-C9-A9 + E/W","nodes":["M25-0","M27-0","M23-0","M21-0","M19-0","N18-0","L16-0","L10-0","G11-0","E11-0","C9-0","A9-0"]}]},{"type":"dividend","entity":"BH","entity_type":"corporation","id":1086,"created_at":1683097444,"kind":"payout"},{"type":"pass","entity":"BH","entity_type":"corporation","id":1087,"created_at":1683097447},{"type":"pass","entity":"UP","entity_type":"corporation","id":1088,"created_at":1683122156},{"type":"run_routes","entity":"UP","entity_type":"corporation","id":1089,"created_at":1683122178,"routes":[{"train":"6-1","connections":[["L8","M7","M5","M3","M1"],["L10","L8"],["L16","L14","L12","L10"],["K17","L16"],["L20","K19","K17"],["M21","L20"],["M23","M21"],["M25","M23"],["M27","M25"]],"hexes":["M1","L8","L10","L16","K17","L20","M21","M23","M25","M27"],"revenue":420,"revenue_str":"M1-L8-L10-L16-K17-L20-M21-M23-M25-M27 + E/W","nodes":["L8-0","M1-0","L10-0","L16-0","K17-0","L20-0","M21-0","M23-0","M25-0","M27-0"]}]},{"type":"dividend","entity":"UP","entity_type":"corporation","id":1090,"created_at":1683122181,"kind":"payout"},{"type":"pass","entity":"FE&MV","entity_type":"corporation","id":1091,"created_at":1683123376},{"type":"pass","entity":"FE&MV","entity_type":"corporation","id":1092,"created_at":1683123380},{"type":"run_routes","entity":"FE&MV","entity_type":"corporation","id":1093,"created_at":1683123436,"routes":[{"train":"5-1","connections":[["L8","M7","M5","M3","M1"],["L10","L8"],["K15","J14","J12","K11","L10"],["H18","I17","J16","K15"],["H22","H20","H18"],["M25","L24","K23","J24","I23","H22"],["M27","M25"]],"hexes":["M1","L8","L10","K15","H18","H22","M25","M27"],"revenue":420,"revenue_str":"M1-L8-L10-K15-H18-H22-M25-M27 + E/W","nodes":["L8-0","M1-0","L10-0","K15-0","H18-0","H22-0","M25-0","M27-0"]}]},{"type":"dividend","entity":"FE&MV","entity_type":"corporation","id":1094,"created_at":1683123440,"kind":"payout"},{"type":"pass","entity":"FE&MV","entity_type":"corporation","id":1095,"created_at":1683123444},{"type":"pass","entity":"WYC","entity_type":"corporation","id":1096,"created_at":1683149214},{"type":"run_routes","entity":"WYC","entity_type":"corporation","id":1097,"created_at":1683149218,"routes":[{"train":"5-0","connections":[["C9","C7","C5"],["C9","C11"],["C11","D12"],["D12","E11"],["E11","F12","G11"],["G11","H10"],["H10","H12","H14","H16","H18"],["H18","H20","H22"]],"hexes":["C5","C9","C11","D12","E11","G11","H10","H18","H22"],"revenue":350,"revenue_str":"C5-C9-C11-D12-E11-G11-H10-H18-H22","nodes":["C9-0","C5-5","C11-0","D12-0","E11-0","G11-0","H10-0","H18-0","H22-0"]}]},{"type":"dividend","entity":"WYC","entity_type":"corporation","id":1098,"created_at":1683149221,"kind":"payout"},{"type":"pass","entity":"WYC","entity_type":"corporation","id":1099,"created_at":1683149226},{"type":"pass","entity":"WNW","entity_type":"corporation","id":1100,"created_at":1683149413},{"type":"run_routes","entity":"WNW","entity_type":"corporation","id":1101,"created_at":1683149441,"routes":[{"train":"6-2","connections":[["L8","M9","M11","L12","K13","K15"],["I9","J10","K9","L8"],["H10","I9"],["G11","H10"],["E11","F12","G11"],["D12","E11"],["C11","D12"],["C9","C11"],["B10","C9"],["A11","B10"]],"hexes":["K15","L8","I9","H10","G11","E11","D12","C11","C9","B10","A11"],"revenue":410,"revenue_str":"K15-L8-I9-H10-G11-E11-D12-C11-C9-B10-A11","nodes":["L8-0","K15-0","I9-0","H10-0","G11-0","E11-0","D12-0","C11-0","C9-0","B10-0","A11-0"]}]},{"type":"dividend","entity":"WNW","entity_type":"corporation","id":1102,"created_at":1683149444,"kind":"payout"},{"type":"pass","entity":"WNW","entity_type":"corporation","id":1103,"created_at":1683149448},{"type":"pass","entity":"RCL","entity_type":"corporation","id":1104,"created_at":1683149608},{"type":"run_routes","entity":"RCL","entity_type":"corporation","id":1105,"created_at":1683149612,"routes":[{"train":"5-3","connections":[["L20","M21"],["K17","K19","L20"],["H18","I19","J18","K17"],["H18","I17","J16","K15"]],"hexes":["M21","L20","K17","H18","K15"],"revenue":240,"revenue_str":"M21-L20-K17-H18-K15","nodes":["L20-0","M21-0","K17-0","H18-0","K15-0"]}]},{"type":"dividend","entity":"RCL","entity_type":"corporation","id":1106,"created_at":1683149617,"kind":"payout"},{"type":"pass","entity":"RCL","entity_type":"corporation","id":1107,"created_at":1683149621},{"type":"pass","entity":"LNP","entity_type":"corporation","id":1108,"created_at":1683154742},{"type":"run_routes","entity":"LNP","entity_type":"corporation","id":1109,"created_at":1683154746,"routes":[{"train":"5-2","connections":[["K15","K17"],["K15","J14","J12","K11","L10"],["L10","L8"],["L8","M7","M5","M3","M1"]],"hexes":["K17","K15","L10","L8","M1"],"revenue":220,"revenue_str":"K17-K15-L10-L8-M1","nodes":["K15-0","K17-0","L10-0","L8-0","M1-0"]}]},{"type":"dividend","entity":"LNP","entity_type":"corporation","id":1110,"created_at":1683154750,"kind":"payout"},{"type":"pass","entity":"LNP","entity_type":"corporation","id":1111,"created_at":1683154757}],"loaded":true,"created_at":1675648062,"updated_at":1683154757,"finished_at":1683154757} \ No newline at end of file diff --git a/spec/fixtures/1870/1638406193 brown price protect at cert limit allowed.json b/public/fixtures/1870/1638406193 brown price protect at cert limit allowed.json similarity index 100% rename from spec/fixtures/1870/1638406193 brown price protect at cert limit allowed.json rename to public/fixtures/1870/1638406193 brown price protect at cert limit allowed.json diff --git a/spec/fixtures/1870/1644327587 Mississippi river madness.json b/public/fixtures/1870/1644327587 Mississippi river madness.json similarity index 100% rename from spec/fixtures/1870/1644327587 Mississippi river madness.json rename to public/fixtures/1870/1644327587 Mississippi river madness.json diff --git a/spec/fixtures/1870/34110.json b/public/fixtures/1870/34110.json similarity index 100% rename from spec/fixtures/1870/34110.json rename to public/fixtures/1870/34110.json diff --git a/spec/fixtures/1870/40469 white-to-yellow price protect allowed.json b/public/fixtures/1870/40469 white-to-yellow price protect allowed.json similarity index 100% rename from spec/fixtures/1870/40469 white-to-yellow price protect allowed.json rename to public/fixtures/1870/40469 white-to-yellow price protect allowed.json diff --git a/spec/fixtures/1870/40469 white-to-yellow price protect over cert limit fails.json b/public/fixtures/1870/40469 white-to-yellow price protect over cert limit fails.json similarity index 100% rename from spec/fixtures/1870/40469 white-to-yellow price protect over cert limit fails.json rename to public/fixtures/1870/40469 white-to-yellow price protect over cert limit fails.json diff --git a/spec/fixtures/1870/41645.json b/public/fixtures/1870/41645.json similarity index 100% rename from spec/fixtures/1870/41645.json rename to public/fixtures/1870/41645.json diff --git a/spec/fixtures/1871/README.md b/public/fixtures/1871/README.md similarity index 100% rename from spec/fixtures/1871/README.md rename to public/fixtures/1871/README.md diff --git a/spec/fixtures/1873/hs_gwlftpex_33770.json b/public/fixtures/1873/hs_gwlftpex_33770.json similarity index 100% rename from spec/fixtures/1873/hs_gwlftpex_33770.json rename to public/fixtures/1873/hs_gwlftpex_33770.json diff --git a/spec/fixtures/1877 Stockholm Tramways/87970.json b/public/fixtures/1877 Stockholm Tramways/87970.json similarity index 100% rename from spec/fixtures/1877 Stockholm Tramways/87970.json rename to public/fixtures/1877 Stockholm Tramways/87970.json diff --git a/spec/fixtures/1877 Stockholm Tramways/87980.json b/public/fixtures/1877 Stockholm Tramways/87980.json similarity index 100% rename from spec/fixtures/1877 Stockholm Tramways/87980.json rename to public/fixtures/1877 Stockholm Tramways/87980.json diff --git a/spec/fixtures/1877 Stockholm Tramways/87981.json b/public/fixtures/1877 Stockholm Tramways/87981.json similarity index 100% rename from spec/fixtures/1877 Stockholm Tramways/87981.json rename to public/fixtures/1877 Stockholm Tramways/87981.json diff --git a/spec/fixtures/1877 Stockholm Tramways/88005.json b/public/fixtures/1877 Stockholm Tramways/88005.json similarity index 100% rename from spec/fixtures/1877 Stockholm Tramways/88005.json rename to public/fixtures/1877 Stockholm Tramways/88005.json diff --git a/spec/fixtures/1877 Stockholm Tramways/88195.json b/public/fixtures/1877 Stockholm Tramways/88195.json similarity index 100% rename from spec/fixtures/1877 Stockholm Tramways/88195.json rename to public/fixtures/1877 Stockholm Tramways/88195.json diff --git a/spec/fixtures/1877 Stockholm Tramways/88703.json b/public/fixtures/1877 Stockholm Tramways/88703.json similarity index 100% rename from spec/fixtures/1877 Stockholm Tramways/88703.json rename to public/fixtures/1877 Stockholm Tramways/88703.json diff --git a/spec/fixtures/1877 Stockholm Tramways/88716.json b/public/fixtures/1877 Stockholm Tramways/88716.json similarity index 100% rename from spec/fixtures/1877 Stockholm Tramways/88716.json rename to public/fixtures/1877 Stockholm Tramways/88716.json diff --git a/spec/fixtures/1877 Stockholm Tramways/88758.json b/public/fixtures/1877 Stockholm Tramways/88758.json similarity index 100% rename from spec/fixtures/1877 Stockholm Tramways/88758.json rename to public/fixtures/1877 Stockholm Tramways/88758.json diff --git a/spec/fixtures/1877 Stockholm Tramways/89931.json b/public/fixtures/1877 Stockholm Tramways/89931.json similarity index 100% rename from spec/fixtures/1877 Stockholm Tramways/89931.json rename to public/fixtures/1877 Stockholm Tramways/89931.json diff --git a/spec/fixtures/1880/1.json b/public/fixtures/1880/1.json similarity index 100% rename from spec/fixtures/1880/1.json rename to public/fixtures/1880/1.json diff --git a/spec/fixtures/1882/10526.json b/public/fixtures/1882/10526.json similarity index 100% rename from spec/fixtures/1882/10526.json rename to public/fixtures/1882/10526.json diff --git a/spec/fixtures/1882/5236.json b/public/fixtures/1882/5236.json similarity index 100% rename from spec/fixtures/1882/5236.json rename to public/fixtures/1882/5236.json diff --git a/spec/fixtures/1882/5585.json b/public/fixtures/1882/5585.json similarity index 100% rename from spec/fixtures/1882/5585.json rename to public/fixtures/1882/5585.json diff --git a/spec/fixtures/1882/hs_fxmfdndg_26178.json b/public/fixtures/1882/hs_fxmfdndg_26178.json similarity index 100% rename from spec/fixtures/1882/hs_fxmfdndg_26178.json rename to public/fixtures/1882/hs_fxmfdndg_26178.json diff --git a/spec/fixtures/1882/hs_iopxwxht_26178.json b/public/fixtures/1882/hs_iopxwxht_26178.json similarity index 100% rename from spec/fixtures/1882/hs_iopxwxht_26178.json rename to public/fixtures/1882/hs_iopxwxht_26178.json diff --git a/spec/fixtures/1882/hs_kufujwkw_26178.json b/public/fixtures/1882/hs_kufujwkw_26178.json similarity index 100% rename from spec/fixtures/1882/hs_kufujwkw_26178.json rename to public/fixtures/1882/hs_kufujwkw_26178.json diff --git a/spec/fixtures/1882/hs_vaxptumi_26178.json b/public/fixtures/1882/hs_vaxptumi_26178.json similarity index 100% rename from spec/fixtures/1882/hs_vaxptumi_26178.json rename to public/fixtures/1882/hs_vaxptumi_26178.json diff --git a/spec/fixtures/1888/63897.json b/public/fixtures/1888/63897.json similarity index 100% rename from spec/fixtures/1888/63897.json rename to public/fixtures/1888/63897.json diff --git a/spec/fixtures/1889/314.json b/public/fixtures/1889/314.json similarity index 100% rename from spec/fixtures/1889/314.json rename to public/fixtures/1889/314.json diff --git a/spec/fixtures/1889/962.json b/public/fixtures/1889/962.json similarity index 100% rename from spec/fixtures/1889/962.json rename to public/fixtures/1889/962.json diff --git a/spec/fixtures/1889/hs_jmmljkbw_17502.json b/public/fixtures/1889/hs_jmmljkbw_17502.json similarity index 100% rename from spec/fixtures/1889/hs_jmmljkbw_17502.json rename to public/fixtures/1889/hs_jmmljkbw_17502.json diff --git a/spec/fixtures/1889/hs_lhglbbiz_17502.json b/public/fixtures/1889/hs_lhglbbiz_17502.json similarity index 100% rename from spec/fixtures/1889/hs_lhglbbiz_17502.json rename to public/fixtures/1889/hs_lhglbbiz_17502.json diff --git a/spec/fixtures/18AL/1446.json b/public/fixtures/18AL/1446.json similarity index 100% rename from spec/fixtures/18AL/1446.json rename to public/fixtures/18AL/1446.json diff --git a/spec/fixtures/18AL/4714.json b/public/fixtures/18AL/4714.json similarity index 100% rename from spec/fixtures/18AL/4714.json rename to public/fixtures/18AL/4714.json diff --git a/spec/fixtures/18CO/21422.json b/public/fixtures/18CO/21422.json similarity index 100% rename from spec/fixtures/18CO/21422.json rename to public/fixtures/18CO/21422.json diff --git a/spec/fixtures/18CO/22032.json b/public/fixtures/18CO/22032.json similarity index 100% rename from spec/fixtures/18CO/22032.json rename to public/fixtures/18CO/22032.json diff --git a/spec/fixtures/18CZ/29247.json b/public/fixtures/18CZ/29247.json similarity index 100% rename from spec/fixtures/18CZ/29247.json rename to public/fixtures/18CZ/29247.json diff --git a/spec/fixtures/18CZ/2_player_hostseat.json b/public/fixtures/18CZ/2_player_hostseat.json similarity index 100% rename from spec/fixtures/18CZ/2_player_hostseat.json rename to public/fixtures/18CZ/2_player_hostseat.json diff --git a/spec/fixtures/18Carolinas/86397.json b/public/fixtures/18Carolinas/86397.json similarity index 100% rename from spec/fixtures/18Carolinas/86397.json rename to public/fixtures/18Carolinas/86397.json diff --git a/spec/fixtures/18Chesapeake/1277.json b/public/fixtures/18Chesapeake/1277.json similarity index 100% rename from spec/fixtures/18Chesapeake/1277.json rename to public/fixtures/18Chesapeake/1277.json diff --git a/spec/fixtures/18Chesapeake/14377.json b/public/fixtures/18Chesapeake/14377.json similarity index 100% rename from spec/fixtures/18Chesapeake/14377.json rename to public/fixtures/18Chesapeake/14377.json diff --git a/spec/fixtures/18Chesapeake/1905.json b/public/fixtures/18Chesapeake/1905.json similarity index 100% rename from spec/fixtures/18Chesapeake/1905.json rename to public/fixtures/18Chesapeake/1905.json diff --git a/spec/fixtures/18Chesapeake/22383.json b/public/fixtures/18Chesapeake/22383.json similarity index 100% rename from spec/fixtures/18Chesapeake/22383.json rename to public/fixtures/18Chesapeake/22383.json diff --git a/spec/fixtures/18Chesapeake/3055.json b/public/fixtures/18Chesapeake/3055.json similarity index 100% rename from spec/fixtures/18Chesapeake/3055.json rename to public/fixtures/18Chesapeake/3055.json diff --git a/spec/fixtures/18EU/74045.json b/public/fixtures/18EU/74045.json similarity index 100% rename from spec/fixtures/18EU/74045.json rename to public/fixtures/18EU/74045.json diff --git a/spec/fixtures/18FL/README.md b/public/fixtures/18FL/README.md similarity index 100% rename from spec/fixtures/18FL/README.md rename to public/fixtures/18FL/README.md diff --git a/spec/fixtures/18FL/hotseat03.json b/public/fixtures/18FL/hotseat03.json similarity index 100% rename from spec/fixtures/18FL/hotseat03.json rename to public/fixtures/18FL/hotseat03.json diff --git a/spec/fixtures/18FL/hotseat04.json b/public/fixtures/18FL/hotseat04.json similarity index 100% rename from spec/fixtures/18FL/hotseat04.json rename to public/fixtures/18FL/hotseat04.json diff --git a/spec/fixtures/18GB/18gb-2p-ew.json b/public/fixtures/18GB/18gb-2p-ew.json similarity index 100% rename from spec/fixtures/18GB/18gb-2p-ew.json rename to public/fixtures/18GB/18gb-2p-ew.json diff --git a/spec/fixtures/18GB/18gb-3p.json b/public/fixtures/18GB/18gb-3p.json similarity index 100% rename from spec/fixtures/18GB/18gb-3p.json rename to public/fixtures/18GB/18gb-3p.json diff --git a/spec/fixtures/18GB/18gb-6p.json b/public/fixtures/18GB/18gb-6p.json similarity index 100% rename from spec/fixtures/18GB/18gb-6p.json rename to public/fixtures/18GB/18gb-6p.json diff --git a/spec/fixtures/18Ireland/39547.json b/public/fixtures/18Ireland/39547.json similarity index 100% rename from spec/fixtures/18Ireland/39547.json rename to public/fixtures/18Ireland/39547.json diff --git a/spec/fixtures/18Ireland/hs_ljvktyhv_38235.json b/public/fixtures/18Ireland/hs_ljvktyhv_38235.json similarity index 100% rename from spec/fixtures/18Ireland/hs_ljvktyhv_38235.json rename to public/fixtures/18Ireland/hs_ljvktyhv_38235.json diff --git a/spec/fixtures/18MEX/13315.json b/public/fixtures/18MEX/13315.json similarity index 100% rename from spec/fixtures/18MEX/13315.json rename to public/fixtures/18MEX/13315.json diff --git a/spec/fixtures/18MEX/17849.json b/public/fixtures/18MEX/17849.json similarity index 100% rename from spec/fixtures/18MEX/17849.json rename to public/fixtures/18MEX/17849.json diff --git a/spec/fixtures/18MEX/80226.json b/public/fixtures/18MEX/80226.json similarity index 100% rename from spec/fixtures/18MEX/80226.json rename to public/fixtures/18MEX/80226.json diff --git a/spec/fixtures/18MEX/README.md b/public/fixtures/18MEX/README.md similarity index 100% rename from spec/fixtures/18MEX/README.md rename to public/fixtures/18MEX/README.md diff --git a/spec/fixtures/18MEX/hotseat01.json b/public/fixtures/18MEX/hotseat01.json similarity index 100% rename from spec/fixtures/18MEX/hotseat01.json rename to public/fixtures/18MEX/hotseat01.json diff --git a/spec/fixtures/18MS/14375.json b/public/fixtures/18MS/14375.json similarity index 100% rename from spec/fixtures/18MS/14375.json rename to public/fixtures/18MS/14375.json diff --git a/spec/fixtures/18MS/17510.json b/public/fixtures/18MS/17510.json similarity index 100% rename from spec/fixtures/18MS/17510.json rename to public/fixtures/18MS/17510.json diff --git a/spec/fixtures/18MS/67889.json b/public/fixtures/18MS/67889.json similarity index 100% rename from spec/fixtures/18MS/67889.json rename to public/fixtures/18MS/67889.json diff --git a/spec/fixtures/18MT/hs_tolebqll_1644895968.json b/public/fixtures/18MT/hs_tolebqll_1644895968.json similarity index 100% rename from spec/fixtures/18MT/hs_tolebqll_1644895968.json rename to public/fixtures/18MT/hs_tolebqll_1644895968.json diff --git a/spec/fixtures/18Mag/76622.json b/public/fixtures/18Mag/76622.json similarity index 100% rename from spec/fixtures/18Mag/76622.json rename to public/fixtures/18Mag/76622.json diff --git a/public/fixtures/18Mag/hs_tfagolvf_76622.json b/public/fixtures/18Mag/hs_tfagolvf_76622.json new file mode 100644 index 0000000000..6708c87b5f --- /dev/null +++ b/public/fixtures/18Mag/hs_tfagolvf_76622.json @@ -0,0 +1 @@ +{"status":"active","actions":[{"type":"bid","entity":1355,"entity_type":"player","id":1,"created_at":1647183951,"minor":"1","price":0},{"type":"bid","entity":10497,"entity_type":"player","id":2,"created_at":1647183984,"minor":"6","price":0},{"type":"bid","entity":1423,"entity_type":"player","id":3,"created_at":1647184001,"minor":"3","price":0},{"type":"bid","entity":1443,"entity_type":"player","id":4,"created_at":1647184054,"corporation":"SKEV","price":0},{"type":"bid","entity":3510,"entity_type":"player","id":5,"created_at":1647184101,"minor":"12","price":0},{"type":"bid","entity":10497,"entity_type":"player","id":6,"created_at":1647184116,"minor":"2","price":0},{"type":"bid","entity":1423,"entity_type":"player","id":7,"created_at":1647184148,"corporation":"SKEV","price":0},{"type":"bid","entity":1443,"entity_type":"player","id":8,"created_at":1647184181,"minor":"4","price":0},{"type":"bid","entity":3510,"entity_type":"player","id":9,"created_at":1647184188,"corporation":"SNW","price":0},{"type":"bid","entity":1355,"entity_type":"player","id":10,"created_at":1647184217,"minor":"7","price":0},{"type":"bid","entity":1423,"entity_type":"player","id":11,"created_at":1647184273,"minor":"5","price":0},{"type":"bid","entity":1443,"entity_type":"player","id":12,"created_at":1647184287,"corporation":"LdStEG","price":0},{"type":"bid","entity":3510,"entity_type":"player","id":13,"created_at":1647184315,"minor":"10","price":0},{"type":"bid","entity":1355,"entity_type":"player","id":14,"created_at":1647184337,"corporation":"LdStEG","price":0},{"type":"bid","entity":10497,"entity_type":"player","id":15,"created_at":1647184346,"corporation":"SNW","price":0},{"type":"bid","entity":1443,"entity_type":"player","id":16,"created_at":1647184387,"minor":"9","price":0},{"type":"bid","entity":3510,"entity_type":"player","id":17,"created_at":1647184399,"corporation":"SIK","price":0},{"type":"bid","entity":1355,"entity_type":"player","id":18,"created_at":1647184495,"corporation":"SIK","price":0},{"type":"bid","entity":10497,"entity_type":"player","id":19,"created_at":1647184502,"corporation":"RABA","price":0},{"type":"bid","entity":1423,"entity_type":"player","id":20,"created_at":1647184546,"corporation":"G&C","price":0},{"hex":"D13","tile":"58-0","type":"lay_tile","entity":"1","rotation":0,"entity_type":"minor","id":21,"user":1355,"created_at":1647184614,"skip":true},{"hex":"E12","tile":"L33-0","type":"lay_tile","entity":"1","rotation":2,"entity_type":"minor","id":22,"user":1355,"created_at":1647184617,"skip":true},{"skip":true,"type":"undo","entity":"1","action_id":20,"entity_type":"minor","id":23,"user":1355,"created_at":1647184625},{"type":"lay_tile","entity":"1","entity_type":"minor","id":24,"created_at":1647184633,"hex":"E12","tile":"L33-0","rotation":2},{"type":"lay_tile","entity":"1","entity_type":"minor","id":25,"created_at":1647184636,"hex":"F13","tile":"6-0","rotation":0},{"type":"pass","entity":"1","entity_type":"minor","id":26,"created_at":1647184645},{"type":"pass","entity":"1","entity_type":"minor","id":27,"created_at":1647184655},{"type":"run_routes","entity":"1","entity_type":"minor","id":28,"created_at":1647184662,"routes":[{"train":"2-0","connections":[["F13","E12"]],"hexes":["E12","F13"],"revenue":50,"revenue_str":"E12-F13","subsidy":0,"nodes":["F13-0","E12-0"]}]},{"type":"pass","entity":"1","entity_type":"minor","id":29,"created_at":1647184669},{"hex":"D19","tile":"L32-0","type":"lay_tile","entity":"2","rotation":0,"entity_type":"minor","id":30,"user":10497,"created_at":1647184678,"skip":true},{"skip":true,"type":"undo","entity":"2","entity_type":"minor","id":31,"user":10497,"created_at":1647184692},{"hex":"D19","tile":"L32-0","type":"lay_tile","entity":"2","rotation":1,"entity_type":"minor","id":32,"user":10497,"created_at":1647184697,"skip":true},{"skip":true,"type":"undo","entity":"2","entity_type":"minor","id":33,"user":10497,"created_at":1647184701},{"type":"lay_tile","entity":"2","entity_type":"minor","id":34,"created_at":1647184715,"hex":"D19","tile":"L32-0","rotation":4},{"type":"undo","entity":"2","entity_type":"minor","id":35,"created_at":1683764194},{"type":"lay_tile","entity":"2","entity_type":"minor","id":36,"created_at":1683764197,"hex":"D19","tile":"L32-0","rotation":2},{"type":"pass","entity":"2","entity_type":"minor","id":37,"created_at":1683764204},{"type":"pass","entity":"2","entity_type":"minor","id":38,"created_at":1683764205},{"type":"pass","entity":"2","entity_type":"minor","id":39,"created_at":1683764206},{"type":"pass","entity":"3","entity_type":"minor","id":40,"created_at":1683764206},{"type":"pass","entity":"3","entity_type":"minor","id":41,"created_at":1683764207},{"type":"pass","entity":"3","entity_type":"minor","id":42,"created_at":1683764208},{"type":"pass","entity":"4","entity_type":"minor","id":43,"created_at":1683764210},{"type":"pass","entity":"4","entity_type":"minor","id":44,"created_at":1683764210},{"type":"pass","entity":"4","entity_type":"minor","id":45,"created_at":1683764211},{"type":"pass","entity":"5","entity_type":"minor","id":46,"created_at":1683764211},{"type":"pass","entity":"5","entity_type":"minor","id":47,"created_at":1683764212},{"type":"pass","entity":"5","entity_type":"minor","id":48,"created_at":1683764212},{"type":"pass","entity":"6","entity_type":"minor","id":49,"created_at":1683764213},{"type":"pass","entity":"6","entity_type":"minor","id":50,"created_at":1683764214},{"type":"pass","entity":"6","entity_type":"minor","id":51,"created_at":1683764214},{"type":"pass","entity":"7","entity_type":"minor","id":52,"created_at":1683764215},{"type":"pass","entity":"7","entity_type":"minor","id":53,"created_at":1683764215},{"type":"pass","entity":"7","entity_type":"minor","id":54,"created_at":1683764216},{"type":"lay_tile","entity":"9","entity_type":"minor","id":55,"created_at":1683764220,"hex":"I14","tile":"L32-1","rotation":1}],"id":"hs_tfagolvf_76622","description":"Cloned from game 76622","user":{"id":0,"name":"You"},"players":[{"id":1355,"name":"hubbs"},{"id":10497,"name":"mnfuller"},{"id":1423,"name":"Breich"},{"id":1443,"name":"vexhawk"},{"id":3510,"name":"Harry"}],"max_players":5,"title":"18Mag","settings":{"seed":1382898850,"is_async":true,"unlisted":true,"auto_routing":true,"player_order":null,"optional_rules":[]},"user_settings":null,"turn":1,"round":"Operating Round","acting":[1443],"result":{},"loaded":true,"created_at":"2023-05-10","updated_at":1683764220,"mode":"hotseat","manually_ended":null} \ No newline at end of file diff --git a/spec/fixtures/18NY/108746.json b/public/fixtures/18NY/108746.json similarity index 100% rename from spec/fixtures/18NY/108746.json rename to public/fixtures/18NY/108746.json diff --git a/spec/fixtures/18NY/110841.json b/public/fixtures/18NY/110841.json similarity index 100% rename from spec/fixtures/18NY/110841.json rename to public/fixtures/18NY/110841.json diff --git a/spec/fixtures/18NewEngland/73885.json b/public/fixtures/18NewEngland/73885.json similarity index 100% rename from spec/fixtures/18NewEngland/73885.json rename to public/fixtures/18NewEngland/73885.json diff --git a/spec/fixtures/18NewEngland2/72500.json b/public/fixtures/18NewEngland2/72500.json similarity index 100% rename from spec/fixtures/18NewEngland2/72500.json rename to public/fixtures/18NewEngland2/72500.json diff --git a/spec/fixtures/18TN/7818.json b/public/fixtures/18TN/7818.json similarity index 100% rename from spec/fixtures/18TN/7818.json rename to public/fixtures/18TN/7818.json diff --git a/spec/fixtures/18Texas/65394.json b/public/fixtures/18Texas/65394.json similarity index 100% rename from spec/fixtures/18Texas/65394.json rename to public/fixtures/18Texas/65394.json diff --git a/spec/fixtures/18Texas/hs_hqrmcntr_1641188459.json b/public/fixtures/18Texas/hs_hqrmcntr_1641188459.json similarity index 100% rename from spec/fixtures/18Texas/hs_hqrmcntr_1641188459.json rename to public/fixtures/18Texas/hs_hqrmcntr_1641188459.json diff --git a/spec/fixtures/18USA/109372.json b/public/fixtures/18USA/109372.json similarity index 100% rename from spec/fixtures/18USA/109372.json rename to public/fixtures/18USA/109372.json diff --git a/spec/fixtures/18USA/110327.json b/public/fixtures/18USA/110327.json similarity index 100% rename from spec/fixtures/18USA/110327.json rename to public/fixtures/18USA/110327.json diff --git a/spec/fixtures/18VA/49936.json b/public/fixtures/18VA/49936.json similarity index 100% rename from spec/fixtures/18VA/49936.json rename to public/fixtures/18VA/49936.json diff --git a/spec/fixtures/18VA/README.md b/public/fixtures/18VA/README.md similarity index 100% rename from spec/fixtures/18VA/README.md rename to public/fixtures/18VA/README.md diff --git a/spec/fixtures/18VA/hotseat001.json b/public/fixtures/18VA/hotseat001.json similarity index 100% rename from spec/fixtures/18VA/hotseat001.json rename to public/fixtures/18VA/hotseat001.json diff --git a/spec/fixtures/18ZOO/113805.json b/public/fixtures/18ZOO/113805.json similarity index 100% rename from spec/fixtures/18ZOO/113805.json rename to public/fixtures/18ZOO/113805.json diff --git a/spec/fixtures/18ZOO/17.json b/public/fixtures/18ZOO/17.json similarity index 100% rename from spec/fixtures/18ZOO/17.json rename to public/fixtures/18ZOO/17.json diff --git a/spec/fixtures/18ZOO/18.json b/public/fixtures/18ZOO/18.json similarity index 100% rename from spec/fixtures/18ZOO/18.json rename to public/fixtures/18ZOO/18.json diff --git a/spec/fixtures/18ZOO/2.json b/public/fixtures/18ZOO/2.json similarity index 100% rename from spec/fixtures/18ZOO/2.json rename to public/fixtures/18ZOO/2.json diff --git a/spec/fixtures/18ZOO/4.json b/public/fixtures/18ZOO/4.json similarity index 100% rename from spec/fixtures/18ZOO/4.json rename to public/fixtures/18ZOO/4.json diff --git a/spec/fixtures/18ZOO/47334.json b/public/fixtures/18ZOO/47334.json similarity index 100% rename from spec/fixtures/18ZOO/47334.json rename to public/fixtures/18ZOO/47334.json diff --git a/spec/fixtures/18ZOO/5.json b/public/fixtures/18ZOO/5.json similarity index 100% rename from spec/fixtures/18ZOO/5.json rename to public/fixtures/18ZOO/5.json diff --git a/spec/fixtures/18ZOO/5774.json b/public/fixtures/18ZOO/5774.json similarity index 100% rename from spec/fixtures/18ZOO/5774.json rename to public/fixtures/18ZOO/5774.json diff --git a/spec/fixtures/18ZOO/6535.json b/public/fixtures/18ZOO/6535.json similarity index 100% rename from spec/fixtures/18ZOO/6535.json rename to public/fixtures/18ZOO/6535.json diff --git a/spec/fixtures/18ZOO/81965.json b/public/fixtures/18ZOO/81965.json similarity index 100% rename from spec/fixtures/18ZOO/81965.json rename to public/fixtures/18ZOO/81965.json diff --git a/spec/fixtures/18ZOO/README.md b/public/fixtures/18ZOO/README.md similarity index 100% rename from spec/fixtures/18ZOO/README.md rename to public/fixtures/18ZOO/README.md diff --git a/spec/fixtures/18ZOO/bankrupt.player_debt.json b/public/fixtures/18ZOO/bankrupt.player_debt.json similarity index 100% rename from spec/fixtures/18ZOO/bankrupt.player_debt.json rename to public/fixtures/18ZOO/bankrupt.player_debt.json diff --git a/spec/fixtures/18ZOO/dividend_as_president.json b/public/fixtures/18ZOO/dividend_as_president.json similarity index 100% rename from spec/fixtures/18ZOO/dividend_as_president.json rename to public/fixtures/18ZOO/dividend_as_president.json diff --git a/spec/fixtures/18ZOO/ebuy_sell_multiple_shares.json b/public/fixtures/18ZOO/ebuy_sell_multiple_shares.json similarity index 100% rename from spec/fixtures/18ZOO/ebuy_sell_multiple_shares.json rename to public/fixtures/18ZOO/ebuy_sell_multiple_shares.json diff --git a/spec/fixtures/18ZOO/home_tile_mandatory.json b/public/fixtures/18ZOO/home_tile_mandatory.json similarity index 100% rename from spec/fixtures/18ZOO/home_tile_mandatory.json rename to public/fixtures/18ZOO/home_tile_mandatory.json diff --git a/spec/fixtures/18ZOO/or_power.a_squeeze.json b/public/fixtures/18ZOO/or_power.a_squeeze.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.a_squeeze.json rename to public/fixtures/18ZOO/or_power.a_squeeze.json diff --git a/spec/fixtures/18ZOO/or_power.a_tip_of_sugar.json b/public/fixtures/18ZOO/or_power.a_tip_of_sugar.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.a_tip_of_sugar.json rename to public/fixtures/18ZOO/or_power.a_tip_of_sugar.json diff --git a/spec/fixtures/18ZOO/or_power.ancient_maps.json b/public/fixtures/18ZOO/or_power.ancient_maps.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.ancient_maps.json rename to public/fixtures/18ZOO/or_power.ancient_maps.json diff --git a/spec/fixtures/18ZOO/or_power.hole.json b/public/fixtures/18ZOO/or_power.hole.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.hole.json rename to public/fixtures/18ZOO/or_power.hole.json diff --git a/spec/fixtures/18ZOO/or_power.hole.no_reuse.json b/public/fixtures/18ZOO/or_power.hole.no_reuse.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.hole.no_reuse.json rename to public/fixtures/18ZOO/or_power.hole.no_reuse.json diff --git a/spec/fixtures/18ZOO/or_power.moles.json b/public/fixtures/18ZOO/or_power.moles.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.moles.json rename to public/fixtures/18ZOO/or_power.moles.json diff --git a/spec/fixtures/18ZOO/or_power.on_a_diet.json b/public/fixtures/18ZOO/or_power.on_a_diet.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.on_a_diet.json rename to public/fixtures/18ZOO/or_power.on_a_diet.json diff --git a/spec/fixtures/18ZOO/or_power.patch.3s_long_run_anyway.json b/public/fixtures/18ZOO/or_power.patch.3s_long_run_anyway.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.patch.3s_long_run_anyway.json rename to public/fixtures/18ZOO/or_power.patch.3s_long_run_anyway.json diff --git a/spec/fixtures/18ZOO/or_power.patch.3s_survive_until_run.json b/public/fixtures/18ZOO/or_power.patch.3s_survive_until_run.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.patch.3s_survive_until_run.json rename to public/fixtures/18ZOO/or_power.patch.3s_survive_until_run.json diff --git a/spec/fixtures/18ZOO/or_power.patch.buy_train_twice.json b/public/fixtures/18ZOO/or_power.patch.buy_train_twice.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.patch.buy_train_twice.json rename to public/fixtures/18ZOO/or_power.patch.buy_train_twice.json diff --git a/spec/fixtures/18ZOO/or_power.patch.json b/public/fixtures/18ZOO/or_power.patch.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.patch.json rename to public/fixtures/18ZOO/or_power.patch.json diff --git a/spec/fixtures/18ZOO/or_power.patch.save_3s_long.json b/public/fixtures/18ZOO/or_power.patch.save_3s_long.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.patch.save_3s_long.json rename to public/fixtures/18ZOO/or_power.patch.save_3s_long.json diff --git a/spec/fixtures/18ZOO/or_power.patch.when_forced.json b/public/fixtures/18ZOO/or_power.patch.when_forced.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.patch.when_forced.json rename to public/fixtures/18ZOO/or_power.patch.when_forced.json diff --git a/spec/fixtures/18ZOO/or_power.patch.when_not_forced.json b/public/fixtures/18ZOO/or_power.patch.when_not_forced.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.patch.when_not_forced.json rename to public/fixtures/18ZOO/or_power.patch.when_not_forced.json diff --git a/spec/fixtures/18ZOO/or_power.patch.with_whatsup.json b/public/fixtures/18ZOO/or_power.patch.with_whatsup.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.patch.with_whatsup.json rename to public/fixtures/18ZOO/or_power.patch.with_whatsup.json diff --git a/spec/fixtures/18ZOO/or_power.rabbits.M_MM_to_green.json b/public/fixtures/18ZOO/or_power.rabbits.M_MM_to_green.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.rabbits.M_MM_to_green.json rename to public/fixtures/18ZOO/or_power.rabbits.M_MM_to_green.json diff --git a/spec/fixtures/18ZOO/or_power.rabbits.O_to_green.json b/public/fixtures/18ZOO/or_power.rabbits.O_to_green.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.rabbits.O_to_green.json rename to public/fixtures/18ZOO/or_power.rabbits.O_to_green.json diff --git a/spec/fixtures/18ZOO/or_power.rabbits.Y_to_brown.json b/public/fixtures/18ZOO/or_power.rabbits.Y_to_brown.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.rabbits.Y_to_brown.json rename to public/fixtures/18ZOO/or_power.rabbits.Y_to_brown.json diff --git a/spec/fixtures/18ZOO/or_power.rabbits.cannot_upgrade.json b/public/fixtures/18ZOO/or_power.rabbits.cannot_upgrade.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.rabbits.cannot_upgrade.json rename to public/fixtures/18ZOO/or_power.rabbits.cannot_upgrade.json diff --git a/spec/fixtures/18ZOO/or_power.rabbits.home_to_gray.json b/public/fixtures/18ZOO/or_power.rabbits.home_to_gray.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.rabbits.home_to_gray.json rename to public/fixtures/18ZOO/or_power.rabbits.home_to_gray.json diff --git a/spec/fixtures/18ZOO/or_power.shining_gold.json b/public/fixtures/18ZOO/or_power.shining_gold.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.shining_gold.json rename to public/fixtures/18ZOO/or_power.shining_gold.json diff --git a/spec/fixtures/18ZOO/or_power.that_s_mine.cannot_convert_if_already_tokened.json b/public/fixtures/18ZOO/or_power.that_s_mine.cannot_convert_if_already_tokened.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.that_s_mine.cannot_convert_if_already_tokened.json rename to public/fixtures/18ZOO/or_power.that_s_mine.cannot_convert_if_already_tokened.json diff --git a/spec/fixtures/18ZOO/or_power.that_s_mine.cannot_convert_if_no_money.json b/public/fixtures/18ZOO/or_power.that_s_mine.cannot_convert_if_no_money.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.that_s_mine.cannot_convert_if_no_money.json rename to public/fixtures/18ZOO/or_power.that_s_mine.cannot_convert_if_no_money.json diff --git a/spec/fixtures/18ZOO/or_power.that_s_mine.cannot_convert_if_no_token.json b/public/fixtures/18ZOO/or_power.that_s_mine.cannot_convert_if_no_token.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.that_s_mine.cannot_convert_if_no_token.json rename to public/fixtures/18ZOO/or_power.that_s_mine.cannot_convert_if_no_token.json diff --git a/spec/fixtures/18ZOO/or_power.that_s_mine.json b/public/fixtures/18ZOO/or_power.that_s_mine.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.that_s_mine.json rename to public/fixtures/18ZOO/or_power.that_s_mine.json diff --git a/spec/fixtures/18ZOO/or_power.two_barrels.json b/public/fixtures/18ZOO/or_power.two_barrels.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.two_barrels.json rename to public/fixtures/18ZOO/or_power.two_barrels.json diff --git a/spec/fixtures/18ZOO/or_power.wheat.json b/public/fixtures/18ZOO/or_power.wheat.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.wheat.json rename to public/fixtures/18ZOO/or_power.wheat.json diff --git a/spec/fixtures/18ZOO/or_power.wings.json b/public/fixtures/18ZOO/or_power.wings.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.wings.json rename to public/fixtures/18ZOO/or_power.wings.json diff --git a/spec/fixtures/18ZOO/or_power.work_in_progress.can_be_ignored_if_not_unique.json b/public/fixtures/18ZOO/or_power.work_in_progress.can_be_ignored_if_not_unique.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.work_in_progress.can_be_ignored_if_not_unique.json rename to public/fixtures/18ZOO/or_power.work_in_progress.can_be_ignored_if_not_unique.json diff --git a/spec/fixtures/18ZOO/or_power.work_in_progress.cannot_ignore_with_wings.json b/public/fixtures/18ZOO/or_power.work_in_progress.cannot_ignore_with_wings.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.work_in_progress.cannot_ignore_with_wings.json rename to public/fixtures/18ZOO/or_power.work_in_progress.cannot_ignore_with_wings.json diff --git a/spec/fixtures/18ZOO/or_power.work_in_progress.json b/public/fixtures/18ZOO/or_power.work_in_progress.json similarity index 100% rename from spec/fixtures/18ZOO/or_power.work_in_progress.json rename to public/fixtures/18ZOO/or_power.work_in_progress.json diff --git a/spec/fixtures/18ZOO/remove_3s_long_by_current_player.json b/public/fixtures/18ZOO/remove_3s_long_by_current_player.json similarity index 100% rename from spec/fixtures/18ZOO/remove_3s_long_by_current_player.json rename to public/fixtures/18ZOO/remove_3s_long_by_current_player.json diff --git a/spec/fixtures/18ZOO/remove_4s_by_current_player.json b/public/fixtures/18ZOO/remove_4s_by_current_player.json similarity index 100% rename from spec/fixtures/18ZOO/remove_4s_by_current_player.json rename to public/fixtures/18ZOO/remove_4s_by_current_player.json diff --git a/spec/fixtures/18ZOO/sell_ticket_zoo_in_any_phase.json b/public/fixtures/18ZOO/sell_ticket_zoo_in_any_phase.json similarity index 100% rename from spec/fixtures/18ZOO/sell_ticket_zoo_in_any_phase.json rename to public/fixtures/18ZOO/sell_ticket_zoo_in_any_phase.json diff --git a/spec/fixtures/18ZOO/sell_ticket_zoo_in_any_step.json b/public/fixtures/18ZOO/sell_ticket_zoo_in_any_step.json similarity index 100% rename from spec/fixtures/18ZOO/sell_ticket_zoo_in_any_step.json rename to public/fixtures/18ZOO/sell_ticket_zoo_in_any_step.json diff --git a/spec/fixtures/18ZOO/sr_power.days_off.json b/public/fixtures/18ZOO/sr_power.days_off.json similarity index 100% rename from spec/fixtures/18ZOO/sr_power.days_off.json rename to public/fixtures/18ZOO/sr_power.days_off.json diff --git a/spec/fixtures/18ZOO/sr_power.it_s_all_greek_to_me.json b/public/fixtures/18ZOO/sr_power.it_s_all_greek_to_me.json similarity index 100% rename from spec/fixtures/18ZOO/sr_power.it_s_all_greek_to_me.json rename to public/fixtures/18ZOO/sr_power.it_s_all_greek_to_me.json diff --git a/spec/fixtures/18ZOO/sr_power.leprechaun_pot_of_gold.json b/public/fixtures/18ZOO/sr_power.leprechaun_pot_of_gold.json similarity index 100% rename from spec/fixtures/18ZOO/sr_power.leprechaun_pot_of_gold.json rename to public/fixtures/18ZOO/sr_power.leprechaun_pot_of_gold.json diff --git a/spec/fixtures/18ZOO/sr_power.midas.json b/public/fixtures/18ZOO/sr_power.midas.json similarity index 100% rename from spec/fixtures/18ZOO/sr_power.midas.json rename to public/fixtures/18ZOO/sr_power.midas.json diff --git a/spec/fixtures/18ZOO/sr_power.too_much_responsibility.json b/public/fixtures/18ZOO/sr_power.too_much_responsibility.json similarity index 100% rename from spec/fixtures/18ZOO/sr_power.too_much_responsibility.json rename to public/fixtures/18ZOO/sr_power.too_much_responsibility.json diff --git a/spec/fixtures/18ZOO/sr_power.whatsup.json b/public/fixtures/18ZOO/sr_power.whatsup.json similarity index 100% rename from spec/fixtures/18ZOO/sr_power.whatsup.json rename to public/fixtures/18ZOO/sr_power.whatsup.json diff --git a/spec/fixtures/RollingStock/108770.json b/public/fixtures/RollingStock/108770.json similarity index 100% rename from spec/fixtures/RollingStock/108770.json rename to public/fixtures/RollingStock/108770.json diff --git a/spec/fixtures/RollingStock/83092.json b/public/fixtures/RollingStock/83092.json similarity index 100% rename from spec/fixtures/RollingStock/83092.json rename to public/fixtures/RollingStock/83092.json diff --git a/spec/fixtures b/spec/fixtures new file mode 120000 index 0000000000..d1a7670985 --- /dev/null +++ b/spec/fixtures @@ -0,0 +1 @@ +../public/fixtures \ No newline at end of file diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 1f7dd68893..eacc2c3d28 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -13,4 +13,4 @@ end end -FIXTURES_DIR = File.join(File.dirname(__FILE__), 'fixtures') +FIXTURES_DIR = File.join(File.dirname(__FILE__), '..', 'public', 'fixtures')