diff --git a/TILES.md b/TILES.md index 601640a152..04392fa71f 100644 --- a/TILES.md +++ b/TILES.md @@ -76,6 +76,9 @@ game config/code: - **upgrade** - **cost** - *required* - integer - **terrain** - `mountain`/`water` - multiple terrain types separated by `|` + - **loc** - (currently only supported for `:pointy` layouts) corner to + render the upgrade in, `5.5` to be where edges `5` and `0` meet, `0.5` for + edges `0` and `1`, and so on - **border** - **edge** - *required* - integer - which edge to modify - **type** - `mountain`/`water`/`impassable` - Border type. If not' @@ -91,6 +94,9 @@ game config/code: upgrade is placed on this hex - **blocks_lay** - indicates this tile cannot be laid normally but can only be laid by special ability, such as a private company's ability. + - **loc** - (currently only supported for `:pointy` layouts) corner to + render the upgrade in, `5.5` to be where edges `5` and `0` meet, `0.5` for + edges `0` and `1`, and so on - **frame** - **color** - *required* - the color of the frame - **color2** - A second color to display on the frame 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/create_game.rb b/assets/app/view/create_game.rb index 70ab9342c8..4425304b43 100644 --- a/assets/app/view/create_game.rb +++ b/assets/app/view/create_game.rb @@ -30,13 +30,19 @@ class CreateGame < Form needs :min_players, default: nil, store: true needs :max_players, default: nil, store: true + def render_create_button(check_options: true) + error = check_options && + selected_game_or_variant.check_options(@optional_rules, @min_players, @max_players)&.[](:error) + (render_button('Create', { style: { margin: '0.5rem 1rem 1rem 0' }, attrs: { disabled: !!error } }) { submit }) + end + def render_content @label_style = { display: 'block' } inputs = [mode_selector] if @mode == :json - inputs << (render_button('Create', { style: { margin: '0.5rem 1rem 1rem 0' } }) { submit }) + inputs << render_create_button(check_options: false) inputs << render_upload_button inputs << render_input( '', @@ -58,7 +64,7 @@ def render_content else if selected_game_or_variant update_player_range(selected_game_or_variant) - inputs << (render_button('Create', { style: { margin: '0.5rem 1rem 1rem 0' } }) { submit }) + inputs << render_create_button inputs << h(:h2, selected_game_or_variant.meta.full_title) inputs << render_inputs @@ -274,23 +280,34 @@ def render_optional }, } - info = selected_game_or_variant.respond_to?(:check_options) && - selected_game_or_variant.check_options(@optional_rules, @min_players, @max_players) + children = [ + h(:h4, 'Game Variants / Optional Rules'), + h(:ul, ul_props, [*game_variants, *optional_rules]), + ] - if info - h(:div, [ - h(:h4, 'Game Variants / Optional Rules'), - h(:ul, ul_props, [*game_variants, *optional_rules]), - h(:h4, 'Option Info/Errors'), - h(:div, info), - h(:br), - ]) - else - h(:div, [ - h(:h4, 'Game Variants / Optional Rules'), - h(:ul, ul_props, [*game_variants, *optional_rules]), - ]) + checked_options = selected_game_or_variant.check_options(@optional_rules, @min_players, @max_players) + if checked_options + if (info = checked_options[:info]) + children.concat( + [ + h(:h4, 'Option Info'), + h(:div, info), + h(:br), + ] + ) + end + if (error = checked_options[:error]) + children.concat( + [ + h(:h4, 'Option Errors'), + h(:div, error), + h(:br), + ] + ) + end end + + h(:div, children) end def render_upload_button @@ -378,18 +395,12 @@ def submit game_params[:seed] = game_params[:seed].to_i game_params[:seed] = nil if (game_params[:seed]).zero? - if @mode == :multi - begin - return create_game(game_params) - rescue Engine::OptionError => e - return store(:flash_opts, e.message) - end - end + return create_game(game_params) if @mode == :multi players = game_params - .select { |k, _| k.start_with?('player_') } - .values - .map { |name| name.gsub(/\s+/, ' ').strip } + .select { |k, _| k.start_with?('player_') } + .values + .map { |name| name.gsub(/\s+/, ' ').strip } return store(:flash_opts, 'Cannot have duplicate player names') if players.uniq.size != players.size @@ -408,6 +419,13 @@ def submit game_data[:settings][:seed] = game_params[:seed] if game_params[:seed] end + checked_options = Engine.meta_by_title(game_data[:title]) + .check_options(game_data[:settings][:optional_rules], + game_data[:min_players], game_data[:max_players]) + if (options_error_msg = checked_options&.[](:error)) + return store(:flash_opts, "game_data Optional Rules Error: #{options_error_msg}") + end + create_hotseat( id: Time.now.to_i, players: players.map.with_index { |name, i| { name: name, id: i } }, diff --git a/assets/app/view/form.rb b/assets/app/view/form.rb index e1221eb910..9eaba85da5 100644 --- a/assets/app/view/form.rb +++ b/assets/app/view/form.rb @@ -77,9 +77,10 @@ def render_input(label, id:, placeholder: '', el: 'input', type: 'text', attrs: ) end - def render_button(text, style: {}, &block) + def render_button(text, style: {}, attrs: {}, &block) props = { attrs: { + **attrs, type: :button, }, style: { diff --git a/assets/app/view/game/acquire_companies.rb b/assets/app/view/game/acquire_companies.rb index be75148a70..ade24abfa5 100644 --- a/assets/app/view/game/acquire_companies.rb +++ b/assets/app/view/game/acquire_companies.rb @@ -67,19 +67,20 @@ def render_companies end def render_acquire_input + selected_company = @selected_company acquire_click = lambda do acquire = lambda do process_action(Engine::Action::AcquireCompany.new( @corporation, - company: @selected_company, + company: selected_company, )) store(:selected_company, nil, skip: true) end - if @selected_company.owner == @corporation.owner || !@selected_company.owner + if selected_company.owner == @corporation.owner || !selected_company.owner acquire.call else - check_consent(@selected_company.owner, acquire) + check_consent(@corporation, selected_company.owner, acquire) end end diff --git a/assets/app/view/game/actionable.rb b/assets/app/view/game/actionable.rb index 5b876c2087..7b6b1e92e0 100644 --- a/assets/app/view/game/actionable.rb +++ b/assets/app/view/game/actionable.rb @@ -35,11 +35,20 @@ def participant? @participant = (@game.players.map(&:id) + [@game_data['user']['id']]).include?(@user&.dig('id')) end - def check_consent(player, click) + def check_consent(entity, consenters, click) + consenters = Array(consenters).uniq + names = consenters.map(&:name).sort.join(', ') + consenters_str = consenters.size > 1 ? "one of #{names}" : names + + log_and_click = lambda do + process_action(Engine::Action::Log.new(entity.player, message: "• confirmed receiving consent from #{consenters_str}")) + click.call + end + opts = { color: :yellow, - click: click, - message: "Click confirm if #{player.name} has already consented to this action.", + click: log_and_click, + message: "Click confirm if #{consenters_str} has already consented to this action.", } store(:confirm_opts, opts, skip: false) end diff --git a/assets/app/view/game/alternate_corporations.rb b/assets/app/view/game/alternate_corporations.rb index f820d6051e..78cb662b9d 100644 --- a/assets/app/view/game/alternate_corporations.rb +++ b/assets/app/view/game/alternate_corporations.rb @@ -510,6 +510,67 @@ def render_rs_income h(:div, { style: { gridColumnStart: 2 } }, [movement_table]), ]) end + + # This is used by 1858 which has private railway companies that act a bit + # like minor railways, laying track in operating rounds. This rendering + # code is a simplified version of Engine::View::Game::Company.render. + def render_private_railway + minor = @corporation + + select_minor = lambda do + if @selectable + selected_corporation = selected? ? nil : minor + store(:selected_corporation, selected_corporation) + end + end + + header_style = { + background: minor.color, + color: minor.text_color, + border: '1px solid', + borderRadius: '5px', + marginBottom: '0.5rem', + fontSize: '90%', + } + description_style = { + margin: '0.5rem 0', + fontSize: '80%', + textAlign: 'left', + fontWeight: 'normal', + } + value_style = { + float: 'left', + } + revenue_style = { + float: 'right', + } + props = { + style: { + cursor: 'pointer', + boxSizing: 'border-box', + padding: '0.5rem', + margin: '0.5rem 5px 0 0', + textAlign: 'center', + fontWeight: 'bold', + }, + on: { click: select_minor }, + } + if selected? + props[:style][:backgroundColor] = 'lightblue' + props[:style][:color] = 'black' + props[:style][:border] = '1px solid' + end + + children = [ + h(:div, { style: header_style }, @game.company_header(minor)), + h(:div, minor.full_name), + h(:div, { style: description_style }, @game.private_description(minor)), + h(:div, { style: value_style }, "Value: #{@game.private_value(minor)}"), + h(:div, { style: revenue_style }, "Revenue: #{@game.private_revenue(minor)}"), + ] + + h('div.company.card', props, children) + end end end end diff --git a/assets/app/view/game/button/buy_share.rb b/assets/app/view/game/button/buy_share.rb index bfcfef7689..e079aeff71 100644 --- a/assets/app/view/game/button/buy_share.rb +++ b/assets/app/view/game/button/buy_share.rb @@ -37,14 +37,20 @@ def render text += " (#{@game.format_currency(modified_price)})" if modified_price text += " for #{@purchase_for.name}" if @purchase_for - h(:button, { - on: { - click: lambda { - buy_shares(@entity, bundle, share_price: modified_price, swap: @swap_share, - purchase_for: @purchase_for, borrow_from: @borrow_from) - }, - }, - }, text) + process_buy = lambda do + do_buy = lambda do + buy_shares(@entity, bundle, share_price: modified_price, swap: @swap_share, + purchase_for: @purchase_for, borrow_from: @borrow_from) + end + + if (consenter = @game.consenter_for_buy_shares(@entity, bundle)) + check_consent(@entity, consenter, do_buy) + else + do_buy.call + end + end + + h(:button, { on: { click: process_buy } }, text) end def buy_shares(entity, bundle, share_price: nil, swap: nil, purchase_for: nil, borrow_from: nil) diff --git a/assets/app/view/game/buy_company_from_other_player.rb b/assets/app/view/game/buy_company_from_other_player.rb index d3d3fa69d0..5e1b08e475 100644 --- a/assets/app/view/game/buy_company_from_other_player.rb +++ b/assets/app/view/game/buy_company_from_other_player.rb @@ -43,7 +43,7 @@ def render_company_buy(input, company) )) end - buy = -> { check_consent(company.owner, buy_company) } + buy = -> { check_consent(@game.current_entity, company.owner, buy_company) } owner_name = company.owner.nil? ? 'the market' : company.owner.name h(:button, { on: { click: buy } }, "Buy #{company.id} from #{owner_name}") diff --git a/assets/app/view/game/buy_trains.rb b/assets/app/view/game/buy_trains.rb index d4fb7de624..ad8fe62cb2 100644 --- a/assets/app/view/game/buy_trains.rb +++ b/assets/app/view/game/buy_trains.rb @@ -448,7 +448,7 @@ def other_trains(other_corp_trains, corporation) buy_train.call end else - check_consent(other_owner(other), buy_train) + check_consent(@corporation, other_owner(other), buy_train) end end diff --git a/assets/app/view/game/buy_value_input.rb b/assets/app/view/game/buy_value_input.rb index da6bdfedc1..b43c01e374 100644 --- a/assets/app/view/game/buy_value_input.rb +++ b/assets/app/view/game/buy_value_input.rb @@ -51,7 +51,7 @@ def render if @selected_entity.owner == @corporation.owner || !@selected_entity.owner buy.call else - check_consent(@selected_entity.owner, buy) + check_consent(@corporation, @selected_entity.owner, buy) end end diff --git a/assets/app/view/game/dividend.rb b/assets/app/view/game/dividend.rb index 5580747044..96eefa265b 100644 --- a/assets/app/view/game/dividend.rb +++ b/assets/app/view/game/dividend.rb @@ -37,24 +37,33 @@ def render corp_income = option[:corporation] + option[:divs_to_corporation] - new_share = entity.share_price - direction = - if new_share && option[:share_direction] + if (new_share_price = entity.share_price) && option[:share_direction] moves = Array(option[:share_times]).zip(Array(option[:share_direction])) - moves.map do |times, dir| - times.times { new_share = @game.stock_market.find_relative_share_price(new_share, dir) } + movement_str = + moves.map do |times, dir| + real_moves = 0 + times.times do + prev_price = new_share_price + new_share_price = @game.stock_market.find_relative_share_price(new_share_price, dir) + break if prev_price == new_share_price + + real_moves += 1 + end + next if real_moves.zero? + + "#{real_moves} #{dir}" + end.compact.join(', ') - @step.respond_to?(:movement_str) ? @step.movement_str(times, dir) : "#{times} #{dir}" - end.join(', ') + movement_str.empty? ? 'None' : movement_str else 'None' end if entity.loans.any? && !@game.can_pay_interest?(entity, corp_income) && @game.cannot_pay_interest_str text += " #{@game.cannot_pay_interest_str}" - elsif new_share&.acquisition? + elsif new_share_price&.acquisition? text += ' (Acquisition)' end diff --git a/assets/app/view/game/issue_shares.rb b/assets/app/view/game/issue_shares.rb index 2304b1b040..b7fbe1352c 100644 --- a/assets/app/view/game/issue_shares.rb +++ b/assets/app/view/game/issue_shares.rb @@ -46,7 +46,7 @@ def render_shares(description, shares, action) # confirm if redeeming from a different player if (bundle.owner != @game.bank) && (bundle.owner != @game.current_entity) && bundle.owner.player? - check_consent(bundle.owner, process_redeem) + check_consent(@entity, bundle.owner, process_redeem) else process_redeem.call end diff --git a/assets/app/view/game/part/base.rb b/assets/app/view/game/part/base.rb index 348de00173..456938dfd8 100644 --- a/assets/app/view/game/part/base.rb +++ b/assets/app/view/game/part/base.rb @@ -6,6 +6,7 @@ module Part class Base < Snabberb::Component needs :region_use needs :tile, default: nil + needs :loc, default: nil UPPER_LEFT = [0, 1, 2].freeze UPPER_RIGHT = [2, 3, 4].freeze @@ -152,9 +153,13 @@ def increment_weight_for_regions(regions, weight = 1) end def render_location - @render_location ||= preferred_render_locations.min_by.with_index do |t, i| - [combined_cost(t[:region_weights_in] || t[:region_weights]), i] - end + @render_location ||= + begin + locations = @loc ? preferred_render_locations_by_loc : preferred_render_locations + locations.min_by.with_index do |t, i| + [combined_cost(t[:region_weights_in] || t[:region_weights]), i] + end + end end # use this method to set instance vars that can be used in the other diff --git a/assets/app/view/game/part/blocker.rb b/assets/app/view/game/part/blocker.rb index 585d378317..e3c68c87d3 100644 --- a/assets/app/view/game/part/blocker.rb +++ b/assets/app/view/game/part/blocker.rb @@ -74,7 +74,7 @@ def preferred_render_locations end def load_from_tile - @blocker = @tile.blockers.first + @blocker = @tile.blockers.find { |b| !@tile.hidden_blockers.include?(b) } end def should_render? diff --git a/assets/app/view/game/part/icons.rb b/assets/app/view/game/part/icons.rb index 632e7534a2..99fc9ce7ea 100644 --- a/assets/app/view/game/part/icons.rb +++ b/assets/app/view/game/part/icons.rb @@ -24,8 +24,12 @@ def preferred_render_locations end end + def parts_for_loc + @icons + end + def load_from_tile - @icons = @tile.icons.reject(&:large) + @icons = @tile.icons.select { |i| !i.large && (i.loc == @loc) } @num_cities = @tile.cities.size end diff --git a/assets/app/view/game/part/small_item.rb b/assets/app/view/game/part/small_item.rb index 72c31c6fb1..437004a2aa 100644 --- a/assets/app/view/game/part/small_item.rb +++ b/assets/app/view/game/part/small_item.rb @@ -6,6 +6,33 @@ module View module Game module Part module SmallItem + def preferred_render_locations_by_loc + parts = parts_for_loc + + if layout == :pointy + case @loc.to_s + when '0.5' + parts.one? ? [PP_BOTTOM_LEFT_CORNER] : [PP_WIDE_BOTTOM_LEFT_CORNER] + when '1.5' + parts.one? ? [PP_UPPER_LEFT_CORNER] : [PP_WIDE_UPPER_LEFT_CORNER] + when '2.5' + parts.one? ? [PP_TOP_CORNER] : [PP_WIDE_TOP_CORNER] + when '3.5' + parts.one? ? [PP_UPPER_RIGHT_CORNER] : [PP_WIDE_UPPER_RIGHT_CORNER] + when '4.5' + parts.one? ? [PP_BOTTOM_RIGHT_CORNER] : [PP_WIDE_BOTTOM_RIGHT_CORNER] + when '5.5' + parts.one? ? [PP_BOTTOM_CORNER] : [PP_WIDE_BOTTOM_CORNER] + else + @loc = nil + preferred_render_locations + end + else + @loc = nil + preferred_render_locations + end + end + P_RIGHT_CORNER = { region_weights: Base::RIGHT_CORNER, x: 75, @@ -60,6 +87,24 @@ module SmallItem y: -75, }.freeze + PP_TOP_LEFT_CORNER = { + region_weights: Base::UPPER_LEFT_CORNER, + x: -65, + y: -37.5, + }.freeze + + PP_TOP_RIGHT_CORNER = { + region_weights: Base::UPPER_RIGHT_CORNER, + x: 65, + y: -37.5, + }.freeze + + PP_BOTTOM_RIGHT_CORNER = { + region_weights: Base::BOTTOM_LEFT_CORNER, + x: 65, + y: 37.5, + }.freeze + PP_BOTTOM_LEFT_CORNER = { region_weights: Base::BOTTOM_LEFT_CORNER, x: -65, @@ -132,6 +177,24 @@ module SmallItem y: 16, }.freeze + PP_WIDE_UPPER_RIGHT_CORNER = { + region_weights: Base::RIGHT_CORNER, + x: 52, + y: -25, + }.freeze + + PP_WIDE_UPPER_LEFT_CORNER = { + region_weights: Base::LEFT_CORNER, + x: -52, + y: -25, + }.freeze + + PP_WIDE_BOTTOM_RIGHT_CORNER = { + region_weights: [9, 10, 11, 16], + x: 52, + y: 25, + }.freeze + PP_WIDE_BOTTOM_LEFT_CORNER = { region_weights: [13, 14, 15, 19], x: -52, diff --git a/assets/app/view/game/part/upgrade.rb b/assets/app/view/game/part/upgrade.rb index 5bd196f263..ce662a9418 100644 --- a/assets/app/view/game/part/upgrade.rb +++ b/assets/app/view/game/part/upgrade.rb @@ -1,11 +1,14 @@ # frozen_string_literal: true require 'view/game/part/base' +require 'view/game/part/small_item' module View module Game module Part class Upgrade < Base + include SmallItem + needs :cost needs :terrains, default: [] needs :size, default: nil @@ -39,6 +42,11 @@ class Upgrade < Base x: -50, y: -45, }.freeze + PP_EDGE2 = { + region_weights: [0, 5, 6], + x: -35, + y: -55, + }.freeze P_RIGHT_CORNER = { region_weights: [11, 18], @@ -57,15 +65,31 @@ class Upgrade < Base TRIANGLE_PATH = '0,20 10,0 20,20' def preferred_render_locations - [ - P_CENTER, - P_TOP_RIGHT_CORNER, - P_EDGE2, - P_BOTTOM_LEFT_CORNER, - P_RIGHT_CORNER, - P_LEFT_CORNER, - P_BOTTOM_RIGHT_CORNER, - ] + if layout == :flat + [ + P_CENTER, + P_TOP_RIGHT_CORNER, + P_EDGE2, + P_BOTTOM_LEFT_CORNER, + P_RIGHT_CORNER, + P_LEFT_CORNER, + P_BOTTOM_RIGHT_CORNER, + ] + else + [ + P_CENTER, + PP_TOP_RIGHT_CORNER, + PP_EDGE2, + PP_BOTTOM_LEFT_CORNER, + PP_RIGHT_CORNER, + PP_LEFT_CORNER, + PP_BOTTOM_RIGHT_CORNER, + ] + end + end + + def parts_for_loc + @terrains end def render_part @@ -91,7 +115,9 @@ def render_part children = [cost] + terrain - h(:g, { attrs: { transform: "#{translate} #{rotation_for_layout}" } }, children) + h(:g, { attrs: { transform: rotation_for_layout } }, [ + h(:g, { attrs: { transform: translate } }, children), + ]) end def mountain(delta_x: 0, delta_y: 0) diff --git a/assets/app/view/game/part/upgrades.rb b/assets/app/view/game/part/upgrades.rb index 9e01c9f2a9..08b947a127 100644 --- a/assets/app/view/game/part/upgrades.rb +++ b/assets/app/view/game/part/upgrades.rb @@ -9,6 +9,7 @@ module Part class Upgrades < Snabberb::Component needs :tile needs :region_use + needs :loc, default: nil def render @tile.upgrades.map do |upgrade| @@ -19,6 +20,7 @@ def render terrains: upgrade.terrains, tile: @tile, size: upgrade.size, + loc: @loc, ) end end diff --git a/assets/app/view/game/round/merger.rb b/assets/app/view/game/round/merger.rb index cf5165ad8b..c9971bad5b 100644 --- a/assets/app/view/game/round/merger.rb +++ b/assets/app/view/game/round/merger.rb @@ -185,7 +185,7 @@ def render_merge(corporation) merge_corporation.owner == corporation.owner do_merge.call else - check_consent(merge_corporation.owner, do_merge) + check_consent(corporation, merge_corporation.owner, do_merge) end else diff --git a/assets/app/view/game/round/stock.rb b/assets/app/view/game/round/stock.rb index fd5741c3a7..453deec39b 100644 --- a/assets/app/view/game/round/stock.rb +++ b/assets/app/view/game/round/stock.rb @@ -98,13 +98,15 @@ def render_buttons end def render_merge_button + selected_corporation = @selected_corporation + merge = lambda do - if @selected_corporation + if selected_corporation do_merge = lambda do - to_merge = if @selected_corporation.corporation? - { corporation: @selected_corporation } + to_merge = if selected_corporation.corporation? + { corporation: selected_corporation } else - { minor: @selected_corporation } + { minor: selected_corporation } end process_action(Engine::Action::Merge.new( @mergeable_entity, @@ -112,10 +114,10 @@ def render_merge_button )) end - if @mergeable_entity.owner == @selected_corporation.owner + if @mergeable_entity.owner == selected_corporation.owner do_merge.call else - check_consent(@selected_corporation.owner, do_merge) + check_consent(@mergeable_entity, selected_corporation.owner, do_merge) end else store(:flash_opts, 'Select a corporation to merge with') diff --git a/assets/app/view/game/stock_market.rb b/assets/app/view/game/stock_market.rb index 1278ab9462..3ac26339d0 100644 --- a/assets/app/view/game/stock_market.rb +++ b/assets/app/view/game/stock_market.rb @@ -85,7 +85,7 @@ def box_height_1d end CROSSHATCH_TYPES = %i[par_overlap convert_range].freeze - BORDER_TYPES = %i[max_price].freeze + BORDER_TYPES = %i[max_price max_price_1].freeze def cell_style(box_style, types) normal_types = types.reject { |t| BORDER_TYPES.include?(t) } @@ -103,7 +103,7 @@ def cell_style(box_style, types) unless (types & BORDER_TYPES).empty? style[:borderRightWidth] = "#{BORDER * 4}px" - style[:borderRightColor] = COLOR_MAP[:purple] + style[:borderRightColor] = @game.class::STOCKMARKET_COLORS[(types & BORDER_TYPES).first] style[:width] = "#{WIDTH_TOTAL - (2 * PAD) - (2 * BORDER) - 3}px" end if color == :black diff --git a/assets/app/view/game/tile.rb b/assets/app/view/game/tile.rb index 34de225a11..8cceb5e562 100644 --- a/assets/app/view/game/tile.rb +++ b/assets/app/view/game/tile.rb @@ -26,6 +26,19 @@ def render_tile_part(part_class, **kwargs) h(part_class, region_use: @region_use, tile: @tile, **kwargs) end + def render_tile_parts_by_loc(part_class, parts: nil, **kwargs) + return [] if !parts || parts.empty? + + loc_to_parts = Hash.new { |h, k| h[k] = [] } + parts.each do |part| + loc_to_parts[part.loc] << part + end + + loc_to_parts.map do |loc, _parts| + render_tile_part(part_class, loc: loc, **kwargs) + end + end + # if false, then the revenue is rendered by Part::Cities or Part::Towns def should_render_revenue? revenue = @tile.revenue_to_render @@ -53,6 +66,11 @@ def render # modified before being passed on to the next one @region_use = Hash.new(0) + # array of parts to render + # - `render_tile_part` is called in the order they impact the region + # usage + # - the order of this array determines the order the parts are added to + # the DOM; parts at the end of the array render on top of ealier parts children = [] render_revenue = should_render_revenue? @@ -63,24 +81,34 @@ def render borders = render_tile_part(Part::Borders) if @tile.borders.any?(&:type) # OO tiles have different rules... - rendered_loc_name = render_tile_part(Part::LocationName) if @tile.location_name && @tile.cities.size > 1 - children << render_tile_part(Part::Revenue) if render_revenue - @tile.labels.each { |x| children << render_tile_part(Part::Label, label: x) } + if @tile.location_name && @tile.cities.size > 1 && !@tile.hex.hide_location_name + rendered_loc_name = render_tile_part(Part::LocationName) + end + revenue = render_tile_part(Part::Revenue) if render_revenue + @tile.labels.each { |l| children << render_tile_part(Part::Label, label: l) } - children << render_tile_part(Part::Upgrades) unless @tile.upgrades.empty? + render_tile_parts_by_loc(Part::Upgrades, parts: @tile.upgrades).each { |p| children << p } children << render_tile_part(Part::Blocker) - rendered_loc_name = render_tile_part(Part::LocationName) if @tile.location_name && (@tile.cities.size <= 1) - @tile.reservations.each { |x| children << render_tile_part(Part::Reservation, reservation: x) } + + if @tile.location_name && (@tile.cities.size <= 1) && !@tile.hex.hide_location_name + rendered_loc_name = render_tile_part(Part::LocationName) + end + @tile.reservations.each { |r| children << render_tile_part(Part::Reservation, reservation: r) } + large, normal = @tile.icons.partition(&:large) - children << render_tile_part(Part::Icons) unless normal.empty? + render_tile_parts_by_loc(Part::Icons, parts: normal).each { |i| children << i } children << render_tile_part(Part::LargeIcons) unless large.empty? children << render_tile_part(Part::FutureLabel) if @tile.future_label children << render_tile_part(Part::Assignments) unless @tile.hex&.assignments&.empty? - # borders should always be the top layer + + # these parts should always be on the top layer + children << revenue if revenue children << borders if borders children << render_tile_part(Part::Partitions) unless @tile.partitions.empty? + # location name and coordinates on top of other "top" layer since they + # can be hidden children << rendered_loc_name if rendered_loc_name && setting_for(:show_location_names, @game) children << render_coords if @show_coords diff --git a/assets/app/view/game/tile_confirmation.rb b/assets/app/view/game/tile_confirmation.rb index 3d951a572a..aa534701e8 100644 --- a/assets/app/view/game/tile_confirmation.rb +++ b/assets/app/view/game/tile_confirmation.rb @@ -58,24 +58,35 @@ def render end def confirm_click - # If there is a "blocks_hexes_consent" ability on this hex, get consent - (@game.companies + @game.minors + @game.corporations).each do |company| + entity = @tile_selector.entity + tile = @tile_selector.tile + hex = @tile_selector.hex + + lay_tile_lambda = -> { lay_tile(entity, tile, hex) } + + # If there are 1+ "blocks_hexes_consent" abilities on this hex, get + # consent from one of the players + blocking_players = (@game.companies + @game.minors + @game.corporations).each_with_object([]) do |company, players| next if company.closed? next unless (ability = @game.abilities(company, :blocks_hexes_consent)) - next unless @game.hex_blocked_by_ability?(@tile_selector.entity, ability, @tile_selector.hex) + next unless @game.hex_blocked_by_ability?(entity, ability, hex, tile) - return -> { check_consent(company.owner, -> { lay_tile }) } + players << company.owner end - -> { lay_tile } + if blocking_players.empty? + lay_tile_lambda + else + -> { check_consent(entity, blocking_players, lay_tile_lambda) } + end end - def lay_tile + def lay_tile(entity, tile, hex) action = Engine::Action::LayTile.new( - @tile_selector.entity, - tile: @tile_selector.tile, - hex: @tile_selector.hex, - rotation: @tile_selector.tile.rotation, + entity, + tile: tile, + hex: hex, + rotation: tile.rotation, ) store(:tile_selector, nil, skip: true) process_action(action) 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..33d455c350 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].each 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/assets/app/view/welcome.rb b/assets/app/view/welcome.rb index 85e756cf14..a68ea0464b 100644 --- a/assets/app/view/welcome.rb +++ b/assets/app/view/welcome.rb @@ -17,10 +17,7 @@ def render def render_notification message = <<~MESSAGE -

1880 is now in Beta.

-

1850 is now in Alpha.

-

1822PNW is now in Beta. It has been upgraded to the latest ruleset.

-

Rolling Stock, Rolling Stock Stars, 18GB, 18NY and 18USA are now in production.

+

18Rhl-Rhineland is now on Kickstarter.

Learn how to get notifications by email, Slack, Discord, and Telegram.

Please submit problem reports and make suggestions for improvements on GitHub. Join the diff --git a/lib/engine/ability/README.md b/lib/engine/ability/README.md index 0a0e8166a6..50d1e113f1 100644 --- a/lib/engine/ability/README.md +++ b/lib/engine/ability/README.md @@ -37,7 +37,10 @@ These attributes may be set for all ability types - `track`, `track_and_token`: track-laying step; if normal track lays are used up, but there is still a `Track` ability, then the active step will not pass on to the next step automatically + - `special_track`: `SpecialTrack` step when it blocks for a private company + that gets multiple lays - `token`: token-placing step + - `route`: running routes step - `sold`: when the company is bought from a player by a corporation - `bought_train`: when the owning corporation has bought a train; generally used with `close` abilities @@ -63,7 +66,13 @@ Designate a specific corporation to be the beneficiary of the ability, for example Steamboat Company in 1846. When a company with this ability is sold to a corporation, the company is -automatically assigned to the new owning corporation. With this configuration, +automatically assigned to the new owning corporation. + +- `count`: The number of times the ability may be used +- `closed_when_used_up`: This ability has a count that is decreased each time it is used. If this attribute is true the private is closed when count reaches zero, if false the private +remains open but the discount can no longer be used. Default false. + +With this configuration, the automatic assignment will happen and the company cannot be further reassigned: @@ -204,6 +213,11 @@ Lay a tile and place a station token without connectivity teleport destination. - `cost`: Cost to use the teleport ability. - `free_tile_lay`: If true, the tile is laid with 0 cost. Default false. +- `from_owner`: If true, this ability uses a token from the owning corporation's + charter; if false, an additional token is created. Default true. +- `extra_action`: If true, this ability may be used in addition to the turn's + normal token placement step. Default false. + ## tile_discount @@ -246,13 +260,19 @@ remains open but the discount can no longer be used. Default false. controlling corporation's station tokens are reachable; if not a game error is triggered. Default false. - `must_lay_together`: If true and `count` is greater than 1, all the tile lays - must happen at the same time. Default false. + must happen at the same time. If this is `true`, you might want `when` to + include `special_track`. Default false. - `must_lay_all`: If true and `count` is greater than 1 and `must_lay_together` is true, all the tile lays must be used; if false, then some tile lays may be forfeited. Default false. - `consume_tile_lay`: If true, using this private counts as a corporations tile lay and must follow lay/upgrade rules. Upgrade's also count towards the corporations 'upgrade' lays. Default false. +- `lay_count` and `upgrade_count` - Use as an alternative to + `count`. `lay_count` is the number of yellow tile lays, and `upgrade_count` is + the number of green or higher tile upgrades. When these are set, the ability + cannot be used for both new tile lays and upgrades. With these set, you need + to make sure the `ability.use!` call includes an `upgrade` kwarg. ## train_buy diff --git a/lib/engine/ability/base.rb b/lib/engine/ability/base.rb index a025a87319..4b111ff965 100644 --- a/lib/engine/ability/base.rb +++ b/lib/engine/ability/base.rb @@ -37,7 +37,7 @@ def used? @used end - def use! + def use!(**_kwargs) @used = true @count_this_or += 1 if @count_per_or diff --git a/lib/engine/ability/blocks_hexes.rb b/lib/engine/ability/blocks_hexes.rb index d98b4d6a11..24346a2402 100644 --- a/lib/engine/ability/blocks_hexes.rb +++ b/lib/engine/ability/blocks_hexes.rb @@ -7,8 +7,13 @@ module Ability class BlocksHexes < Base attr_reader :hexes - def setup(hexes:) + def setup(hexes:, hidden: false) @hexes = hexes + @hidden = hidden + end + + def hidden? + @hidden end end end diff --git a/lib/engine/ability/blocks_hexes_consent.rb b/lib/engine/ability/blocks_hexes_consent.rb index 5b2518242b..d7e1f27c2c 100644 --- a/lib/engine/ability/blocks_hexes_consent.rb +++ b/lib/engine/ability/blocks_hexes_consent.rb @@ -7,8 +7,13 @@ module Ability class BlocksHexesConsent < Base attr_reader :hexes - def setup(hexes:) + def setup(hexes:, hidden: false) @hexes = hexes + @hidden = hidden + end + + def hidden? + @hidden end end end diff --git a/lib/engine/ability/reservation.rb b/lib/engine/ability/reservation.rb index 514e4926eb..5fb3b51fc6 100644 --- a/lib/engine/ability/reservation.rb +++ b/lib/engine/ability/reservation.rb @@ -16,7 +16,7 @@ def setup(hex:, city: nil, slot: nil) end def teardown - tile.cities[@city].reservations.delete(owner) if tile + tile.cities[@city].remove_reservation!(owner) if tile end end end diff --git a/lib/engine/ability/teleport.rb b/lib/engine/ability/teleport.rb index 36193fa823..43711af3b2 100644 --- a/lib/engine/ability/teleport.rb +++ b/lib/engine/ability/teleport.rb @@ -5,16 +5,18 @@ module Engine module Ability class Teleport < Base - attr_reader :tiles, :cost, :free_tile_lay + attr_reader :tiles, :cost, :free_tile_lay, :from_owner, :extra_action attr_accessor :hexes - def setup(hexes:, tiles:, cost: nil, free_tile_lay: false) + def setup(hexes:, tiles:, cost: nil, free_tile_lay: false, from_owner: true, extra_action: nil) @hexes = hexes @tiles = tiles @cost = cost @free_tile_lay = free_tile_lay @when = %w[track] if @when.empty? @passive = false + @from_owner = from_owner + @extra_action = extra_action || false end end end diff --git a/lib/engine/ability/tile_lay.rb b/lib/engine/ability/tile_lay.rb index 14a32f8e33..80a60fa234 100644 --- a/lib/engine/ability/tile_lay.rb +++ b/lib/engine/ability/tile_lay.rb @@ -7,12 +7,12 @@ module Ability class TileLay < Base attr_reader :tiles, :free, :discount, :special, :connect, :blocks, :reachable, :must_lay_together, :cost, :must_lay_all, :closed_when_used_up, - :consume_tile_lay, :laid_hexes + :consume_tile_lay, :laid_hexes, :lay_count, :upgrade_count attr_accessor :hexes def setup(tiles:, hexes: nil, free: false, discount: nil, special: nil, connect: nil, blocks: nil, reachable: nil, must_lay_together: nil, cost: 0, - closed_when_used_up: nil, must_lay_all: nil, consume_tile_lay: nil) + closed_when_used_up: nil, must_lay_all: nil, consume_tile_lay: nil, lay_count: nil, upgrade_count: nil) @hexes = hexes @tiles = tiles @free = free @@ -27,6 +27,40 @@ def setup(tiles:, hexes: nil, free: false, discount: nil, special: nil, @cost = cost @consume_tile_lay = consume_tile_lay || false @laid_hexes = [] + + @upgrade_count = upgrade_count + @lay_count = lay_count + @count ||= @lay_count + @start_count = @count + end + + def use!(upgrade: false) + return if @count && !@count.positive? + + super + + return unless @upgrade_count + return unless @lay_count + + if upgrade + raise GameError, 'Cannot use this ability to upgrade a tile now' unless @upgrade_count.positive? + + @lay_count = 0 + @upgrade_count -= 1 + unless @upgrade_count.positive? + owner.remove_ability(self) + @count = 0 + end + else + raise GameError, 'Cannot use this ability to lay a tile now' unless @lay_count.positive? + + @upgrade_count = 0 + @lay_count -= 1 + unless @lay_count.positive? + owner.remove_ability(self) + @count = 0 + end + end end end end diff --git a/lib/engine/action/log.rb b/lib/engine/action/log.rb new file mode 100644 index 0000000000..51550f9ef5 --- /dev/null +++ b/lib/engine/action/log.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +require_relative 'message' + +module Engine + module Action + class Log < Message + end + end +end diff --git a/lib/engine/game/base.rb b/lib/engine/game/base.rb index ead47d5268..7f7bbccbd5 100644 --- a/lib/engine/game/base.rb +++ b/lib/engine/game/base.rb @@ -146,6 +146,7 @@ class Base repar: :gray, ignore_one_sale: :green, safe_par: :white, + max_price: :purple, }.freeze MIN_BID_INCREMENT = 5 @@ -215,6 +216,7 @@ class Base PHASES = [].freeze LOCATION_NAMES = {}.freeze + HEXES_HIDE_LOCATION_NAMES = {}.freeze TRACK_RESTRICTION = :semi_restrictive @@ -929,7 +931,7 @@ def obsolete?(train, purchased_train) end def shares - @corporations.flat_map(&:shares) + @corporations.flat_map(&:shares) + @players.flat_map(&:shares) + @share_pool.shares end def share_prices @@ -1207,6 +1209,12 @@ def share_jumps(steps) end end + # A hook to allow a game to request a consent check for a share exchange + # or purchase. If consent is needed then this method should return the + # player that needs to consent to this action. Returning nil or false + # means that consent is not required. + def consenter_for_buy_shares(_entity, _bundle); end + def can_run_route?(entity) graph_for_entity(entity).route_info(entity)&.dig(:route_available) end @@ -2021,7 +2029,7 @@ def cannot_pay_interest_str nil end - def hex_blocked_by_ability?(_entity, ability, hex) + def hex_blocked_by_ability?(_entity, ability, hex, _tile = nil) ability.hexes.include?(hex.id) end @@ -2091,6 +2099,15 @@ def bankruptcy_limit_reached? def update_tile_lists(tile, old_tile) add_extra_tile(tile) if tile.unlimited + + # TileSelector creates "fake" A1 hexes that are attached to the tiles, + # so here we need to check that tile.hex actually belongs to the Game + # object + if (hex = tile.hex) && (hex == hex_by_id(hex.id)) + raise GameError, + "Cannot lay tile #{tile.id}; it is already on hex #{tile.hex.id}" + end + @tiles.delete(tile) @tiles << old_tile unless old_tile.preprinted end @@ -2256,16 +2273,16 @@ def game_corporations end def init_hexes(companies, corporations) - blockers = {} + blockers = Hash.new { |h, k| h[k] = [] } (companies + minors + corporations).each do |company| abilities(company, :blocks_hexes) do |ability| ability.hexes.each do |hex| - blockers[hex] = company + blockers[hex] << [company, ability.hidden?] end end abilities(company, :blocks_hexes_consent) do |ability| ability.hexes.each do |hex| - blockers[hex] = company + blockers[hex] << [company, ability.hidden?] end end end @@ -2310,8 +2327,8 @@ def init_hexes(companies, corporations) Tile.from_code(coord, color, tile_string, preprinted: true, index: index) end - if (blocker = blockers[coord]) - tile.add_blocker!(blocker) + blockers[coord].each do |blocker, hidden| + tile.add_blocker!(blocker, hidden: hidden) end tile.partitions.each do |partition| @@ -2328,7 +2345,8 @@ def init_hexes(companies, corporations) # name the location (city/town) location_name = location_name(coord) - Hex.new(coord, layout: layout, axes: axes, tile: tile, location_name: location_name) + Hex.new(coord, layout: layout, axes: axes, tile: tile, location_name: location_name, + hide_location_name: self.class::HEXES_HIDE_LOCATION_NAMES[coord]) end end end.flatten.compact @@ -2911,10 +2929,8 @@ def ability_time_is_or_start? end def ability_blocking_step - supported_steps = [Step::Tracker, Step::Token, Step::BuyTrain] + supported_steps = [Step::Tracker, Step::Token, Step::Route, Step::BuyTrain] @round.steps.find do |step| - # Currently, abilities only care about Tracker, Token and BuyTrain steps - # The is_a? check can be expanded to include more classes/modules when needed supported_steps.any? { |s| step.is_a?(s) } && !step.passed? && step.active? && step.blocks? end end diff --git a/lib/engine/game/double_sided_tiles.rb b/lib/engine/game/double_sided_tiles.rb index 54a68e92e9..911e8f2173 100644 --- a/lib/engine/game/double_sided_tiles.rb +++ b/lib/engine/game/double_sided_tiles.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require_relative '../game_error' + # This module is used by games which double sided tiles, providing methods for # initializing double-sided tiles and keeping tile lists updated appropriately. module DoubleSidedTiles @@ -14,7 +16,7 @@ def initialize_tile_opposites! num = by_name[name_a].size if num != by_name[name_b].size - raise GameError, "Sides of double-sided tiles need to have same number (#{name_a}, #{name_b})" + raise Engine::GameError, "Sides of double-sided tiles need to have same number (#{name_a}, #{name_b})" end num.times.each do |index| @@ -42,6 +44,17 @@ def update_tile_lists(tile, old_tile) end end + # TileSelector creates "fake" A1 hexes that are attached to the tiles, + # so here we need to check that tile.hex actually belongs to the Game + # object + if (hex = tile.hex) && (hex == hex_by_id(hex.id)) + raise Engine::GameError, + "Cannot lay tile #{tile.id}; it is already on hex #{tile.hex.id}" + end + if (hex = tile.opposite&.hex) && hex == hex_by_id(hex.id) + raise Engine::GameError, "Cannot lay tile #{tile.id}; #{tile.opposite.id} is already on hex #{tile.opposite.hex.id}" + end + @tiles.delete(tile) if tile.opposite @tiles.delete(tile.opposite) diff --git a/lib/engine/game/g_1817/game.rb b/lib/engine/game/g_1817/game.rb index bd4dbc97c3..607cb2a11c 100644 --- a/lib/engine/game/g_1817/game.rb +++ b/lib/engine/game/g_1817/game.rb @@ -686,33 +686,33 @@ def unshort(entity, share) remove_share(short) end - def take_loan(entity, loan) + def take_loan(entity, _loan) raise GameError, "Cannot take more than #{maximum_loans(entity)} loans" unless can_take_loan?(entity) + taken_loan = @loans.pop old_price = entity.share_price name = entity.name name += " (#{entity.owner.name})" if @round.is_a?(Engine::Round::Stock) - @log << "#{name} takes a loan and receives #{format_currency(loan.amount)}" - @bank.spend(loan.amount, entity) + @log << "#{name} takes a loan and receives #{format_currency(taken_loan.amount)}" + @bank.spend(taken_loan.amount, entity) loan_taken_stock_market_movement(entity) log_share_price(entity, old_price) - entity.loans << loan - @loans.delete(loan) + entity.loans << taken_loan end def loan_taken_stock_market_movement(entity) @stock_market.move_left(entity) end - def payoff_loan(entity, loan, adjust_share_price: true) - raise GameError, "Loan doesn't belong to that entity" unless entity.loans.include?(loan) + def payoff_loan(entity, _loan, adjust_share_price: true) + raise GameError, "#{entity.name} does not have any loans" unless entity.loans.size.positive? - amount = loan.amount + paid_loan = entity.loans.pop + amount = paid_loan.amount @log << "#{entity.name} pays off a loan for #{format_currency(amount)}" entity.spend(amount, @bank) - entity.loans.delete(loan) - @loans << loan + @loans << paid_loan return unless adjust_share_price old_price = entity.share_price diff --git a/lib/engine/game/g_1822/entities.rb b/lib/engine/game/g_1822/entities.rb index 985f60be98..ee9bffc61b 100644 --- a/lib/engine/game/g_1822/entities.rb +++ b/lib/engine/game/g_1822/entities.rb @@ -90,14 +90,17 @@ module Entities 'power to place a token in the English Channel). If no token spaces are available, but a space '\ 'could be created by upgrading the English Channel track then this power may be used to place a '\ 'token and upgrade the track simultaneously. This counts as the acquiring company’s tile lay '\ - 'action and incurs the usual costs for doing so. Alternatively, it can move an exchange station '\ - 'token to the available station token section on its company charter.', + 'action and incurs the usual costs for doing so. It does not count as the company’s token placing '\ + 'step. Alternatively, it can move an exchange station token to the available station token section '\ + 'on its company charter.', abilities: [ { type: 'teleport', owner_type: 'corporation', hexes: ['P43'], tiles: %w[X9 X15], + from_owner: false, # uses an exchange token + extra_action: true, }, { type: 'token', @@ -107,6 +110,8 @@ module Entities teleport_price: 0, count: 1, extra_action: true, + special_only: true, + when: 'token', }, ], color: nil, @@ -150,7 +155,35 @@ module Entities 'receives a £20 discount off the cost of all hill and mountain terrain (i.e. NOT off the cost of '\ 'rough terrain). The private company does not close. Closes if free token taken when acquired. '\ 'Otherwise, flips when acquired and does not close.', - abilities: [], + abilities: [ + { + type: 'tile_lay', + tiles: [], + hexes: %w[ + B41 C40 D39 E10 F9 G14 G30 G8 H15 H39 H7 H9 I10 I12 I14 I16 I18 + I20 I22 I24 I38 I40 I8 J19 J21 J23 J25 J39 J7 O40 + ], + owner_type: 'corporation', + count: 1, + closed_when_used_up: true, + reachable: true, + free: true, + special: false, + when: 'track', + }, + { + type: 'tile_discount', + owner_type: 'corporation', + discount: 20, + terrain: 'hill', + }, + { + type: 'tile_discount', + owner_type: 'corporation', + discount: 20, + terrain: 'mountain', + }, + ], color: nil, }, { @@ -235,8 +268,10 @@ module Entities { type: 'tile_lay', owner_type: 'corporation', - when: 'track', - count: 2, + when: %w[track special_track], + must_lay_together: true, + lay_count: 2, + upgrade_count: 1, reachable: true, closed_when_used_up: true, hexes: [], @@ -372,13 +407,15 @@ module Entities { type: 'tile_lay', owner_type: 'corporation', - when: 'track', + when: %w[track special_track], count: 2, free: true, reachable: true, closed_when_used_up: true, hexes: %w[N21 N23], tiles: %w[5 6 57 15], + must_lay_together: true, + consume_tile_lay: true, }, ], color: nil, @@ -397,6 +434,7 @@ module Entities owner_type: 'player', from: 'par', }, + { type: 'blocks_hexes_consent', owner_type: 'player', hexes: ['M36'], hidden: true }, ], color: '#000', text_color: 'white', @@ -414,6 +452,7 @@ module Entities owner_type: 'player', from: 'par', }, + { type: 'blocks_hexes_consent', owner_type: 'player', hexes: ['L39'], hidden: true }, ], color: '#165016', text_color: 'white', @@ -432,6 +471,7 @@ module Entities owner_type: 'player', from: 'par', }, + { type: 'blocks_hexes_consent', owner_type: 'player', hexes: ['M40'], hidden: true }, ], color: '#cccc00', text_color: 'white', @@ -450,6 +490,7 @@ module Entities owner_type: 'player', from: 'par', }, + { type: 'blocks_hexes_consent', owner_type: 'player', hexes: ['N39'], hidden: true }, ], color: '#ff7f2a', text_color: 'white', @@ -703,7 +744,7 @@ module Entities value: 100, revenue: 0, desc: 'A 50% director’s certificate in the associated minor company. Starting location is M38 (London).', - abilities: [], + abilities: [{ type: 'blocks_hexes_consent', owner_type: 'player', hexes: ['N37'], hidden: true }], color: '#ffffff', text_color: 'black', }, @@ -713,7 +754,7 @@ module Entities value: 100, revenue: 0, desc: 'A 50% director’s certificate in the associated minor company. Starting location is M38 (London).', - abilities: [], + abilities: [{ type: 'blocks_hexes_consent', owner_type: 'player', hexes: ['L37'], hidden: true }], color: '#ffffff', text_color: 'black', }, @@ -1357,6 +1398,7 @@ module Entities reservation_color: nil, destination_coordinates: 'I22', destination_icon: '1822/LNWR_DEST', + abilities: [{ type: 'blocks_hexes_consent', owner_type: 'player', hexes: ['M36'], hidden: true }], }, { sym: 'GWR', @@ -1372,6 +1414,7 @@ module Entities reservation_color: nil, destination_coordinates: 'G36', destination_icon: '1822/GWR_DEST', + abilities: [{ type: 'blocks_hexes_consent', owner_type: 'player', hexes: ['L39'], hidden: true }], }, { sym: 'LBSCR', @@ -1388,6 +1431,7 @@ module Entities reservation_color: nil, destination_coordinates: 'M42', destination_icon: '1822/LBSCR_DEST', + abilities: [{ type: 'blocks_hexes_consent', owner_type: 'player', hexes: ['M40'], hidden: true }], }, { sym: 'SECR', @@ -1407,6 +1451,7 @@ module Entities count: 1, price: 0, }, + { type: 'blocks_hexes_consent', owner_type: 'player', hexes: ['N39'], hidden: true }, ], color: '#ff7f2a', reservation_color: nil, diff --git a/lib/engine/game/g_1822/game.rb b/lib/engine/game/g_1822/game.rb index eb4427a598..4076a3a378 100644 --- a/lib/engine/game/g_1822/game.rb +++ b/lib/engine/game/g_1822/game.rb @@ -510,7 +510,6 @@ class Game < Game::Base 'P21' => { acquire: %i[major minor], phase: 2 }, }.freeze - PRIVATE_CLOSE_AFTER_PASS = %w[P12 P21].freeze PRIVATE_MAIL_CONTRACTS = %w[P6 P7].freeze PRIVATE_REMOVE_REVENUE = %w[P5 P6 P7 P8 P10 P17 P18 P21].freeze PRIVATE_PHASE_REVENUE = %w[P15 P20].freeze @@ -539,8 +538,7 @@ class Game < Game::Base UPGRADE_COST_L_TO_2 = 80 - include StubsAreRestricted - + attr_reader :minor_14_city_exit attr_accessor :bidding_token_per_player, :player_debts def bank_sort(corporations) @@ -631,9 +629,9 @@ def check_overlap(routes) def company_bought(company, entity) # On acquired abilities on_acquired_train(company, entity) if self.class::PRIVATE_TRAINS.include?(company.id) - on_aqcuired_remove_revenue(company) if self.class::PRIVATE_REMOVE_REVENUE.include?(company.id) + on_acquired_remove_revenue(company) if self.class::PRIVATE_REMOVE_REVENUE.include?(company.id) on_acquired_phase_revenue(company) if self.class::PRIVATE_PHASE_REVENUE.include?(company.id) - on_aqcuired_double_cash(company) if self.class::COMPANY_DOUBLE_CASH == company.id + on_acquired_double_cash(company) if self.class::COMPANY_DOUBLE_CASH == company.id end def company_status_str(company) @@ -685,6 +683,7 @@ def crowded_corps trains = c.trains.count { |t| !extra_train?(t) } crowded = trains > train_limit(c) crowded |= extra_train_permanent_count(c) > 1 + crowded |= pullman_train_count(c) > 1 crowded end end @@ -1087,6 +1086,7 @@ def route_trains(entity) end def setup + @nothing_sold_in_sr = true @game_end_reason = nil # Setup the bidding token per player @@ -1232,7 +1232,7 @@ def upgrades_to?(from, to, _special = false, selected_company: nil) return self.class::UPGRADABLE_S_YELLOW_CITY_TILE == to.name end - # Special case for Middleton Railway where we remove a town from a tile + # Special case for P2 Middleton Railway where we remove a town from a tile if self.class::TRACK_TOWN.include?(from.name) && self.class::TRACK_PLAIN.include?(to.name) return Engine::Tile::COLORS.index(to.color) == (Engine::Tile::COLORS.index(from.color) + 1) end @@ -1306,21 +1306,6 @@ def after_lay_tile(hex, old_tile, tile) upgrade_france_to_brown end - def after_track_pass(entity) - # Special case of when we only used up one of the 2 track lays of - # Leicester & Swannington Railway or Humber Suspension Bridge Company - self.class::PRIVATE_CLOSE_AFTER_PASS.each do |company_id| - company = entity.companies.find { |c| c.id == company_id } - next unless company - - count = company.all_abilities.find { |a| a.type == :tile_lay }&.count - next if !count || count == 2 - - @log << "#{company.name} closes" - company.close! - end - end - def bank_companies(prefix) @companies.select do |c| c.id[0] == prefix && (!c.owner || c.owner == @bank) && !c.closed? @@ -1375,15 +1360,6 @@ def bidbox_start_private self.class::BIDDING_BOX_START_PRIVATE end - def can_gain_extra_train?(entity, train) - if train.name == self.class::EXTRA_TRAIN_PULLMAN - return false if entity.trains.any? { |t| t.name == self.class::EXTRA_TRAIN_PULLMAN } - elsif self.class::EXTRA_TRAIN_PERMANENTS.include?(train.name) - return false if entity.trains.any? { |t| self.class::EXTRA_TRAIN_PERMANENTS.include?(t.name) } - end - true - end - def calculate_destination_bonus(route) entity = route.train.owner # Only majors can have a destination token @@ -1456,7 +1432,7 @@ def company_choices_chpr(company, time) end def company_choices_egr(company, time) - return {} if !company.all_abilities.empty? || time != :special_choose + return {} if company.all_abilities.size != 3 || time != :special_choose choices = {} choices['token'] = 'Receive a discount token that can be used to pay the full cost of a single '\ @@ -1567,17 +1543,9 @@ def company_made_choice_chpr(company, choice) def company_made_choice_egr(company, choice, time) company.desc = company_choices(company, time)[choice] - if choice == 'token' - # Give the company a free tile lay. - ability = Engine::Ability::TileLay.new(type: 'tile_lay', tiles: [], hexes: [], owner_type: 'corporation', - count: 1, closed_when_used_up: true, reachable: true, free: true, - special: false, when: 'track') - company.add_ability(ability) - else - %w[mountain hill].each do |terrain| - ability = Engine::Ability::TileDiscount.new(type: 'tile_discount', discount: 20, terrain: terrain) - company.add_ability(ability) - end + remove_type = choice == 'token' ? :tile_discount : :tile_lay + company.all_abilities.dup.each do |ability| + company.remove_ability(ability) if ability.type == remove_type end end @@ -1663,7 +1631,7 @@ def english_channel_visit(visits) end def exchange_tokens(entity) - return 0 unless entity.corporation? + return 0 unless entity&.corporation? ability = entity.all_abilities.find { |a| a.type == :exchange_token } return 0 unless ability @@ -1683,6 +1651,14 @@ def extra_train_permanent_count(corporation) corporation.trains.count { |train| extra_train_permanent?(train) } end + def pullman_train_count(corporation) + corporation.trains.count { |train| pullman_train?(train) } + end + + def remove_discarded_train?(train) + extra_train_permanent?(train) || pullman_train?(train) + end + def find_corporation(company) corporation_id = company.id[1..-1] corporation_by_id(corporation_id) @@ -1726,21 +1702,17 @@ def on_acquired_phase_revenue(company) company.close! end - def on_aqcuired_double_cash(company) + def on_acquired_double_cash(company) company.revenue = self.class::COMPANY_DOUBLE_CASH_REVENUE[@phase.name.to_i] end - def on_aqcuired_remove_revenue(company) + def on_acquired_remove_revenue(company) company.revenue = 0 end def on_acquired_train(company, entity) train = @company_trains[company.id] - unless can_gain_extra_train?(entity, train) - raise GameError, "Can't gain an extra #{train.name}, already have a permanent 2P, LP, or P+" - end - buy_train(entity, train, :free) @log << "#{entity.name} gains a #{train.name} train" @@ -1776,8 +1748,9 @@ def place_destination_token(entity, hex, token) city.place_token(entity, token, free: true, check_tokenable: false, cheater: true) hex.tile.icons.reject! { |icon| icon.name == "#{entity.id}_destination" } - ability = entity.all_abilities.find { |a| a.type == :destination } - entity.remove_ability(ability) + entity.all_abilities.each do |ability| + entity.remove_ability(ability) if ability.type == :destination + end @graph.clear @@ -1879,6 +1852,10 @@ def must_be_on_terrain?(entity) entity.id == self.class::COMPANY_EGR end + def must_be_on_estuary?(entity) + entity.id == self.class::COMPANY_GSWR + end + def must_remove_town?(entity) entity.id == self.class::COMPANY_MTONR end @@ -1898,6 +1875,52 @@ def compute_game_end return %i[stock_market current_or] if @stock_market.max_reached? end + def preprocess_action(action) + case action + when Action::LayTile + if action.tile.name != 'BC' + action.hex.tile.blockers.each do |entity| + entity.all_abilities.dup.each do |ability| + entity.remove_ability(ability) if ability.type == :blocks_hexes_consent + end + end + end + end + end + + def hex_blocked_by_ability?(entity, ability, hex, tile) + return false if tile.name == 'BC' + return false unless ability.player + return false if entity.player == ability.player + return false unless ability.hexes.include?(hex.id) + return false if hex.tile.blockers.map(&:player).include?(entity.player) + + true + end + + def legal_tile_rotation?(entity, hex, tile) + rights_owners = hex.tile.blockers.map(&:owner).compact.uniq + return true if rights_owners.delete(acting_for_entity(entity)) + + rights_owners.empty? ? legal_if_stubbed?(hex, tile) : super + end + + def legal_if_stubbed?(hex, tile) + hex.tile.stubs.empty? || (hex.tile.stubs.map(&:edge) - tile.exits).empty? + end + + def london_hex + @london_hex ||= hex_by_id(LONDON_HEX) + end + + def something_sold_in_sr! + @nothing_sold_in_sr = false + end + + def nothing_sold_in_sr? + @nothing_sold_in_sr + end + private def find_and_remove_train_by_id(train_id, buyable: true) @@ -1985,20 +2008,31 @@ def setup_destinations @corporations.each do |c| next unless c.destination_coordinates - description = if c.id == self.class::TWO_HOME_CORPORATION - "Gets destination token at #{c.destination_coordinates} when floated" - else - "Connect to #{c.destination_coordinates} for your destination token" - end + home_hex = hex_by_id(c.coordinates) ability = Ability::Base.new( - type: 'destination', - description: description + type: 'base', + description: "Home: #{home_hex.location_name} (#{home_hex.name})", ) c.add_ability(ability) + + dest_hex = hex_by_id(c.destination_coordinates) + ability = Ability::Base.new( + type: 'base', + description: "Destination: #{dest_hex.location_name} (#{dest_hex.name})", + ) + c.add_ability(ability) + c.tokens << Engine::Token.new(c, logo: "../#{c.destination_icon}.svg", simple_logo: "../#{c.destination_icon}.svg", type: :destination) - hex_by_id(c.destination_coordinates).tile.icons << Part::Icon.new("../#{c.destination_icon}", "#{c.id}_destination") + dest_hex.tile.icons << Part::Icon.new("../#{c.destination_icon}", "#{c.id}_destination") + + next unless c.id == self.class::TWO_HOME_CORPORATION + + c.add_ability(Ability::Base.new( + type: 'destination', + description: 'Places destination token in its first OR' + )) end end diff --git a/lib/engine/game/g_1822/round/stock.rb b/lib/engine/game/g_1822/round/stock.rb index 6c454a0649..e4bfa090b9 100644 --- a/lib/engine/game/g_1822/round/stock.rb +++ b/lib/engine/game/g_1822/round/stock.rb @@ -43,6 +43,8 @@ def update_stored_winning_bids(entity) end def finish_round + return @game.end_game! if @game.nothing_sold_in_sr? + float_minors = [] minor_count = 0 remove_l_count = 0 diff --git a/lib/engine/game/g_1822/step/buy_sell_par_shares.rb b/lib/engine/game/g_1822/step/buy_sell_par_shares.rb index 5a090dd759..0b7a19f558 100644 --- a/lib/engine/game/g_1822/step/buy_sell_par_shares.rb +++ b/lib/engine/game/g_1822/step/buy_sell_par_shares.rb @@ -132,6 +132,7 @@ def pass_description end def process_bid(action) + @game.something_sold_in_sr! if @game.nothing_sold_in_sr? action.entity.unpass! add_bid(action) store_bids! diff --git a/lib/engine/game/g_1822/step/discard_train.rb b/lib/engine/game/g_1822/step/discard_train.rb index 49ca6f2f7c..f3edd9de90 100644 --- a/lib/engine/game/g_1822/step/discard_train.rb +++ b/lib/engine/game/g_1822/step/discard_train.rb @@ -10,7 +10,7 @@ class DiscardTrain < Engine::Step::DiscardTrain def process_discard_train(action) train = action.train - if @game.extra_train_permanent?(train) + if @game.remove_discarded_train?(train) @game.remove_train(train) @log << "#{action.entity.name} discards #{train.name}, #{train.name} is removed from the game" else @@ -24,6 +24,7 @@ def trains(corporation) if @game.extra_train_permanent_count(corporation) > 1 return corporation.trains.select { |t| @game.extra_train_permanent?(t) } end + return corporation.trains.select { |t| @game.pullman_train?(t) } if @game.pullman_train_count(corporation) > 1 corporation.trains.reject { |t| @game.extra_train?(t) } end diff --git a/lib/engine/game/g_1822/step/pending_token.rb b/lib/engine/game/g_1822/step/pending_token.rb index 9a9a5dae15..16b91cd8f6 100644 --- a/lib/engine/game/g_1822/step/pending_token.rb +++ b/lib/engine/game/g_1822/step/pending_token.rb @@ -33,6 +33,22 @@ def process_place_token(action) check_tokenable: false) @round.pending_tokens.shift @game.after_place_pending_token(action.city) + + setup_m14_track_rights(entity) if entity.id == @game.class::MINOR_14_ID + end + + def setup_m14_track_rights(m14) + hex = @game.london_hex.neighbors[@game.minor_14_city_exit] + + ability = Ability::BlocksHexesConsent.new( + type: :blocks_hexes_consent, + owner_type: 'player', + hexes: [hex.id], + hidden: true, + ) + m14.add_ability(ability) + + hex.tile.add_blocker!(m14, hidden: true) end end end diff --git a/lib/engine/game/g_1822/step/special_track.rb b/lib/engine/game/g_1822/step/special_track.rb index dfaa0f11fc..42762f28e3 100644 --- a/lib/engine/game/g_1822/step/special_track.rb +++ b/lib/engine/game/g_1822/step/special_track.rb @@ -1,18 +1,18 @@ # frozen_string_literal: true -require_relative '../../../step/base' +require_relative '../../../step/special_track' require_relative 'tracker' module Engine module Game module G1822 module Step - class SpecialTrack < Engine::Step::Base + class SpecialTrack < Engine::Step::SpecialTrack include Engine::Game::G1822::Tracker - ACTIONS = %w[lay_tile].freeze - def actions(entity) + return ACTIONS_WITH_PASS if @company == entity + action = abilities(entity) && @game.round.active_step.respond_to?(:process_lay_tile) return [] unless action @@ -20,11 +20,7 @@ def actions(entity) end def description - 'Lay Track' - end - - def blocks? - false + @company ? "Lay Track for #{@company.name}" : 'Lay Track' end def process_lay_tile(action) @@ -39,6 +35,9 @@ def process_lay_tile(action) @game.current_entity end @in_process = true + + minor_single_use = false + if @game.company_ability_extra_track?(entity) upgraded_extra_track = upgraded_track?(action.hex.tile, action.tile, action.hex) if upgraded_extra_track && @extra_laided_track && abilities(action.entity).consume_tile_lay @@ -48,9 +47,8 @@ def process_lay_tile(action) lay_tile(action, spender: spender) @round.laid_hexes << action.hex - if upgraded_extra_track || spender.type == :minor - # Use the ability an extra time, upgrade counts as 2 tile lays. Or if its a minor, they ony get one use - ability.use! + if spender.type == :minor + minor_single_use = true else @extra_laided_track = true end @@ -59,11 +57,16 @@ def process_lay_tile(action) end @in_process = false @game.after_lay_tile(action.hex, old_tile, action.tile) - ability.use! + ability.use!(upgrade: %i[green brown gray].include?(action.tile.color)) + ability.use! if minor_single_use - if ability.type == :tile_lay && ability.count <= 0 && ability.closed_when_used_up - @log << "#{ability.owner.name} closes" - ability.owner.close! + if ability.type == :tile_lay + if ability.count <= 0 && ability.closed_when_used_up + @log << "#{ability.owner.name} closes" + ability.owner.close! + end + + handle_extra_tile_lay_company(ability, action.entity) end return unless ability.type == :teleport @@ -94,26 +97,38 @@ def available_hex(entity, hex) # Middleton Railway can only lay track on hexes with one town return nil if @game.must_remove_town?(entity) && (hex.tile.towns.empty? || hex.tile.towns.size > 1) - # Bristol & Exeter Railway can only lay track on plain hexes or with one town - if @game.can_only_lay_plain_or_towns?(entity) && @game.class::TRACK_PLAIN.none?(hex.tile.name) && - @game.class::TRACK_TOWN.none?(hex.tile.name) + # P11 Bristol & Exeter Railway can only lay track on plain hexes or + # with one town, and on the phase's latest color (advanced tile lay) + if @game.can_only_lay_plain_or_towns?(entity) && + @game.class::TRACK_PLAIN.none?(hex.tile.name) && + @game.class::TRACK_TOWN.none?(hex.tile.name) + return nil + end + if @game.can_upgrade_one_phase_ahead?(entity) && + @game.phase.tiles.last != hex.tile.color return nil end - # If player have choosen the tile lay option on the Edinburgh and Glasgow Railway company, - # only rough terrain, hill or mountains are valid hexes + # P8 Edinburgh and Glasgow Railway company can + # only lay track on hills and mountains if @game.must_be_on_terrain?(entity) tile_terrain = hex.tile.upgrades.any? do |upgrade| - %i[mountain hill swamp].any? { |t| upgrade.terrains.include?(t) } + %i[mountain hill].any? { |t| upgrade.terrains.include?(t) } end return nil unless tile_terrain end + # P10 Glasgow and South-Western Railway's tile lay ability must be + # on an estuary + return nil if @game.must_be_on_estuary?(entity) && hex.tile.borders.none? { |b| b.type.to_s == 'water' } + connected end def legal_tile_rotation?(entity, hex, tile) return tile.rotation.zero? if entity.id == @game.class::COMPANY_LCDR && hex.name == @game.class::ENGLISH_CHANNEL_HEX + + # check for P2 (Remove Town) return legal_tile_rotation_remove_town?(entity.owner, hex, tile) if @game.must_remove_town?(entity) super @@ -123,20 +138,13 @@ def legal_tile_rotation_remove_town?(entity, hex, tile) return false unless @game.legal_tile_rotation?(entity, hex, tile) old_paths = hex.tile.paths - old_ctedges = hex.tile.city_town_edges new_paths = tile.paths new_exits = tile.exits - new_ctedges = tile.city_town_edges - extra_cities = [0, new_ctedges.size - old_ctedges.size].max - multi_city_upgrade = new_ctedges.size > 1 && old_ctedges.size > 1 new_exits.all? { |edge| hex.neighbors[edge] } && !(new_exits & hex_neighbors(entity, hex)).empty? && - old_paths_are_preserved(old_paths, new_paths) && - extra_cities >= new_ctedges.count { |newct| old_ctedges.all? { |oldct| (newct & oldct).none? } } && - (!multi_city_upgrade || - old_ctedges.all? { |oldct| new_ctedges.one? { |newct| (oldct & newct) == oldct } }) + old_paths_are_preserved(old_paths, new_paths) end def old_paths_are_preserved(old_paths, new_paths) @@ -150,16 +158,21 @@ def potential_tiles(entity, hex) return [] unless (tile_ability = abilities(entity)) return super if tile_ability.tiles.empty? - tiles = tile_ability.tiles.map { |name| @game.tiles.find { |t| t.name == name } } + advanced_tile_lay = @game.can_upgrade_one_phase_ahead?(entity) + return [] if advanced_tile_lay && entity.owner.type == :minor && !hex.tile.color == :yellow + special = tile_ability.special if tile_ability.type == :tile_lay - if @game.can_upgrade_one_phase_ahead?(entity) - return [] if entity.owner.type == :minor && !hex.tile.color == :yellow - return tiles.compact.select { |t| @game.upgrades_to?(hex.tile, t, special) } + tile_ability.tiles.each_with_object([]) do |name, tiles| + next unless (tile = @game.tiles.find { |t| t.name == name }) + next unless @game.upgrades_to?(hex.tile, tile, special) + + # Advanced Tile Lay private only wants tiles from a future phase, + # all others want to match the current phase + next if advanced_tile_lay == @game.phase.tiles.include?(tile.color) + + tiles << tile end - tiles - .compact - .select { |t| @game.phase.tiles.include?(t.color) && @game.upgrades_to?(hex.tile, t, special) } end def abilities(entity, **kwargs, &block) @@ -178,6 +191,8 @@ def abilities(entity, **kwargs, &block) end if entity.id == @game.class::COMPANY_HSBC && entity.owner&.corporation? + return if @round.num_laid_track.positive? && entity != @game.current_entity + hsbc_token = entity.owner.tokens .select(&:used) .any? { |t| @game.class::COMPANY_HSBC_TILES.include?(t.city.hex.id) } @@ -205,6 +220,21 @@ def round_state } ) end + + def hex_neighbors(entity, hex) + @game.graph_for_entity(entity).connected_hexes(entity)[hex] + end + + # Extra Tile Lay abilities need to be used either entirely before + # or entirely after the Major's normal tile lays + # https://boardgamegeek.com/thread/2425653/article/34793831#34793831 + def handle_extra_tile_lay_company(ability, entity) + @company = + if ability.must_lay_together + @round.num_laid_track += 1 if @round.num_laid_track == 1 && !ability.consume_tile_lay + ability.count.positive? ? entity : nil + end + end end end end diff --git a/lib/engine/game/g_1822/step/token.rb b/lib/engine/game/g_1822/step/token.rb index 22dd0508a0..53bb108a7b 100644 --- a/lib/engine/game/g_1822/step/token.rb +++ b/lib/engine/game/g_1822/step/token.rb @@ -9,7 +9,7 @@ module Step class Token < Engine::Step::Token def actions(entity) actions = super.dup - if (!choices_ability(entity).empty? || (actions.empty? && ability_lcdr?(entity))) && + if (!choices_ability(entity).empty? || (actions.empty? && ability_chpr_lcdr?(entity))) && !actions.include?('choose_ability') actions << 'choose_ability' end @@ -27,11 +27,13 @@ def available_tokens(entity) entity.tokens_by_type.reject { |t| t.type == :destination } end - def ability_lcdr?(entity) + def ability_chpr_lcdr?(entity) return unless entity.corporation? - # Special case if corporation have no tokens available and have LCDR. Make sure we are stopping on this step - entity.companies.any? { |c| c.id == @game.class::COMPANY_LCDR } + # Special case if corporation has no tokens available, but does have + # CHPR or LCDR and an exchange token + entity.companies.any? { |c| c.id == @game.class::COMPANY_CHPR || c.id == @game.class::COMPANY_LCDR } && + @game.exchange_tokens(entity).positive? end def can_place_token?(entity) diff --git a/lib/engine/game/g_1822/step/track.rb b/lib/engine/game/g_1822/step/track.rb index 90d48cc94e..434bb7474a 100644 --- a/lib/engine/game/g_1822/step/track.rb +++ b/lib/engine/game/g_1822/step/track.rb @@ -56,12 +56,6 @@ def process_lay_tile(action) @game.after_lay_tile(action.hex, old_tile, action.tile) end - def process_pass(action) - super - - @game.after_track_pass(action.entity) - end - def available_hex(entity, hex) connected = hex_neighbors(entity, hex) return nil unless connected diff --git a/lib/engine/game/g_1822_ca/game.rb b/lib/engine/game/g_1822_ca/game.rb index fb2141ecc2..4c744a8e08 100644 --- a/lib/engine/game/g_1822_ca/game.rb +++ b/lib/engine/game/g_1822_ca/game.rb @@ -189,6 +189,9 @@ class Game < G1822::Game STARTING_CORPORATIONS = %w[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 CNoR CPR GNWR GT GTP GWR ICR NTR PGE QMOO].freeze + MUST_SELL_IN_BLOCKS = true + SELL_MOVEMENT = :left_per_10_if_pres_else_left_one + def setup_game_specific # Initialize the stock round choice for P7-Double Cash @double_cash_choice = nil diff --git a/lib/engine/game/g_1822_mx/entities.rb b/lib/engine/game/g_1822_mx/entities.rb index 5887d9103d..2715cad4d5 100644 --- a/lib/engine/game/g_1822_mx/entities.rb +++ b/lib/engine/game/g_1822_mx/entities.rb @@ -159,8 +159,10 @@ module Entities { type: 'tile_lay', owner_type: 'corporation', - when: 'track', - count: 2, + when: %w[track special_track], + must_lay_together: true, + lay_count: 2, + upgrade_count: 1, reachable: true, closed_when_used_up: true, hexes: [], @@ -411,6 +413,7 @@ module Entities owner_type: 'player', from: 'par', }, + { type: 'blocks_hexes_consent', owner_type: 'player', hexes: ['M22'], hidden: true }, ], color: '#000000', text_color: 'white', @@ -447,6 +450,7 @@ module Entities owner_type: 'player', from: 'par', }, + { type: 'blocks_hexes_consent', owner_type: 'player', hexes: ['M24'], hidden: true }, ], color: '#850040', text_color: 'white', @@ -498,6 +502,7 @@ module Entities owner_type: 'player', from: 'par', }, + { type: 'blocks_hexes_consent', owner_type: 'player', hexes: ['O24'], hidden: true }, ], color: '#004c6c', text_color: 'white', @@ -982,6 +987,7 @@ module Entities color: '#ffffff', text_color: 'black', reservation_color: nil, + abilities: [{ type: 'blocks_hexes_consent', owner_type: 'player', hexes: ['N21'], hidden: true }], }, { sym: '15', @@ -999,6 +1005,7 @@ module Entities color: '#ffffff', text_color: 'black', reservation_color: nil, + abilities: [{ type: 'blocks_hexes_consent', owner_type: 'player', hexes: ['O22'], hidden: true }], }, { sym: '16', @@ -1182,6 +1189,7 @@ module Entities reservation_color: nil, destination_coordinates: 'F21', destination_icon: '1822_mx/MC_DEST', + abilities: [{ type: 'blocks_hexes_consent', owner_type: 'player', hexes: ['M22'], hidden: true }], }, { sym: 'CHP', @@ -1212,6 +1220,7 @@ module Entities reservation_color: nil, destination_coordinates: 'G22', destination_icon: '1822_mx/FNM_DEST', + abilities: [{ type: 'blocks_hexes_consent', owner_type: 'player', hexes: ['M24'], hidden: true }], }, { sym: 'MIR', @@ -1255,6 +1264,7 @@ module Entities reservation_color: nil, destination_coordinates: 'N27', destination_icon: '1822_mx/IRM_DEST', + abilities: [{ type: 'blocks_hexes_consent', owner_type: 'player', hexes: ['O24'], hidden: true }], }, { sym: 'NDEM', diff --git a/lib/engine/game/g_1822_mx/game.rb b/lib/engine/game/g_1822_mx/game.rb index 2fc149d5e4..3f69e53da1 100644 --- a/lib/engine/game/g_1822_mx/game.rb +++ b/lib/engine/game/g_1822_mx/game.rb @@ -49,11 +49,11 @@ class Game < G1822::Game 360 400 450 500 550 600e], ].freeze + MUST_SELL_IN_BLOCKS = true SELL_MOVEMENT = :left_per_10_if_pres_else_left_one PRIVATE_TRAINS = %w[P1 P2 P3 P4 P5 P6].freeze EXTRA_TRAINS = %w[2P P+ LP 3/2P].freeze EXTRA_TRAIN_PERMANENTS = %w[2P LP 3/2P].freeze - PRIVATE_CLOSE_AFTER_PASS = %w[P9].freeze PRIVATE_MAIL_CONTRACTS = %w[P14 P15].freeze PRIVATE_PHASE_REVENUE = %w[].freeze # Stub for 1822 specific code P7_REVENUE = [0, 0, 0, 20, 20, 40, 40, 60].freeze @@ -307,7 +307,7 @@ def operating_round(round_num) G1822::Step::PendingToken, G1822::Step::FirstTurnHousekeeping, Engine::Step::AcquireCompany, - G1822MX::Step::DiscardTrain, + G1822::Step::DiscardTrain, G1822MX::Step::SpecialChoose, G1822MX::Step::SpecialTrack, G1822::Step::SpecialToken, @@ -319,7 +319,7 @@ def operating_round(round_num) G1822::Step::BuyTrain, G1822MX::Step::MinorAcquisition, G1822::Step::PendingToken, - G1822MX::Step::DiscardTrain, + G1822::Step::DiscardTrain, G1822MX::Step::IssueShares, G1822MX::Step::CashOutNdem, G1822MX::Step::AuctionNdemTokens, @@ -535,6 +535,10 @@ def active_players super end + def acting_for_entity(entity) + entity == ndem ? active_players.first : super + end + def set_private_revenues @companies.each do |c| next unless c.owner @@ -723,22 +727,8 @@ def ndem @ndem ||= corporation_by_id('NDEM') end - def extra_train_pullman_count(corporation) - corporation.trains.count { |train| extra_train_pullman?(train) } - end - - def extra_train_pullman?(train) - train.name == self.class::EXTRA_TRAIN_PULLMAN - end - - def crowded_corps - @crowded_corps ||= corporations.select do |c| - trains = c.trains.count { |t| !extra_train?(t) } - crowded = trains > train_limit(c) - crowded |= extra_train_permanent_count(c) > 1 - crowded |= extra_train_pullman_count(c) > 1 - crowded - end + def remove_discarded_train?(train) + train.owner == ndem || super end def finalize_end_game_values; end @@ -761,6 +751,29 @@ def price_movement_chart ['Corporation (except NdeM) sold out at end of SR', '1 →'], ] end + + def legal_tile_rotation?(entity, hex, tile) + return false if must_connect_mc?(hex) && !connects_mc?(tile) + + super + end + + # Per 6.9.2 and clarification in discussion at + # https://github.com/tobymao/18xx/issues/7812, if MC Major/Concession + # does not have an owner, then the track that is laid in M22 must not + # only connect to Mexico City, but also connect to other existing track. + def must_connect_mc?(hex) + hex.id == 'M22' && !company_by_id('C2').player && !corporation_by_id('MC').player + end + + def connects_mc?(tile) + path_to_mc = tile.paths.find { |p| p.edges[0].num == 5 } + return false unless path_to_mc + + exit_out = tile.paths.find { |p| p.town == path_to_mc.town && p != path_to_mc }.edges[0].num + @m22_adjacent_hexes ||= { 0 => 'N21', 1 => 'M20', 2 => 'L21', 3 => 'L23', 4 => 'M24' } + hex_by_id(@m22_adjacent_hexes[exit_out]).tile.exits.include?((exit_out + 3) % 6) + end end end end diff --git a/lib/engine/game/g_1822_mx/map.rb b/lib/engine/game/g_1822_mx/map.rb index ad5bbc7d1c..7cc6d19c9f 100644 --- a/lib/engine/game/g_1822_mx/map.rb +++ b/lib/engine/game/g_1822_mx/map.rb @@ -53,6 +53,7 @@ module Map 'M26' => 'Poza Rica Jalapa', 'M36' => 'Campeche', 'N17' => 'Manzanillo', + 'N23' => 'Mexico City', 'N25' => 'Tlaxcala Puebla', 'N27' => 'Veracruz', 'N33' => 'Ciudad del Carmen', @@ -65,6 +66,7 @@ module Map 'P31' => 'Tuxtla Gutierrez', 'Q34' => 'Guatemala', }.freeze + HEXES_HIDE_LOCATION_NAMES = { 'N23' => true }.freeze LAYOUT = :pointy diff --git a/lib/engine/game/g_1822_mx/step/auction_ndem_tokens.rb b/lib/engine/game/g_1822_mx/step/auction_ndem_tokens.rb index 02034345c0..b3a465caed 100644 --- a/lib/engine/game/g_1822_mx/step/auction_ndem_tokens.rb +++ b/lib/engine/game/g_1822_mx/step/auction_ndem_tokens.rb @@ -77,7 +77,7 @@ def get_player_list(start_player: nil, next_player: false) def corp_can_purchase_token?(corporation, token) corporation.cash >= @available_ndem_tokens[token] && !@game.exchange_tokens(corporation).zero? && - !token.city.tokened_by?(corporation) + token.hex.tile.cities.none? { |c| c.tokened_by?(corporation) } end def player_can_purchase_token?(player, token) diff --git a/lib/engine/game/g_1822_mx/step/discard_train.rb b/lib/engine/game/g_1822_mx/step/discard_train.rb deleted file mode 100644 index 11ddf09add..0000000000 --- a/lib/engine/game/g_1822_mx/step/discard_train.rb +++ /dev/null @@ -1,30 +0,0 @@ -# frozen_string_literal: true - -require_relative '../../g_1822/step/discard_train' - -module Engine - module Game - module G1822MX - module Step - class DiscardTrain < Engine::Game::G1822::Step::DiscardTrain - def trains(corporation) - if @game.extra_train_pullman_count(corporation) > 1 - corporation.trains.select { |t| @game.extra_train_pullman?(t) } + super - else - super - end - end - - def process_discard_train(action) - if action.entity == @game.ndem || @game.extra_train_pullman?(action.train) - @game.remove_train(action.train) - @log << "#{action.entity.name} discards #{action.train.name}, #{action.train.name} is removed from the game" - else - super - end - end - end - end - end - end -end diff --git a/lib/engine/game/g_1822_mx/step/special_track.rb b/lib/engine/game/g_1822_mx/step/special_track.rb index 867029016d..b4d135f564 100644 --- a/lib/engine/game/g_1822_mx/step/special_track.rb +++ b/lib/engine/game/g_1822_mx/step/special_track.rb @@ -32,17 +32,6 @@ def legal_tile_rotation?(entity, hex, tile) return true if @game.cube_company?(entity) return true if tile.id == 'BC-0' - # Per rule, a tile specifically placed in M22 must connect Mexico City to existing track, unless - # it is the MC that is placing it. - if hex.id == 'M22' && entity.id != 'MC' - path_to_mc = tile.paths.find { |p| p.edges[0].num == 5 } - return false unless path_to_mc - - exit_out = tile.paths.find { |p| p.town == path_to_mc.town && p != path_to_mc }.edges[0].num - @m22_adjacent_hexes ||= { 0 => 'N21', 1 => 'M20', 2 => 'L21', 3 => 'L23', 4 => 'M24' } - return @game.hex_by_id(@m22_adjacent_hexes[exit_out]).tile.exits.include?((exit_out + 3) % 6) - end - super end @@ -91,7 +80,7 @@ def process_lay_tile(action) @log << "#{action.entity.name} places builder cube on #{action.hex.name}" action.hex.tile.icons << Part::Icon.new('../icons/1822_mx/red_cube', 'block') ability = abilities(action.entity) - ability.use! + ability.use!(upgrade: %i[green brown gray].include?(action.tile.color)) # Minors can only do this once... if action.entity.owner.type == :minor ability.use! @@ -103,6 +92,8 @@ def process_lay_tile(action) @log << "#{ability.owner.name} closes" ability.owner.close! end + + handle_extra_tile_lay_company(ability, action.entity) else super action.hex.tile.icons.reject! { |i| i.name == 'block' } diff --git a/lib/engine/game/g_1822_mx/step/track.rb b/lib/engine/game/g_1822_mx/step/track.rb index e108c81ced..788873be23 100644 --- a/lib/engine/game/g_1822_mx/step/track.rb +++ b/lib/engine/game/g_1822_mx/step/track.rb @@ -63,16 +63,6 @@ def legal_tile_rotation?(entity, hex, tile) return hex.tile.paths[0].exits == tile.exits if @game.port_company?(entity) return true if @game.cube_company?(entity) - # Per rule, a tile specifically placed in M22 must connect Mexico City to existing track, unless - # it is the MC that is placing it. - if hex.id == 'M22' && entity.id != 'MC' - path_to_mc = tile.paths.find { |p| p.edges[0].num == 5 } - return false unless path_to_mc - - exit_out = tile.paths.find { |p| p.town == path_to_mc.town && p != path_to_mc }.edges[0].num - @m22_adjacent_hexes ||= { 0 => 'N21', 1 => 'M20', 2 => 'L21', 3 => 'L23', 4 => 'M24' } - return @game.hex_by_id(@m22_adjacent_hexes[exit_out]).tile.exits.include?((exit_out + 3) % 6) - end super end diff --git a/lib/engine/game/g_1822_pnw/entities.rb b/lib/engine/game/g_1822_pnw/entities.rb index f836db6417..04c94f552e 100644 --- a/lib/engine/game/g_1822_pnw/entities.rb +++ b/lib/engine/game/g_1822_pnw/entities.rb @@ -211,8 +211,10 @@ module Entities { type: 'tile_lay', owner_type: 'corporation', - when: 'track', - count: 2, + when: %w[track special_track], + must_lay_together: true, + lay_count: 2, + upgrade_count: 1, reachable: true, closed_when_used_up: true, hexes: [], diff --git a/lib/engine/game/g_1822_pnw/game.rb b/lib/engine/game/g_1822_pnw/game.rb index 896320aaea..531a43eecb 100644 --- a/lib/engine/game/g_1822_pnw/game.rb +++ b/lib/engine/game/g_1822_pnw/game.rb @@ -80,11 +80,11 @@ def price_movement_chart ] end + MUST_SELL_IN_BLOCKS = true SELL_MOVEMENT = :left_per_10_if_pres_else_left_one PRIVATE_TRAINS = %w[P1 P2 P3 P4 P5 P6].freeze EXTRA_TRAIN_PERMANENTS = %w[2P LP].freeze PRIVATE_MAIL_CONTRACTS = %w[P9].freeze - PRIVATE_CLOSE_AFTER_PASS = %w[P11].freeze PRIVATE_PHASE_REVENUE = %w[].freeze # Stub for 1822 specific code IMPASSABLE_HEX_COLORS = %i[gray red blue].freeze diff --git a/lib/engine/game/g_1822_pnw/step/buy_sell_par_shares.rb b/lib/engine/game/g_1822_pnw/step/buy_sell_par_shares.rb index 0054a3b98f..ecebf1e70f 100644 --- a/lib/engine/game/g_1822_pnw/step/buy_sell_par_shares.rb +++ b/lib/engine/game/g_1822_pnw/step/buy_sell_par_shares.rb @@ -15,6 +15,10 @@ def actions(entity) @converting_major && entity == current_entity ? ['choose'] : super end + def description + 'Bid or buy/sell shares' + end + def ipo_type(corporation) case @game.major_formation_status(corporation, player: current_entity) when :parable, :convertable then :par diff --git a/lib/engine/game/g_1822_pnw/step/special_track.rb b/lib/engine/game/g_1822_pnw/step/special_track.rb index 3900045551..21ba0f1f4c 100644 --- a/lib/engine/game/g_1822_pnw/step/special_track.rb +++ b/lib/engine/game/g_1822_pnw/step/special_track.rb @@ -149,6 +149,8 @@ def process_lay_tile_extra_track_cube(action) @extra_laided_track = true end check_company_closing(ability) + + handle_extra_tile_lay_company(ability, action.entity) end def process_lay_tile_portage_company(action) diff --git a/lib/engine/game/g_1825/game.rb b/lib/engine/game/g_1825/game.rb index 88a401cd2b..b27f7e821a 100644 --- a/lib/engine/game/g_1825/game.rb +++ b/lib/engine/game/g_1825/game.rb @@ -1195,7 +1195,7 @@ def check_bankrupt!(entity) close_corporation(entity, quiet: true) end - def hex_blocked_by_ability?(_entity, abilities, hex) + def hex_blocked_by_ability?(_entity, abilities, hex, _tile = nil) Array(abilities).any? { |ability| ability.hexes.include?(hex.id) } end diff --git a/lib/engine/game/g_1825/meta.rb b/lib/engine/game/g_1825/meta.rb index fe10dff5e4..ccb4eb2816 100644 --- a/lib/engine/game/g_1825/meta.rb +++ b/lib/engine/game/g_1825/meta.rb @@ -153,17 +153,17 @@ def self.check_options(options, _min_players, max_players) if optional_rules.empty? case max_players when 2 - return 'No Unit(s) selected. Will use Unit 3 based on player count' + return { info: 'No Unit(s) selected. Will use Unit 3 based on player count' } when 3 - return 'No Unit(s) selected. Will use Unit 2 based on player count' + return { info: 'No Unit(s) selected. Will use Unit 2 based on player count' } when 4, 5 - return 'No Unit(s) selected. Will use Unit 1 based on player count' + return { info: 'No Unit(s) selected. Will use Unit 1 based on player count' } when 6, 7 - return 'No Unit(s) selected. Will use Units 1+2 based on player count' + return { info: 'No Unit(s) selected. Will use Units 1+2 based on player count' } when 8 - return 'No Unit(s) selected. Will use Units 1+2+3 based on player count' + return { info: 'No Unit(s) selected. Will use Units 1+2+3 based on player count' } else - return 'No Unit(s) selected. Will use Units 1+2+3 and R1+R2+R3 based on player count' + return { info: 'No Unit(s) selected. Will use Units 1+2+3 and R1+R2+R3 based on player count' } end end @@ -199,21 +199,25 @@ def self.check_options(options, _min_players, max_players) regionals[3] = true if optional_rules.include?(:r3) if !units[1] && !units[2] && !units[3] && !optional_rules.empty? - return 'Must select at least one Unit if using other options' + return { error: 'Must select at least one Unit if using other options' } end - return 'Cannot combine Units 1 and 3 without Unit 2' if units[1] && !units[2] && units[3] - return 'Cannot add Regionals without Unit 1' if !regionals.keys.empty? && !units[1] - return 'Cannot add K5 without Unit 2' if kits[5] && !units[2] - return 'Cannot add K7 without Unit 1' if kits[7] && !units[1] - return 'K2 not supported with just Unit 3' if kits[2] && !units[1] && !units[2] && units[3] - return 'K2 not supported without K3' if kits[2] && !kits[3] - return 'Cannot use extra Unit 3 trains without Unit 3' if !units[3] && optional_rules.include?(:u3p) - return 'Cannot use K1 or K6 with D1' if (kits[1] || kits[6]) && optional_rules.include?(:d1) - return 'Cannot use both bank options' if optional_rules.include?(:big_bank) && optional_rules.include?(:strict_bank) - return 'Variant DB1 not useful in a Unit 2 only game' if !units[1] && !units[3] && optional_rules.include?(:db1) - return 'Variant DB2 is for Unit 1' if !units[1] && optional_rules.include?(:db2) - return 'Variant DB3 is for Unit 3' if !units[3] && optional_rules.include?(:db3) - return 'Unit 4 requires Unit 3' if units4 && !units[3] + return { error: 'Cannot combine Units 1 and 3 without Unit 2' } if units[1] && !units[2] && units[3] + return { error: 'Cannot add Regionals without Unit 1' } if !regionals.keys.empty? && !units[1] + return { error: 'Cannot add K5 without Unit 2' } if kits[5] && !units[2] + return { error: 'Cannot add K7 without Unit 1' } if kits[7] && !units[1] + return { error: 'K2 not supported with just Unit 3' } if kits[2] && !units[1] && !units[2] && units[3] + return { error: 'K2 not supported without K3' } if kits[2] && !kits[3] + return { error: 'Cannot use extra Unit 3 trains without Unit 3' } if !units[3] && optional_rules.include?(:u3p) + return { error: 'Cannot use K1 or K6 with D1' } if (kits[1] || kits[6]) && optional_rules.include?(:d1) + if optional_rules.include?(:big_bank) && optional_rules.include?(:strict_bank) + return { error: 'Cannot use both bank options' } + end + if !units[1] && !units[3] && optional_rules.include?(:db1) + return { error: 'Variant DB1 not useful in a Unit 2 only game' } + end + return { error: 'Variant DB2 is for Unit 1' } if !units[1] && optional_rules.include?(:db2) + return { error: 'Variant DB3 is for Unit 3' } if !units[3] && optional_rules.include?(:db3) + return { error: 'Unit 4 requires Unit 3' } if units4 && !units[3] nil end diff --git a/lib/engine/game/g_1828/game.rb b/lib/engine/game/g_1828/game.rb index be7fe752d5..075464ca81 100644 --- a/lib/engine/game/g_1828/game.rb +++ b/lib/engine/game/g_1828/game.rb @@ -1404,7 +1404,7 @@ def remove_train(train) train.owner.remove_train(train) if train.owner&.system? end - def hex_blocked_by_ability?(entity, _ability, hex) + def hex_blocked_by_ability?(entity, _ability, hex, _tile = nil) return false if entity.name == 'C&P' && hex.id == 'C15' super diff --git a/lib/engine/game/g_1841/entities.rb b/lib/engine/game/g_1841/entities.rb index 5387880b00..2b71b31638 100644 --- a/lib/engine/game/g_1841/entities.rb +++ b/lib/engine/game/g_1841/entities.rb @@ -79,9 +79,9 @@ module Entities sym: 'SFMA', name: 'Strada Ferrata Maria Antonia', logo: '1841/SFMA', - coordinates: 'N19', + coordinates: 'R14', color: 'red', - tokens: [0], + tokens: [50], type: 'minor', shares: [40, 20, 20, 20], float_percent: 40, @@ -94,10 +94,10 @@ module Entities sym: 'SFLP', name: 'Strada Ferrata da Lucca a Pistoia', logo: '1841/SFLP', - coordinates: 'L17', + coordinates: 'P12', color: 'lightGreen', text_color: 'black', - tokens: [0], + tokens: [50], type: 'minor', shares: [40, 20, 20, 20], float_percent: 40, @@ -110,9 +110,9 @@ module Entities sym: 'SSFL', name: 'Società per la Strada Ferrata Leopolda', logo: '1841/SSFL', - coordinates: 'K18', + coordinates: 'Q11', color: 'violet', - tokens: [0, 0], + tokens: [50, 50], type: 'major', shares: [20, 10, 10, 10, 10, 10, 10, 10, 10], float_percent: 20, @@ -125,9 +125,9 @@ module Entities sym: 'IRSFF', name: 'Imperial Regia Strada Ferrata Ferdinandea', logo: '1841/IRSFF', - coordinates: %w[H7 P7], + coordinates: %w[F8 F16], color: 'orange', - tokens: [0, 0], + tokens: [50, 50], type: 'major', shares: [20, 10, 10, 10, 10, 10, 10, 10, 10], float_percent: 20, @@ -140,10 +140,10 @@ module Entities sym: 'SFTG', name: 'Strada Ferrata da Torina a Genova', logo: '1841/SFTG', - coordinates: %w[D9 F11], + coordinates: %w[H4 J6], city: 0, color: 'blue', - tokens: [0, 0], + tokens: [50, 50], type: 'major', shares: [20, 10, 10, 10, 10, 10, 10, 10, 10], float_percent: 20, @@ -156,11 +156,11 @@ module Entities sym: 'SFTN', name: 'Strada di Ferro da Torina a Novara', logo: '1841/SFTN', - coordinates: 'D9', + coordinates: 'H4', city: 1, color: 'sandyBrown', text_color: 'black', - tokens: [0, 0], + tokens: [50, 50], type: 'major', shares: [20, 10, 10, 10, 10, 10, 10, 10, 10], float_percent: 20, @@ -173,10 +173,10 @@ module Entities sym: 'SFTC', name: 'Strada di Ferro da Torino a Cuneo', logo: '1841/SFTC_V2', - coordinates: 'C14', + coordinates: 'M3', color: 'yellow', text_color: 'black', - tokens: [0, 0], + tokens: [50, 50], type: 'major', # version 2 shares: [20, 10, 10, 10, 10, 10, 10, 10, 10], # version 2 float_percent: 20, # version 2 diff --git a/lib/engine/game/g_1841/game.rb b/lib/engine/game/g_1841/game.rb index 557b1de215..71a504bf56 100644 --- a/lib/engine/game/g_1841/game.rb +++ b/lib/engine/game/g_1841/game.rb @@ -4,6 +4,7 @@ require_relative 'meta' require_relative 'entities' require_relative 'map' +require_relative 'stock_market' module Engine module Game @@ -13,6 +14,8 @@ class Game < Game::Base include Entities include Map + attr_reader :corporation_info + register_colors(black: '#16190e', blue: '#0189d1', brown: '#7b352a', @@ -46,14 +49,14 @@ class Game < Game::Base TRACK_RESTRICTION = :semi_restrictive MARKET = [ - %w[72 83 95 107 120 133 147 164 182 202 224 248 276 306 340p 377 419 465 516], - %w[63 72 82 93 104 116 128 142 158 175 195 216p 240 266 295 328 365 404 449], - %w[57 66 75 84 95 105 117 129 144p 159 177 196 218 242 269 298 331 367 408], - %w[54 62 71 80 90 100p 111 123 137 152 169 187 208 230 256 284], - %w[52 59 68p 77 86 95 106 117 130 145 160 178 198 219], - %w[47 54 62 70 78 87 96 107 118 131 146 162 180], - %w[41 47 54 61 68 75 84 93 103 114 127 141], - %w[34 39 45 50 57 63 70 77 86 95 106], + %w[72 83 95 107 120 133 147 164 182 202 224m 248 276 306 340x 377n 419 465 516], + %w[63 72 82 93 104 116 128 142 158 175 195m 216x 240 266 295 328n 365 404 449], + %w[57 66 75 84 95 105 117 129 144p 159 177m 196 218 242 269 298n 331 367 408], + %w[54 62 71 80 90 100p 111 123 137 152 169m 187 208 230 256 284n], + %w[52 59 68p 77 86 95 106 117 130 145 160m 178 198 219], + %w[47 54 62 70 78 87 96 107 118 131 146m 162 180], + %w[41 47 54 61 68 75 84 93 103 114 127m 141], + %w[34 39 45 50 57 63 70 77 86 95 106m], %w[27 31 36 40 45 50 56 62 69 76], %w[21 24 27 31 35 39 43 48 53], %w[16 18 20 23 26 29 32 35], @@ -61,17 +64,14 @@ class Game < Game::Base %w[8 9 10 11 13 14], ].freeze - MARKET_TEXT = { - par: 'Par value', - no_cert_limit: 'Corporation shares do not count towards cert limit', - unlimited: 'Corporation shares can be held above 60%', - multiple_buy: 'Can buy more than one share in the corporation per turn', - close: 'Corporation closes', - endgame: 'End game trigger', - liquidation: 'Liquidation', - repar: 'Minor company value', - ignore_one_sale: 'Ignore first share sold when moving price', - }.freeze + MARKET_TEXT = Base::MARKET_TEXT.merge(par_1: 'Major Corporation Par', + par: 'Major/Minor Corporation Par', + max_price: 'Maximum price for a minor', + max_price_1: 'Maximum price before phase 8').freeze + + STOCKMARKET_COLORS = Base::STOCKMARKET_COLORS.merge(par_1: :green, + max_price: :orange, + max_price_1: :blue).freeze PHASES = [ { @@ -96,6 +96,7 @@ class Game < Game::Base tiles: %i[yellow green], operating_rounds: 2, status: %w[one_tile_per_base_max_2 start_non_hist concessions_removed], + events: [{ 'type' => 'phase4_regions' }], }, { name: '5', @@ -104,6 +105,7 @@ class Game < Game::Base tiles: %i[yellow green brown], operating_rounds: 3, status: %w[one_tile_per_or start_non_hist], + events: [{ 'type' => 'phase5_regions' }], }, { name: '6', @@ -131,6 +133,13 @@ class Game < Game::Base }, ].freeze + EVENTS_TEXT = Base::EVENTS_TEXT.merge( + 'phase4_regions' => ['Phase4 Regions', + 'Conservative Zone border is eliminated; The Austrian possesions are limited to Veneto'], + 'phase5_regions' => ['Phase5 Regions', + 'Austrian possessions are eliminated; 1859-1866 Austrian border is deleted'], + ) + TRAINS = [ { name: '2', @@ -186,17 +195,180 @@ class Game < Game::Base }, ].freeze - HOME_TOKEN_TIMING = :start + HOME_TOKEN_TIMING = :par SELL_BUY_ORDER = :sell_buy BANKRUPTCY_ENDS_GAME_AFTER = :all_but_one GAME_END_CHECK = { bankrupt: :immediate, stock_market: :immediate, bank: :current_or }.freeze - # Per base (needs special code in track step) + # Per railhead/base (needs special code in track step) TILE_LAYS = [ { lay: true, upgrade: true, cost: 0 }, + { lay: true, upgrade: true, cost: 0, cannot_reuse_same_hex: true }, + { lay: true, upgrade: true, cost: 0, cannot_reuse_same_hex: true }, + { lay: true, upgrade: true, cost: 0, cannot_reuse_same_hex: true }, + { lay: true, upgrade: true, cost: 0, cannot_reuse_same_hex: true }, ].freeze + def init_graph + Graph.new(self, check_tokens: true) + end + + # load non-standard corporation info + def load_corporation_extended + game_corporations.to_h do |cm| + corp = @corporations.find { |m| m.name == cm[:sym] } + [corp, { historical: cm[:historical], startable: cm[:startable] }] + end + end + + def init_stock_market + G1841::StockMarket.new(game_market, self.class::CERT_LIMIT_TYPES, + multiple_buy_types: self.class::MULTIPLE_BUY_TYPES, game: self) + end + + def setup + # used for tokens and for track in phase 2 + @region_graph = Graph.new(self, check_tokens: true, check_regions: true) + @selected_graph = @region_graph + + @corporation_info = load_corporation_extended + modify_regions(2, true) + @border_paths = nil + end + + def select_track_graph + @selected_graph = if @phase.name == '2' + @region_graph + else + @graph + end + end + + def select_token_graph + @selected_graph = @region_graph + end + + def graph_for_entity(_entity) + @selected_graph + end + + def token_graph_for_entity(_entity) + @region_graph + end + + def clear_graph_for_entity(entity) + super + @border_paths = nil + end + + def clear_token_graph_for_entity(entity) + super + @border_paths = nil + end + + def event_phase4_regions! + modify_regions(2, false) + modify_regions(4, true) + @border_paths = nil + @log << 'Border change: Conservative Zone border is eliminated; The Austrian possesions are limited to Veneto' + end + + def event_phase5_regions! + modify_regions(4, false) + modify_regions(5, true) + @border_paths = nil + @log << 'Border change: Austrian possessions are eliminated; 1859-1866 Austrian border is deleted' + end + + def modify_regions(phase, add) + REGIONS_BY_PHASE[phase].each do |coord, edges| + hex = hex_by_id(coord) + edges.each do |edge| + if add + add_region(hex, edge) + add_region(hex.neighbors[edge], Hex.invert(edge)) + else + remove_region(hex, edge) + remover_region(hex.neighbors[edge], Hex.invert(edge)) + end + end + end + end + + def add_region(hex, edge) + remove_region(hex, edge) + hex.tile.borders << Part::Border.new(edge, 'province', nil, 'red') + end + + def remove_region(hex, edge) + old = hex.tile.borders.find { |b| b.edge == edge } + hex.tile.borders.delete(old) if old + end + + def calc_border_paths + border_paths = {} + @hexes.each do |hex| + hex_border_edges = hex.tile.borders.select { |b| b.type == :province }.map(&:edge) + next if hex_border_edges.empty? + + hex.tile.paths.each do |path| + border_paths[path] = true unless (path.edges & hex_border_edges).empty? + end + end + border_paths + end + + def border_paths + @border_paths ||= calc_border_paths + end + + def graph_border_paths(_entity) + border_paths + end + + def region_border?(hex, edge) + hex.tile.borders.any? { |b| (b.type == :province) && (b.edge == edge) } + end + + def major?(entity) + entity.corporation? && (entity.type == :major) + end + + # returns a list of cities with tokens for this corporation + def railheads(entity) + return [] unless entity.corporation? + + entity.tokens.select { |t| t.used && t.city && !t.city.pass? }.map(&:city) + end + + def skip_token?(_graph, _corporation, city) + city.pass? + end + + # FIXME: need to deal with SFMA and non-historical corps + def place_home_token(corporation) + return if corporation.tokens.first&.used # FIXME: will this work if this token is sold to another corp? + + Array(corporation.coordinates).each do |coord| + hex = hex_by_id(coord) + tile = hex&.tile + cities = tile.cities + city = cities.find { |c| c.reserved_by?(corporation) } || cities.first + token = corporation.find_token_by_type + + @log << "#{corporation.name} places a token on #{hex.name}" + city.place_token(corporation, token) + end + @graph.clear + end + + def legal_tile_rotation?(_entity, _hex, tile) + return true unless NO_ROTATION_TILES.include?(tile.name) + + tile.rotation.zero? + end + def transfer_share(share, new_owner) corp = share.corporation corp.share_holders[share.owner] -= share.percent @@ -222,6 +394,32 @@ def can_par?(corporation, entity) super end + + # FIXME + def stock_round + Engine::Round::Stock.new(self, [ + Engine::Step::DiscardTrain, + # G1841::Step::BuyTOkens, + Engine::Step::BuySellParShares, + ]) + end + + # FIXME + def operating_round(round_num) + Engine::Round::Operating.new(self, [ + G1841::Step::Track, + Engine::Step::Token, # FIXME + Engine::Step::Route, + Engine::Step::Dividend, + # G1841::Step::BuyToken, + Engine::Step::DiscardTrain, + Engine::Step::BuyTrain, + # G1841::Step::SellCorpShares, + # G1841::Step::BuyCorpShares, + # G1841::Step::Merge, + # G1841::Step::Transform, + ], round_num: round_num) + end end end end diff --git a/lib/engine/game/g_1841/map.rb b/lib/engine/game/g_1841/map.rb index bc8024bb88..96b05c08c3 100644 --- a/lib/engine/game/g_1841/map.rb +++ b/lib/engine/game/g_1841/map.rb @@ -71,7 +71,7 @@ module Map { 'count' => 1, 'color' => 'yellow', - 'code' => 'city=revenue:10,loc:center;town=revenue:20;path=a:0,b:_0;path=a:_1,b:4;path=a:_0,b:_1;label=V', + 'code' => 'city=revenue:10,loc:center;town=revenue:20;path=a:1,b:_0;path=a:_1,b:5;path=a:_0,b:_1;label=V', }, '602' => { @@ -151,152 +151,195 @@ module Map }.freeze # rubocop:enable Layout/LineLength + NO_ROTATION_TILES = %w[ + 601 + ].freeze + LOCATION_NAMES = { - A6: 'Lyon', - A8: 'Fréjus', - C6: 'Aosta', - C14: 'Cuneo', - D1: 'Lausanne & Lötschberg', - D9: 'Torino', - D17: 'Marseille', - E2: 'Simplon', - E10: 'Asti', - E16: 'Albena', - F7: 'Vercelli & Novara', - F11: 'Alessandria', - F15: 'Savona', - G2: 'Gotthard', - G4: 'Lugano', - G6: 'Buso Arsizio', - G14: 'Genova', - H5: 'Como', - H7: 'Milano', - H9: 'Pavia', - I6: 'Bergamo', - I10: 'Piacenza', - J9: 'Cremona', - J17: 'La Spezia', - K2: 'Tirano & Edolo', - K6: 'Brescia', - K12: 'Parma', - K18: 'Pisa', - K20: 'Livorno', - L9: 'Montova', - L13: "Reggio nell'Emilia", - L17: 'Lucca', - M4: 'Trento & Brennero', - M8: 'Verona', - M12: 'Modena', - M18: 'Pistoia & Prato', - M22: 'Roma', - N7: 'Vicenza', - N13: 'Bologna', - N19: 'Firenze', - N21: 'Siena', - O8: 'Padova', - O10: 'Rovigo', - O12: 'Ferrara', - O20: 'Arezzo', - P7: 'Venezia', - P5: 'Treviso', - P13: 'Ravenna', - P15: 'Forli & Cesena', - Q6: 'East', - Q16: 'Adriatic Coast', + E1: 'Lyon', + G1: 'Fréjus', + E3: 'Aosta', + M3: 'Cuneo', + a4: 'Lausanne & Lötschberg', + H4: 'Torino', + P4: 'Marseille', + A5: 'Simplon', + I5: 'Asti', + O5: 'Albena', + F6: 'Vercelli & Novara', + J6: 'Alessandria', + N6: 'Savona', + A7: 'Gotthard', + C7: 'Lugano', + E7: 'Buso Arsizio', + M7: 'Genova', + D8: 'Como', + F8: 'Milano', + H8: 'Pavia', + E9: 'Bergamo', + I9: 'Piacenza', + H10: 'Cremona', + P10: 'La Spezia', + A11: 'Tirano & Edolo', + E11: 'Brescia', + K11: 'Parma', + Q11: 'Pisa', + S11: 'Livorno', + H12: 'Montova', + L12: "Reggio nell'Emilia", + P12: 'Lucca', + C13: 'Trento & Brennero', + G13: 'Verona', + K13: 'Modena', + Q13: 'Pistoia & Prato', + U13: 'Roma', + F14: 'Vicenza', + L14: 'Bologna', + R14: 'Firenze', + T14: 'Siena', + G15: 'Padova', + I15: 'Rovigo', + K15: 'Ferrara', + S15: 'Arezzo', + F16: 'Venezia', + D16: 'Treviso', + L16: 'Ravenna', + N16: 'Forli & Cesena', + E17: 'East', + O17: 'Adriatic Coast', }.freeze # rubocop:disable Layout/LineLength HEXES = { white: { # no cities, towns - %w[D5 E6 O6 J7 E8 G8 I8 K8 F9 N9 P9 C10 G10 K10 M10 D11 L11 N11 C12 E12 D13 O14 L19 M20 L21] => '', - %w[A10 B13 D15 H11 M14 O16 P17] => 'upgrade=cost:50,terrain:mountain', - %w[I12] => 'border=edge:5,type:impassable;upgrade=cost:50,terrain:mountain', - %w[P3 P11] => 'upgrade=cost:50,terrain:swamp', - %w[I2 J11 N15] => 'border=edge:0,type:impassable', - %w[D7] => 'border=edge:2,type:impassable', - %w[F5] => 'border=edge:4,type:impassable', - %w[F3] => 'border=edge:5,type:impassable', - %w[H3] => 'border=edge:0,type:impassable;border=edge:1,type:impassable', - %w[L7 J13] => 'border=edge:2,type:impassable;border=edge:3,type:impassable', - %w[B9] => 'border=edge:2,type:impassable;border=edge:4,type:impassable;upgrade=cost:50,terrain:mountain', - %w[H15 I16] => 'border=edge:3,type:impassable;border=edge:4,type:impassable;upgrade=cost:50,terrain:mountain', - %w[C8] => 'border=edge:0,type:impassable;border=edge:1,type:impassable;border=edge:3,type:impassable', - %w[J3] => 'border=edge:0,type:impassable;border=edge:1,type:impassable;border=edge:5,type:impassable', - %w[I4] => 'border=edge:3,type:impassable;border=edge:4,type:impassable;border=edge:5,type:impassable', - %w[K4] => 'border=edge:2,type:impassable;border=edge:5,type:impassable;border=edge:0,type:impassable', - %w[M6] => 'border=edge:0,type:impassable;border=edge:2,type:impassable;border=edge:4,type:impassable;border=edge:5,type:impassable', + %w[D4 E5 E15 F10 G5 G7 G9 G11 H6 H14 H16 I3 I7 I11 I13 J4 J12 J14 K3 K5 L4 M15 R12 S13 T12] => '', + %w[I1 L2 N4 J8 M13 O15 P16] => 'upgrade=cost:50,terrain:mountain', + %w[K9] => 'border=edge:5,type:impassable;upgrade=cost:50,terrain:mountain', + %w[B16 J16] => 'upgrade=cost:50,terrain:swamp', + %w[A9 J10 N14] => 'border=edge:0,type:impassable', + %w[F4] => 'border=edge:2,type:impassable', + %w[D6] => 'border=edge:4,type:impassable', + %w[B6] => 'border=edge:5,type:impassable', + %w[B8] => 'border=edge:0,type:impassable;border=edge:1,type:impassable', + %w[F12 L10] => 'border=edge:2,type:impassable;border=edge:3,type:impassable', + %w[H2] => 'border=edge:2,type:impassable;border=edge:4,type:impassable;upgrade=cost:50,terrain:mountain', + %w[N8 O9] => 'border=edge:3,type:impassable;border=edge:4,type:impassable;upgrade=cost:50,terrain:mountain', + %w[G3] => 'border=edge:0,type:impassable;border=edge:1,type:impassable;border=edge:3,type:impassable', + %w[B10] => 'border=edge:0,type:impassable;border=edge:1,type:impassable;border=edge:5,type:impassable', + %w[C9] => 'border=edge:3,type:impassable;border=edge:4,type:impassable;border=edge:5,type:impassable', + %w[C11] => 'border=edge:2,type:impassable;border=edge:5,type:impassable;border=edge:0,type:impassable', + %w[E13] => 'border=edge:0,type:impassable;border=edge:2,type:impassable;border=edge:4,type:impassable;border=edge:5,type:impassable', # towns - %w[E10 I10 O10] => 'town=revenue:0', - %w[P13] => 'town=revenue:0;upgrade=cost:50,terrain:swamp', - %w[F15 E16] => 'town=revenue:0;upgrade=cost:50,terrain:mountain;border=edge:3,type:impassable', - %w[J17 N21] => 'town=revenue:0;border=edge:4,type:impassable', - %w[O20] => 'town=revenue:0;border=edge:1,type:impassable;border=edge:3,type:impassable', - %w[F7 P15 M18] => 'town=revenue:0;town=revenue:0', + %w[I5 I9 I15] => 'town=revenue:0', + %w[L16] => 'town=revenue:0;upgrade=cost:50,terrain:swamp', + %w[N6 O5] => 'town=revenue:0;upgrade=cost:50,terrain:mountain;border=edge:3,type:impassable', + %w[P10 T14] => 'town=revenue:0;border=edge:4,type:impassable', + %w[S15] => 'town=revenue:0;border=edge:1,type:impassable;border=edge:3,type:impassable', + %w[F6 N16 Q13] => 'town=revenue:0;town=revenue:0', # cities - %w[P5 G6 H9 J9 L9 F11 K12 M12 O12 L13 K20] => 'city=revenue:0', - %w[I6 O8 N13] => 'city=revenue:0;label=Y', - %w[P7] => 'city=revenue:0;upgrade=cost:50,terrain:swamp;label=V', - %w[N7] => 'city=revenue:0;border=edge:2,type:impassable', - %w[H5] => 'city=revenue:0;border=edge:3,type:impassable', - %w[M8] => 'city=revenue:0;border=edge:3,type:impassable;label=Y', - %w[G4] => 'city=revenue:0;border=edge:1,type:impassable;border=edge:2,type:impassable;border=edge:4,type:impassable', - %w[K6] => 'city=revenue:0;border=edge:3,type:impassable;border=edge:5,type:impassable;label=Y', + %w[D16 E7 H8 H10 H12 J6 K11 K13 K15 L12 S11] => 'city=revenue:0', + %w[E9 G15 L14] => 'city=revenue:0;label=Y', + %w[F16] => 'city=revenue:0;town=revenue:0,loc:5;upgrade=cost:50,terrain:swamp;label=V', + %w[F14] => 'city=revenue:0;border=edge:2,type:impassable', + %w[D8] => 'city=revenue:0;border=edge:3,type:impassable', + %w[G13] => 'city=revenue:0;border=edge:3,type:impassable;label=Y', + %w[C7] => 'city=revenue:0;border=edge:1,type:impassable;border=edge:2,type:impassable;border=edge:4,type:impassable', + %w[E11] => 'city=revenue:0;border=edge:3,type:impassable;border=edge:5,type:impassable;label=Y', }, yellow: { # passes - %w[O4 G12 K14 L15 C16] => 'pass=revenue:0;upgrade=cost:100', - %w[N5] => 'pass=revenue:0;border=edge:1,type:impassable;upgrade=cost:100', - %w[F13 E14 O18] => 'pass=revenue:0;border=edge:0,type:impassable;upgrade=cost:100', - %w[M16] => 'pass=revenue:0;border=edge:5,type:impassable;upgrade=cost:100', - %w[K16] => 'pass=revenue:0;border=edge:0,type:impassable;border=edge:1,type:impassable;upgrade=cost:100', - %w[J15] => 'pass=revenue:0;border=edge:1,type:impassable;border=edge:2,type:impassable;upgrade=cost:100', - %w[N17] => 'pass=revenue:0;border=edge:2,type:impassable;border=edge:3,type:impassable;upgrade=cost:100', - %w[L5] => 'pass=revenue:0;border=edge:0,type:impassable;border=edge:2,type:impassable;border=edge:5,type:impassable;upgrade=cost:100', - %w[H13] => 'pass=revenue:0;border=edge:0,type:impassable;border=edge:1,type:impassable;border=edge:5,type:impassable;upgrade=cost:100', - %w[I14] => 'pass=revenue:0;border=edge:0,type:impassable;border=edge:1,type:impassable;border=edge:2,type:impassable;border=edge:5,type:impassable;upgrade=cost:100', + %w[C15 K7 M11 N12 O3] => 'pass=revenue:0;upgrade=cost:100', + %w[D14] => 'pass=revenue:0;border=edge:1,type:impassable;upgrade=cost:100', + %w[L6 M5 Q15] => 'pass=revenue:0;border=edge:0,type:impassable;upgrade=cost:100', + %w[O13] => 'pass=revenue:0;border=edge:5,type:impassable;upgrade=cost:100', + %w[O11] => 'pass=revenue:0;border=edge:0,type:impassable;border=edge:1,type:impassable;upgrade=cost:100', + %w[N10] => 'pass=revenue:0;border=edge:1,type:impassable;border=edge:2,type:impassable;upgrade=cost:100', + %w[P14] => 'pass=revenue:0;border=edge:2,type:impassable;border=edge:3,type:impassable;upgrade=cost:100', + %w[D12] => 'pass=revenue:0;border=edge:0,type:impassable;border=edge:2,type:impassable;border=edge:5,type:impassable;upgrade=cost:100', + %w[L8] => 'pass=revenue:0;border=edge:0,type:impassable;border=edge:1,type:impassable;border=edge:5,type:impassable;upgrade=cost:100', + %w[M9] => 'pass=revenue:0;border=edge:0,type:impassable;border=edge:1,type:impassable;border=edge:2,type:impassable;border=edge:5,type:impassable;upgrade=cost:100', # cities - %w[H7] => 'city=revenue:60;path=a:_0,b:3,terminal:1;path=a:_0,b:4,terminal:1;label=M', - %w[L17] => 'city=revenue:20;path=a:_0,b:1;path=a:_0,b:5', - %w[D9] => 'city=revenue:40,loc:1;city=revenue:40,loc:3.5;path=a:_0,b:1;path=a:_0,b:5;path=a:_1,b:4;label=T', - %w[N19] => 'city=revenue:30,loc:5;city=revenue:30,loc:2.5;path=a:_0,b:1;path=a:_0,b:5;path=a:_1,b:2;label=Y', - %w[C14] => 'city=revenue:30;path=a:_0,b:3;path=a:_0,b:4;path=a:_0,b:5;upgrade=cost:50,terrain:mountain;label=Y', - %w[K18] => 'city=revenue:20;path=a:_0,b:0;path=a:_0,b:5;path=a:_0,b:4;border=edge:3,type:impassable', - %w[G14] => 'city=revenue:0;border=edge:4,type:impassable;upgrade=cost:50,terrain:mountain;label=G', + %w[F8] => 'city=revenue:60;path=a:_0,b:3,terminal:1;path=a:_0,b:4,terminal:1;label=M', + %w[P12] => 'city=revenue:20;path=a:_0,b:1;path=a:_0,b:5', + %w[H4] => 'city=revenue:40,loc:1;city=revenue:40,loc:3.5;path=a:_0,b:1;path=a:_0,b:5;path=a:_1,b:4;label=T', + %w[R14] => 'city=revenue:30,loc:5;city=revenue:30,loc:2.5;path=a:_0,b:1;path=a:_0,b:5;path=a:_1,b:2;label=Y', + %w[M3] => 'city=revenue:30;path=a:_0,b:3;path=a:_0,b:4;path=a:_0,b:5;upgrade=cost:50,terrain:mountain;label=Y', + %w[Q11] => 'city=revenue:20;path=a:_0,b:0;path=a:_0,b:5;path=a:_0,b:4;border=edge:3,type:impassable', + %w[M7] => 'city=revenue:0;border=edge:4,type:impassable;upgrade=cost:50,terrain:mountain;label=G', }, green: { - %w[E2] => 'pass=revenue:0,size:2;upgrade=cost:200', - %w[A8] => 'pass=revenue:0,size:2;border=edge:5,type:impassable;upgrade=cost:200', + %w[A5] => 'pass=revenue:0,size:2;upgrade=cost:200', + %w[G1] => 'pass=revenue:0,size:2;border=edge:5,type:impassable;upgrade=cost:200', }, gray: { - %w[K2] => 'town=revenue:20;town=revenue:10;path=a:_0,b:1;path=a:_1,b:0', - %w[J5] => 'path=a:0,b:1;path=a:1,b:4;path=a:4,b:5;border=edge:2,type:impassable;border=edge:3,type:impassable', - %w[C6] => 'town=revenue:10;path=a:_0,b:4;border=edge:0,type:impassable;border=edge:5,type:impassable', + %w[A11] => 'town=revenue:20;town=revenue:10;path=a:_0,b:1;path=a:_1,b:0', + %w[D10] => 'path=a:0,b:1;path=a:1,b:4;path=a:4,b:5;border=edge:2,type:impassable;border=edge:3,type:impassable', + %w[E3] => 'town=revenue:10;path=a:_0,b:4;border=edge:0,type:impassable;border=edge:5,type:impassable', }, red: { - %w[D1] => 'offboard=revenue:white_0|gray_90|black_150;path=a:_0,b:5', - %w[G2] => 'offboard=revenue:white_20|gray_30|black_150;path=a:_0,b:0', - %w[M4] => 'offboard=revenue:white_20|gray_70|black_140,groups:Trento;path=a:_0,b:0;path=a:_0,b:1;path=a:_0,b:5', - %w[N3] => 'offboard=revenue:white_20|gray_70|black_140,groups:Trento,hide:1;path=a:_0,b:5', - %w[A6] => 'offboard=revenue:white_0|gray_140|black_200;path=a:_0,b:0', - %w[Q6] => 'offboard=revenue:white_50|gray_80|black_120,groups:East;path=a:_0,b:1;path=a:_0,b:2', - %w[Q4] => 'offboard=revenue:white_50|gray_80|black_120,groups:East,hide:1;path=a:_0,b:1', - %w[Q16] => 'offboard=revenue:white_10|gray_70|black_150;path=a:_0,b:1;path=a:_0,b:2', - %w[D17] => 'offboard=revenue:white_60|gray_100|black_150,groups:Marseille', - %w[C18 E18] => 'offboard=revenue:white_60|gray_100|black_150,groups:Marseille,hide:1;path=a:_0,b:3', - %w[M22] => 'offboard=revenue:white_10|gray_40|black_200,groups:Roma', - %w[O22 L23 N23] => 'offboard=revenue:white_10|gray_40|black_200,groups:Rmoe,hide:1;path=a:_0,b:3', + %w[a4] => 'offboard=revenue:white_0|gray_90|black_150;path=a:_0,b:5', + %w[A7] => 'offboard=revenue:white_20|gray_30|black_150;path=a:_0,b:0', + %w[C13] => 'offboard=revenue:white_20|gray_70|black_140,groups:Trento;path=a:_0,b:0;path=a:_0,b:1;path=a:_0,b:5', + %w[B14] => 'offboard=revenue:white_20|gray_70|black_140,groups:Trento,hide:1;path=a:_0,b:5', + %w[E1] => 'offboard=revenue:white_0|gray_140|black_200;path=a:_0,b:0', + %w[E17] => 'offboard=revenue:white_50|gray_80|black_120,groups:East;path=a:_0,b:1;path=a:_0,b:2', + %w[C17] => 'offboard=revenue:white_50|gray_80|black_120,groups:East,hide:1;path=a:_0,b:1', + %w[O17] => 'offboard=revenue:white_10|gray_70|black_150;path=a:_0,b:1;path=a:_0,b:2', + %w[P4] => 'offboard=revenue:white_60|gray_100|black_150,groups:Marseille', + %w[Q3 Q5] => 'offboard=revenue:white_60|gray_100|black_150,groups:Marseille,hide:1;path=a:_0,b:3', + %w[U13] => 'offboard=revenue:white_10|gray_40|black_200,groups:Roma', + %w[U15 V12 V14] => 'offboard=revenue:white_10|gray_40|black_200,groups:Rmoe,hide:1;path=a:_0,b:3', }, blue: { - %w[Q8] => 'town=revenue:40,loc:2;path=a:_0,b:2;icon=image:port', - %w[Q14] => 'town=revenue:20,loc:2;path=a:_0,b:2;icon=image:port', - %w[G16] => 'town=revenue:70,loc:3;path=a:_0,b:3;icon=image:port', - %w[F17] => 'town=revenue:10,loc:3;path=a:_0,b:3;icon=image:port', - %w[I18] => 'town=revenue:10,loc:4;path=a:_0,b:4;icon=image:port', - %w[J21] => 'town=revenue:20,loc:4;path=a:_0,b:4;icon=image:port', + %w[G17] => 'town=revenue:40,loc:2;path=a:_0,b:2;icon=image:port', + %w[M17] => 'town=revenue:20,loc:2;path=a:_0,b:2;icon=image:port', + %w[O7] => 'town=revenue:70,loc:3;path=a:_0,b:3;icon=image:port', + %w[P6] => 'town=revenue:10,loc:3;path=a:_0,b:3;icon=image:port', + %w[Q9] => 'town=revenue:10,loc:4;path=a:_0,b:4;icon=image:port', + %w[T10] => 'town=revenue:20,loc:4;path=a:_0,b:4;icon=image:port', }, }.freeze # rubocop:enable Layout/LineLength + + # just need the hex for one side - code will add the other + REGIONS_BY_PHASE = { + 2 => { + 'C7' => [0, 5], + 'E7' => [1, 2], + 'G7' => [1, 2], + 'I7' => [0, 1, 2], + 'J8' => [0, 1, 5], + 'K9' => [1, 2], + 'I9' => [1, 2, 3, 4], + 'J10' => [3, 4], + 'I11' => [0], + 'J12' => [2, 3], + 'I13' => [2, 3, 4], + 'J14' => [3, 4], + 'K15' => [3], + 'J16' => [2, 3], + 'P10' => [3, 5], + 'P12' => [2, 3], + 'O13' => [2, 3, 4], + 'O15' => [2, 3, 4], + 'P16' => [3], + }, + 4 => { + 'C7' => [0, 5], + 'F12' => [1], + 'H12' => [0, 1, 2], + 'I13' => [2, 3, 4], + 'J14' => [3, 4], + 'K15' => [3], + 'J16' => [2, 3], + }, + 5 => { + 'C7' => [0, 5], + }, + }.freeze + + AXES = { x: :number, y: :letter }.freeze end end end diff --git a/lib/engine/game/g_1841/step/track.rb b/lib/engine/game/g_1841/step/track.rb new file mode 100644 index 0000000000..51ccb158fb --- /dev/null +++ b/lib/engine/game/g_1841/step/track.rb @@ -0,0 +1,122 @@ +# frozen_string_literal: true + +require_relative '../../../step/track' + +module Engine + module Game + module G1841 + module Step + class Track < Engine::Step::Track + # extra state for figuring out which railheads were used by a tile lay + def round_state + super.merge({ old_tiles: [] }) + end + + def setup + @game.select_track_graph + super + @round.old_tiles = [] + @unused_railheads = {} + end + + def lay_tile_action(action, entity: nil, spender: nil) + old_tile = action.hex.tile + @previous_railheads = unused_railheads(entity || action.entity) unless @game.loading + super + @round.old_tiles << old_tile + @unused_railheads = {} + end + + def num_possible_lays(entity) + return 1 unless @game.major?(entity) + + case @game.phase.name + when '2' + @game.railheads(entity).size + when '3', '4' + [@game.railheads(entity).size, 2].min + else + 1 + end + end + + def can_lay_tile?(entity) + !entity.tokens.empty? && (@round.num_laid_track < num_possible_lays(entity)) + end + + def check_track_restrictions!(entity, old_tile, new_tile) + return if @game.loading || !entity.operator? + + raise GameError, 'Must connect to a different base' unless find_railhead(entity, @previous_railheads, old_tile, + new_tile) + + super + end + + def find_railhead(entity, railheads, old_tile, new_tile) + return nil if railheads.empty? + + graph = @game.graph_for_entity(entity) + old_paths = old_tile.paths # will this work if old_tile has been reusused already? + new_tile.paths.each do |np| + next unless graph.connected_paths(entity)[np] + next if old_paths.find { |path| np <= path } + + railheads.each do |t| + return t if graph.connected_paths_by_token(entity, t).include?(np) + end + end + + # if we are here, must be an upgraded city/town + new_tile.nodes each do |n| + railheads.each do |t| + return t if graph.connected_nodes_by_token(entity, t).include?(n) + end + end + + nil + end + + # create list of railheads that haven't been used by tile lays this step + def calc_unused_railheads(entity) + railheads = @game.railheads(entity) + @round.num_laid_track.times do |i| + # Find new paths on laid tile and determine which railhead it connects to + new_tile = @round.laid_hexes[i].tile + old_tile = @round.old_tiles[i] + railheads.delete(find_railhead(entity, railheads, old_tile, new_tile)) + end + railheads + end + + def unused_railheads(entity) + @unused_railheads[entity] ||= calc_unused_railheads(entity) + end + + def railhead_connected(entity, hex) + unused_railheads(entity).each do |t| + return true if @game.graph_for_entity(entity).connected_hexes_by_token(entity, t)[hex] + end + false + end + + def tracker_available_hex(entity, hex) + connected = railhead_connected(entity, hex) + return nil unless connected + + tile_lay = get_tile_lay(entity) + return nil unless tile_lay + + color = hex.tile.color + return nil if color == :white && !tile_lay[:lay] + return nil if color != :white && !tile_lay[:upgrade] + return nil if color != :white && tile_lay[:cannot_reuse_same_hex] && @round.laid_hexes.include?(hex) + return nil if ability_blocking_hex(entity, hex) + + connected + end + end + end + end + end +end diff --git a/lib/engine/game/g_1841/stock_market.rb b/lib/engine/game/g_1841/stock_market.rb new file mode 100644 index 0000000000..cc7718c40f --- /dev/null +++ b/lib/engine/game/g_1841/stock_market.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +module Engine + module Game + module G1841 + class StockMarket < Engine::StockMarket + def initialize(market, unlimited_types, multiple_buy_types: [], zigzag: nil, ledge_movement: nil, game: nil) + @game = game + super(market, unlimited_types, multiple_buy_types: multiple_buy_types, zigzag: zigzag, ledge_movement: ledge_movement) + end + + def right(corporation, coordinates) + if (corporation&.type == :minor && corporation&.share_price&.types&.include?(:max_price)) || + (@game.phase.name.to_i < 8 && corporation&.share_price&.types&.include?(:max_price_1)) + up(corporation, coordinates) + else + super + end + end + end + end + end +end diff --git a/lib/engine/game/g_1846/entities.rb b/lib/engine/game/g_1846/entities.rb index 6ee61648d8..cb7d6e9656 100644 --- a/lib/engine/game/g_1846/entities.rb +++ b/lib/engine/game/g_1846/entities.rb @@ -129,7 +129,7 @@ module Entities }, { type: 'assign_hexes', - when: 'owning_corp_or_turn', + when: %w[track_and_token route], hexes: %w[B8 C5 D14 I1 G19], count_per_or: 1, owner_type: 'corporation', @@ -168,9 +168,9 @@ module Entities name: 'Michigan Central', value: 40, revenue: 15, - desc: "The owning corporation may lay up to two extra $0 cost yellow tiles in the MC's '\ -'reserved hexes (B10, B12). The owning corporation does not need to be connected to those hexes. '\ -'If two tiles are laid, they must connect to each other.", + desc: "The owning corporation may lay up to two extra $0 cost yellow tiles in the MC's "\ + 'reserved hexes (B10, B12). The owning corporation does not need to be connected to those hexes. '\ + 'If two tiles are laid, they must connect to each other.', sym: 'MC', abilities: [{ type: 'blocks_hexes', owner_type: 'player', hexes: %w[B10 B12] }, { @@ -189,9 +189,9 @@ module Entities name: 'Ohio & Indiana', value: 40, revenue: 15, - desc: "The owning corporation may lay up to two extra $0 cost yellow tiles in the O&I''\ -'s reserved hexes (F14, F16). The owning corporation does not need to be connected to those hexes. '\ -'If two tiles are laid, they must connect to each other.", + desc: "The owning corporation may lay up to two extra $0 cost yellow tiles in the O&I's "\ + 'reserved hexes (F14, F16). The owning corporation does not need to be connected to those hexes. '\ + 'If two tiles are laid, they must connect to each other.', sym: 'O&I', abilities: [{ type: 'blocks_hexes', owner_type: 'player', hexes: %w[F14 F16] }, { diff --git a/lib/engine/game/g_1847_ae/entities.rb b/lib/engine/game/g_1847_ae/entities.rb index 6185a3b498..ee206a7b34 100644 --- a/lib/engine/game/g_1847_ae/entities.rb +++ b/lib/engine/game/g_1847_ae/entities.rb @@ -6,15 +6,186 @@ module Game module G1847AE module Entities COMPANIES = [ + { + name: 'Pfälzische Ludwigsbahn presidency', + value: 172, + revenue: 0, + desc: 'Comes with the President\'s certificate of Pfälzische Ludwigsbahn (L). '\ + 'Closes immediately.', + sym: 'PLP', + abilities: [{ type: 'shares', shares: 'L_0' }], + }, + { + name: 'Saarbrücker Private Railway', + value: 190, + revenue: 15, + desc: 'Comes with the president\'s certificate of Saarbrücker Eisenbahn (Saar). '\ + 'May not be sold to a corporation. '\ + 'Closes when Saar buys its first train.', + sym: 'SPR', + abilities: [{ type: 'no_buy' }, + { type: 'shares', shares: 'Saar_0' }, + { type: 'close', when: 'bought_train', corporation: 'Saar' }], + }, + { + name: 'Locomotive Firm Krauss & Co.', + value: 130, + revenue: 0, + desc: 'Every OR, first time a train is purchased from supply, this pays revenue '\ + 'equal to 10% of the train\'s cost and the stock price marker is moved right. '\ + 'If no train is purchased from supply in OR, no revenue is paid and the stock '\ + 'price marker is moved left. '\ + 'May not be sold to a corporation. '\ + 'May be sold to or purchased from the market. '\ + 'Never closes.', + sym: 'LFKC', + abilities: [{ type: 'no_buy' }], + }, + { + name: 'Rammelsbach', + value: 150, + revenue: 30, + min_price: 100, + max_price: 200, + desc: 'Revenue increases to 50M when a tile is laid in D9. '\ + 'May be sold to a corporation for 100 to 200M. '\ + 'Never closes.', + sym: 'R', + }, + { + name: 'Königsbach', + value: 110, + revenue: 5, + min_price: 15, + max_price: 40, + desc: 'Owning corporation may close this company to place a yellow tile on '\ + 'a mountain hex for free, in addition to normal track action. '\ + 'Otherwise closes in Phase 6E. '\ + 'May be sold to a corporation for 15 to 40M. '\ + 'Comes with a share of Pfälzische Ludwigsbahn (L).', + sym: 'K', + abilities: [ + { type: 'close', on_phase: '6E' }, + { type: 'shares', shares: 'L_1' }, + { + type: 'tile_lay', + hexes: %w[B4 + C5 + D4 + D8 + D10 + D12 + D14 + D20 + E3 + E5 + E7 + E9 + E11 + E15 + F4 + F10 + F14 + G11 + G13 + I15], + tiles: %w[1 3 4 7 8 9 55 56 58 69], + free: true, + when: 'track', + owner_type: 'corporation', + reachable: true, + count: 1, + consume_tile_lay: false, + closed_when_used_up: true, + special: false, + }, + ], + }, + { + name: 'Hochstätten', + value: 160, + revenue: 15, + min_price: 40, + max_price: 120, + desc: 'Owning corporation may close this company to place a yellow tile on '\ + 'a mountain hex for free, in addition to normal track action. '\ + 'Otherwise closes in Phase 6E. '\ + 'May be sold to a corporation for 40 to 120M. '\ + 'Comes with a share of Pfälzische Ludwigsbahn (L).', + sym: 'H', + abilities: [ + { type: 'close', on_phase: '6E' }, + { type: 'shares', shares: 'L_2' }, + { + type: 'tile_lay', + hexes: %w[B4 + C5 + D4 + D8 + D10 + D12 + D14 + D20 + E3 + E5 + E7 + E9 + E11 + E15 + F4 + F10 + F14 + G11 + G13 + I15], + tiles: %w[1 3 4 7 8 9 55 56 58 69], + free: true, + when: 'track', + owner_type: 'corporation', + reachable: true, + count: 1, + consume_tile_lay: false, + closed_when_used_up: true, + special: false, + }, + ], + }, + { + name: 'Weidenthal', + value: 135, + revenue: 10, + min_price: 25, + max_price: 75, + desc: 'Owning corporation may close this company to place a token for half the price. '\ + 'Otherwise closes in Phase 6E. '\ + 'May be sold to a corporation for 25 to 75M. '\ + 'Comes with a share of Pfälzische Ludwigsbahn (L).', + sym: 'W', + abilities: [ + { type: 'close', on_phase: '6E' }, + { type: 'shares', shares: 'L_3' }, + { + type: 'token', + owner_type: 'corporation', + when: 'token', + connected: true, + hexes: [], + discount: 0.5, + count: 1, + from_owner: true, + closed_when_used_up: true, + }, + ], + }, { name: 'Main-Neckar-Railway', value: 90, revenue: 20, desc: 'May be exchanged for an Investor share of the Hessische Ludwigsbahn (HLB), '\ - 'instead of buying a share, during a stock round in Phase 3+3 or later. ' \ - 'Automatically exchanged at the beginning of the first stock round in Phase 5+5.', + 'instead of buying a share, during a stock round in Phase 3+3 or later. '\ + 'Automatically exchanged at the beginning of the first stock round in Phase 5+5. '\ + 'May not be sold to a corporation. ', sym: 'MNR', - color: nil, abilities: [{ type: 'no_buy' }, { type: 'exchange', @@ -29,10 +200,10 @@ module Entities value: 75, revenue: 15, desc: 'May be exchanged for an Investor share of the Saarbrücker Eisenbahn (Saar), '\ - 'instead of buying a share, during a stock round in Phase 3+3 or later. ' \ - 'Automatically exchanged at the beginning of the first stock round in Phase 5+5.', + 'instead of buying a share, during a stock round in Phase 3+3 or later. '\ + 'Automatically exchanged at the beginning of the first stock round in Phase 5+5. '\ + 'May not be sold to a corporation. ', sym: 'SCR', - color: nil, abilities: [{ type: 'no_buy' }, { type: 'exchange', @@ -47,10 +218,10 @@ module Entities value: 85, revenue: 20, desc: 'May be exchanged for an Investor share of the Saarbrücker Eisenbahn (Saar), '\ - 'instead of buying a share, during a stock round in Phase 3+3 or later. ' \ - 'Automatically exchanged at the beginning of the first stock round in Phase 5+5.', + 'instead of buying a share, during a stock round in Phase 3+3 or later. '\ + 'Automatically exchanged at the beginning of the first stock round in Phase 5+5. '\ + 'May not be sold to a corporation. ', sym: 'VIW', - color: nil, abilities: [{ type: 'no_buy' }, { type: 'exchange', diff --git a/lib/engine/game/g_1847_ae/game.rb b/lib/engine/game/g_1847_ae/game.rb index 7d371ce98d..c280719a35 100644 --- a/lib/engine/game/g_1847_ae/game.rb +++ b/lib/engine/game/g_1847_ae/game.rb @@ -15,6 +15,8 @@ class Game < Game::Base include Map include Entities + attr_accessor :draft_finished + HOME_TOKEN_TIMING = :float TRACK_RESTRICTION = :semi_restrictive SELL_BUY_ORDER = :sell_buy @@ -60,7 +62,7 @@ class Game < Game::Base train_limit: 3, tiles: %i[yellow green], operating_rounds: 2, - status: %w[investor_exchange can_buy_companies], + status: %w[investor_exchange can_buy_companies can_buy_companies_from_other_players], }, { name: '4+4', @@ -68,7 +70,7 @@ class Game < Game::Base train_limit: 3, tiles: %i[yellow green], operating_rounds: 2, - status: %w[investor_exchange can_buy_companies], + status: %w[investor_exchange can_buy_companies can_buy_companies_from_other_players], }, { name: '5', @@ -76,7 +78,7 @@ class Game < Game::Base train_limit: 2, tiles: %i[yellow green brown], operating_rounds: 3, - status: %w[investor_exchange can_buy_companies], + status: %w[investor_exchange can_buy_companies can_buy_companies_from_other_players], }, { name: '5+5', @@ -84,7 +86,7 @@ class Game < Game::Base train_limit: 2, tiles: %i[yellow green brown], operating_rounds: 3, - status: ['can_buy_companies'], + status: %w[can_buy_companies can_buy_companies_from_other_players], }, { name: '6E', @@ -92,7 +94,7 @@ class Game < Game::Base train_limit: 2, tiles: %i[yellow green brown], operating_rounds: 3, - status: ['can_buy_companies'], + status: %w[can_buy_companies can_buy_companies_from_other_players], }, { name: '6+6', @@ -100,7 +102,7 @@ class Game < Game::Base train_limit: 2, tiles: %i[yellow green brown], operating_rounds: 3, - status: ['can_buy_companies'], + status: %w[can_buy_companies can_buy_companies_from_other_players], }, ].freeze @@ -152,6 +154,18 @@ class Game < Game::Base LAYOUT = :pointy + def init_round + G1847AE::Round::Draft.new(self, + [G1847AE::Step::Draft], + reverse_order: true,) + end + + def new_draft_round + @log << "-- Draft Round #{@turn} -- " + G1847AE::Round::Draft.new(self, + [G1847AE::Step::Draft],) + end + def stock_round Engine::Round::Stock.new(self, [ G1847AE::Step::Exchange, @@ -160,14 +174,14 @@ def stock_round end def operating_round(round_num) - Round::Operating.new(self, [ + Engine::Round::Operating.new(self, [ Engine::Step::Bankrupt, Engine::Step::Exchange, Engine::Step::SpecialTrack, Engine::Step::SpecialToken, Engine::Step::BuyCompany, Engine::Step::HomeToken, - Engine::Step::Track, + G1847AE::Step::Track, Engine::Step::Token, Engine::Step::Route, Engine::Step::Dividend, @@ -177,6 +191,24 @@ def operating_round(round_num) ], round_num: round_num) end + def next_round! + return super if @draft_finished + + clear_programmed_actions + @round = + case @round + when G1847AE::Round::Draft + reorder_players + new_operating_round + when Engine::Round::Operating + new_draft_round + end + end + + def l + corporation_by_id('L') + end + def saar corporation_by_id('Saar') end @@ -185,6 +217,10 @@ def hlb corporation_by_id('HLB') end + def r + company_by_id('R') + end + def init_share_pool G1847AE::SharePool.new(self) end @@ -207,10 +243,33 @@ def init_corporations(stock_market) end def setup + # Place stock market markers for two corporations that have their president shares drafted in initial auction + stock_market.set_par(l, stock_market.share_price([2, 1])) + stock_market.set_par(saar, stock_market.share_price([3, 1])) + + # Place L's home station in case there is a "short OR" during draft + hex = hex_by_id(l.coordinates) + tile = hex.tile + tile.cities.first.place_token(l, l.next_token) + # Reserve investor shares and add money for them to treasury [saar.shares[1], saar.shares[2], hlb.shares[1]].each { |s| s.buyable = false } - saar.cash += saar.par_price.price * 2 - hlb.cash += hlb.par_price.price + @bank.spend(saar.par_price.price * 2, saar) + @bank.spend(hlb.par_price.price * 1, hlb) + + @draft_finished = false + end + + def after_buy_company(player, company, _price) + abilities(company, :shares) do |ability| + ability.shares.each do |share| + share_pool.buy_shares(player, share, exchange: :free) + @bank.spend(share.corporation.par_price.price * share.percent / 10, share.corporation) + end + end + + # PLP company is only a temporary holder for the L presidency + company.close! if company.id == 'PLP' end def can_corporation_have_investor_shares_exchanged?(corporation) @@ -233,6 +292,20 @@ def place_home_token(corporation) ability = hlb.all_abilities.find { |a| a.description.include?('Two home stations') } hlb.remove_ability(ability) end + + # Cannot build in E9 before Phase 5 + def can_build_in_e9? + ['5', '5+5', '6E', '6+6'].include?(@phase.current[:name]) + end + + def action_processed(action) + super + + return if r.revenue == 50 || !action.is_a?(Action::LayTile) || action.hex.id != 'E9' + + r.revenue = 50 + @log << "Tile laid in E9 - #{r.name}'s revenue increased to 50M" + end end end end diff --git a/lib/engine/game/g_1847_ae/round/draft.rb b/lib/engine/game/g_1847_ae/round/draft.rb new file mode 100644 index 0000000000..1d7ce9ab5b --- /dev/null +++ b/lib/engine/game/g_1847_ae/round/draft.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +require_relative '../../../round/draft' + +module Engine + module Game + module G1847AE + module Round + class Draft < Engine::Round::Draft + def setup + skip_steps + next_entity! unless active_step + end + + def next_entity_index! + # First round of draft is performed in reverse player order, then it must be reversed back to normal + if @entity_index == @entities.size - 1 && @reverse_order + @entities.reverse! + @reverse_order = false + end + + super + end + + def after_process(_action) + return if active_step + + next_entity! + end + + def next_entity! + next_entity_index! + if finished? + @game.draft_finished = all_drafted? + return + end + + @steps.each(&:unpass!) + skip_steps + next_entity! unless active_step + end + + def all_drafted? + @game.companies.all? { |c| c.owner || c.closed? } + end + + def finished? + all_drafted? || @entities.all?(&:passed?) + end + end + end + end + end +end diff --git a/lib/engine/game/g_1847_ae/step/draft.rb b/lib/engine/game/g_1847_ae/step/draft.rb new file mode 100644 index 0000000000..22988bc12b --- /dev/null +++ b/lib/engine/game/g_1847_ae/step/draft.rb @@ -0,0 +1,77 @@ +# frozen_string_literal: true + +require_relative '../../../step/simple_draft' + +module Engine + module Game + module G1847AE + module Step + class Draft < Engine::Step::SimpleDraft + attr_reader :grouped_companies + + ACTIONS = %w[bid pass].freeze + + def setup + @companies = @game.companies.select { |c| c.owner.nil? && !c.closed? } + @companies = @companies.sort_by { |item| [item.revenue, item.value] } + end + + def actions(entity) + return [] unless entity == current_entity + return [] if @acted + return [] unless can_buy_any?(entity) + + ACTIONS + end + + def can_buy_any?(player) + @companies.any? { |company| player.cash >= min_bid(company) } + end + + def active? + true + end + + def tiered_auction_companies + @companies.group_by(&:revenue).values + end + + def description + 'Draft Private Companies' + end + + def process_bid(action, _suppress_log = false) + action.entity.unpass! + company = action.company + player = action.entity + price = action.price + + company.owner = player + player.companies << company + player.spend(price, @game.bank) + + @companies.delete(company) + + @log << "#{player.name} buys #{company.name} for #{@game.format_currency(price)}" + + @game.after_buy_company(player, company) + end + + def process_pass(action) + super + action.entity.pass! + end + + def log_skip(entity) + @log << "#{entity.name} cannot afford any company and passes" + end + + def skip! + super + current_entity.pass! unless @acted + end + end + end + end + end +end diff --git a/lib/engine/game/g_1847_ae/step/track.rb b/lib/engine/game/g_1847_ae/step/track.rb new file mode 100644 index 0000000000..f78c7754a8 --- /dev/null +++ b/lib/engine/game/g_1847_ae/step/track.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +require_relative '../../../step/track' + +module Engine + module Game + module G1847AE + module Step + class Track < Engine::Step::Track + def available_hex(entity, hex) + return nil if (hex.id == 'E9') && !@game.can_build_in_e9? + + super + end + end + end + end + end +end diff --git a/lib/engine/game/g_1848/step/buy_train.rb b/lib/engine/game/g_1848/step/buy_train.rb index dc0715b59d..2b74368d35 100644 --- a/lib/engine/game/g_1848/step/buy_train.rb +++ b/lib/engine/game/g_1848/step/buy_train.rb @@ -38,6 +38,7 @@ def buy_train_action(action, entity = nil, borrow_from: nil) end return if entity.share_price.price.zero? # company is closing, not buying train + @bought_across = !action.train.from_depot? super end @@ -49,8 +50,10 @@ def can_entity_buy_train?(entity) def buyable_trains(entity) # Cannot buy 2E if one is already owned, can't by non 2e if at limit. 2E can't be cross bought + # Buying another corp's train must be done last (i.e. cannot buy from depot after buying from corp) trains_to_buy = at_train_limit?(entity) ? [] : super trains_to_buy = trains_to_buy.select(&:from_depot?) unless @game.can_buy_trains + trains_to_buy = trains_to_buy.reject(&:from_depot?) if @bought_across trains_to_buy = trains_to_buy.reject { |t| t.name == '2E' } trains_to_buy << ghan_train if can_buy_2e?(entity) trains_to_buy.uniq @@ -117,6 +120,7 @@ def round_state def setup @round.train_buy_available = true + @bought_across = false super end diff --git a/lib/engine/game/g_1858/game.rb b/lib/engine/game/g_1858/game.rb index 0b738dd665..711f899815 100644 --- a/lib/engine/game/g_1858/game.rb +++ b/lib/engine/game/g_1858/game.rb @@ -67,6 +67,16 @@ def corporation_opts two_player? ? { max_ownership_percent: 70 } : {} end + def corporation_view(entity) + return unless entity.minor? + + # Override the default rendering for private railway companies that + # are owned by players. These would be rendered as minor companies + # (with treasury, trains and revenue). Instead render them in the same + # way as private companies that are owned by the bank. + 'private_railway' + end + def option_quick_start? optional_rules.include?(:quick_start) end @@ -256,6 +266,18 @@ def private_minor(entity) @minors.find { |minor| minor.id == entity.sym } end + def private_description(minor) + private_company(minor).desc + end + + def private_revenue(minor) + format_currency(private_company(minor).revenue) + end + + def private_value(minor) + format_currency(private_company(minor).value) + end + def purchase_company(player, company, price) player.spend(price, @bank) unless price.zero? @@ -309,6 +331,19 @@ def home_hex?(operator, hex) operator.coordinates.include?(hex.coordinates) end + # Constent for a share purchase is only needed in one circumstance: + # - A private railway company is being exchanged for a share. + # - The share is from the corporation's treasury (not the market). + # - The private railway and corporation are controlled by different players. + def consenter_for_buy_shares(entity, bundle) + return unless entity.minor? + return unless bundle.share_price.nil? + return if entity.owner == bundle.corporation.owner + return unless bundle.shares.first.owner.corporation? + + bundle.corporation.owner + end + def tile_lays(entity) entity.corporation? ? TILE_LAYS : MINOR_TILE_LAYS end diff --git a/lib/engine/game/g_1858/map.rb b/lib/engine/game/g_1858/map.rb index bbda87e059..055cd0350e 100644 --- a/lib/engine/game/g_1858/map.rb +++ b/lib/engine/game/g_1858/map.rb @@ -80,11 +80,11 @@ module Map 'border=type:province,edge:1;' \ 'border=type:province,edge:2', %w[K8] => - 'icon=image:1858/MZ;' \ + 'icon=image:1858/MZ,sticky:1;' \ 'border=type:province,edge:1;' \ 'border=type:province,edge:2', %w[F17] => - 'icon=image:1858/CS;' \ + 'icon=image:1858/CS,sticky:1;' \ 'border=type:province,edge:2;' \ 'border=type:province,edge:3', %w[J11 J13] => @@ -130,13 +130,13 @@ module Map 'border=type:province,edge:4;' \ 'border=type:province,edge:5', %w[G4] => - 'icon=image:1858/AS;' \ + 'icon=image:1858/AS,sticky:1;' \ 'border=type:province,edge:1;' \ 'border=type:province,edge:2;' \ 'border=type:province,edge:3;' \ 'border=type:province,edge:4', %w[J9] => - 'icon=image:1858/MZ;' \ + 'icon=image:1858/MZ,sticky:1;' \ 'border=type:province,edge:2;' \ 'border=type:province,edge:3;' \ 'border=type:province,edge:4;' \ @@ -197,7 +197,7 @@ module Map 'border=type:province,edge:4', %w[F3] => 'upgrade=cost:80,terrain:mountain;' \ - 'icon=image:1858/LG;' \ + 'icon=image:1858/LG,sticky:1;' \ 'border=type:province,edge:0;' \ 'border=type:province,edge:1;' \ 'border=type:province,edge:5', @@ -237,7 +237,7 @@ module Map %w[E14] => 'upgrade=cost:20,terrain:water;' \ - 'icon=image:1858/BCR;', + 'icon=image:1858/BCR,sticky:1;', %w[C8] => 'upgrade=cost:20,terrain:water;' \ 'border=type:province,edge:3', @@ -260,7 +260,7 @@ module Map 'border=type:province,edge:5', %w[F15] => 'upgrade=cost:20,terrain:water;' \ - 'icon=image:1858/BCR;' \ + 'icon=image:1858/BCR,sticky:1;' \ 'border=type:province,edge:0;' \ 'border=type:province,edge:4;' \ 'border=type:province,edge:5', @@ -271,7 +271,7 @@ module Map 'border=type:province,edge:5', %w[K6] => 'upgrade=cost:20,terrain:water;' \ - 'icon=image:1858/ZP;' \ + 'icon=image:1858/ZP,sticky:1;' \ 'border=type:province,edge:1;' \ 'border=type:province,edge:2;' \ 'border=type:province,edge:3', @@ -282,13 +282,13 @@ module Map 'border=type:province,edge:5', %w[E12] => 'upgrade=cost:20,terrain:water;' \ - 'icon=image:1858/CMP;' \ + 'icon=image:1858/CMP,sticky:1;' \ 'border=type:province,edge:2;' \ 'border=type:province,edge:3;' \ 'border=type:province,edge:4', %w[F13] => 'upgrade=cost:20,terrain:water;' \ - 'icon=image:1858/CMP;' \ + 'icon=image:1858/CMP,sticky:1;' \ 'border=type:province,edge:3;' \ 'border=type:province,edge:4;' \ 'border=type:province,edge:5', @@ -310,7 +310,7 @@ module Map 'border=type:province,edge:3', %w[B11] => 'town=revenue:0;' \ - 'icon=image:1858/PL;' \ + 'icon=image:1858/PL,sticky:1;' \ 'border=type:province,edge:0;' \ 'border=type:province,edge:1', %w[H15] => @@ -323,7 +323,7 @@ module Map 'border=type:province,edge:2', %w[I10] => 'town=revenue:0;' \ - 'icon=image:1858/MZ;' \ + 'icon=image:1858/MZ,sticky:1;' \ 'border=type:province,edge:2;' \ 'border=type:province,edge:3', %w[B7 H5] => @@ -336,7 +336,7 @@ module Map 'border=type:province,edge:5', %w[K4] => 'town=revenue:0;' \ - 'icon=image:1858/ZP;' \ + 'icon=image:1858/ZP,sticky:1;' \ 'border=type:province,edge:0;' \ 'border=type:province,edge:5', %w[I4] => @@ -361,19 +361,19 @@ module Map 'border=type:province,edge:3', %w[F9] => 'town=revenue:0;' \ - 'icon=image:1858/MS;' \ + 'icon=image:1858/MS,sticky:1;' \ 'border=type:province,edge:2;' \ 'border=type:province,edge:4;' \ 'border=type:province,edge:5', %w[F5] => 'town=revenue:0;' \ - 'icon=image:1858/LG;' \ + 'icon=image:1858/LG,sticky:1;' \ 'border=type:province,edge:3;' \ 'border=type:province,edge:4;' \ 'border=type:province,edge:5', %w[G10] => 'town=revenue:0;' \ - 'icon=image:1858/MV;' \ + 'icon=image:1858/MV,sticky:1;' \ 'border=type:province,edge:0;' \ 'border=type:province,edge:1;' \ 'border=type:province,edge:2;' \ @@ -396,26 +396,26 @@ module Map %w[D15] => 'town=revenue:0;' \ 'upgrade=cost:20,terrain:water;' \ - 'icon=image:1858/BCR;' \ + 'icon=image:1858/BCR,sticky:1;' \ 'border=type:province,edge:1;' \ 'border=type:province,edge:2', %w[B13] => 'town=revenue:0;' \ 'upgrade=cost:20,terrain:water;' \ - 'icon=image:1858/LC;' \ + 'icon=image:1858/LC,sticky:1;' \ 'border=type:province,edge:3;' \ 'border=type:province,edge:4', %w[D13] => 'town=revenue:0;' \ 'upgrade=cost:20,terrain:water;' \ - 'icon=image:1858/CMP;' \ + 'icon=image:1858/CMP,sticky:1;' \ 'border=type:province,edge:1;' \ 'border=type:province,edge:2;' \ 'border=type:province,edge:3', %w[G12] => 'town=revenue:0;' \ 'upgrade=cost:20,terrain:water;' \ - 'icon=image:1858/CMP;' \ + 'icon=image:1858/CMP,sticky:1;' \ 'border=type:province,edge:1;' \ 'border=type:province,edge:2;' \ 'border=type:province,edge:3', @@ -427,7 +427,7 @@ module Map # Double town hexes %w[N9] => 'town=revenue:0;town=revenue:0;' \ - 'icon=image:1858/RT;' \ + 'icon=image:1858/RT,sticky:1;' \ 'border=type:province,edge:2', %w[H17] => 'town=revenue:0;town=revenue:0;' \ @@ -436,7 +436,8 @@ module Map %w[C4] => 'town=revenue:0;town=revenue:0;' \ 'upgrade=cost:40,terrain:mountain;' \ - 'icon=image:1858/SC;icon=image:1858/OV', + 'icon=image:1858/SC,sticky:1;' \ + 'icon=image:1858/OV,sticky:1;', # City hexes %w[C2] => @@ -466,7 +467,8 @@ module Map %w[E18] => 'city=revenue:0;label=Y;' \ 'upgrade=cost:20,terrain:water;' \ - 'icon=image:1858/CS;icon=image:1858/SJC;' \ + 'icon=image:1858/CS,sticky:1;' \ + 'icon=image:1858/SJC,sticky:1;' \ 'border=type:province,edge:2;' \ 'border=type:province,edge:3', %w[E20] => @@ -475,7 +477,8 @@ module Map %w[G18] => 'city=revenue:0;' \ 'upgrade=cost:20,terrain:water;' \ - 'icon=image:1858/CM;icon=image:1858/CS', + 'icon=image:1858/CM,sticky:1;' \ + 'icon=image:1858/CS,sticky:1;', %w[K18] => 'city=revenue:0;' \ 'upgrade=cost:20,terrain:water;', @@ -493,7 +496,8 @@ module Map yellow: { %w[L7] => 'city=revenue:30;path=a:1,b:_0;path=a:2,b:_0;path=a:5,b:_0;label=Y;' \ - 'icon=image:1858/MZ;icon=image:1858/ZP;', + 'icon=image:1858/MZ,sticky:1;' \ + 'icon=image:1858/ZP,sticky:1;', %w[H11] => 'city=revenue:40,loc:1;path=a:1,b:_0;' \ 'city=revenue:40,loc:2.5;path=a:2,b:_1;' \ @@ -503,7 +507,7 @@ module Map 'label=M', %w[H13] => 'town=revenue:10;path=a:3,b:_0;path=a:_0,b:5;' \ - 'icon=image:1858/MA;', + 'icon=image:1858/MA,sticky:1;', %w[I14] => 'path=a:2,b:5', }, diff --git a/lib/engine/game/g_1858/step/buy_sell_par_shares.rb b/lib/engine/game/g_1858/step/buy_sell_par_shares.rb index 7d046166a4..3fd0965e35 100644 --- a/lib/engine/game/g_1858/step/buy_sell_par_shares.rb +++ b/lib/engine/game/g_1858/step/buy_sell_par_shares.rb @@ -31,7 +31,8 @@ def actions(entity) # Starting a public company by exchanging a private company for the # president's certificate is also a buy action, but this is handled # through the companies' abilities rather than these actions. - actions << 'buy_shares' if can_buy_any?(entity) || can_exchange_any?(entity) + actions << 'buy_shares' if can_buy_any?(entity) || + can_exchange_any?(entity, false) actions << 'par' if can_ipo_any?(entity) actions << 'bid' if can_bid_any?(entity) @@ -48,6 +49,28 @@ def corporation_actions(corporation) %w[convert pass] end + def auto_actions(entity) + programmed_actions = super + return programmed_actions if programmed_actions + + # The only situation that needs an auto action is when the only + # possible (non-pass) action is buy_shares, and this is for an + # exchange only (no shares can be bought), and there is no legal + # exchange possible as the railways companies owned by the player + # are not connected to any public companies. + # + # This can be needed because `can_exchange_for_share?` (called + # from `can_exchange_any?`) does not check whether the private and + # public companies are connected, to avoid calls to the graph when + # the game is loading. + return unless @round.pending_tokens.empty? + return unless actions(entity) == %w[buy_shares pass] + return if can_buy_any?(entity) + return if can_exchange_any?(entity, true) + + [Engine::Action::Pass.new(entity)] + end + def pass_description if @auctioning "Pass (on #{auctioning.id})" @@ -90,10 +113,11 @@ def can_gain?(entity, share, exchange: false) share.corporation.floated? || share.president end - def can_exchange_for_share?(entity) + def can_exchange_for_share?(entity, check_connected) @game.corporations.any? do |corporation| corporation.num_treasury_shares.positive? && - @game.corporation_private_connected?(corporation, entity) + (!check_connected || + @game.corporation_private_connected?(corporation, entity)) end end @@ -104,21 +128,23 @@ def can_exchange_for_presidency?(entity, player) !@game.corporations.all?(&:ipoed) end - def can_exchange?(entity, player) + def can_exchange?(entity, player, check_connected) entity.all_abilities.any? do |ability| next unless ability.type == :exchange if ability.corporations == 'ipoed' - can_exchange_for_share?(entity) + can_exchange_for_share?(entity, check_connected) else can_exchange_for_presidency?(entity, player) end end end - def can_exchange_any?(player) + def can_exchange_any?(player, check_connected) minors = @game.minors.select { |m| m.owner == player } - (player.companies + minors).any? { |entity| can_exchange?(entity, player) } + (player.companies + minors).any? do |entity| + can_exchange?(entity, player, check_connected) + end end def process_convert(action) diff --git a/lib/engine/game/g_1858/step/private_exchange.rb b/lib/engine/game/g_1858/step/private_exchange.rb index 814145cb29..759815d2fc 100644 --- a/lib/engine/game/g_1858/step/private_exchange.rb +++ b/lib/engine/game/g_1858/step/private_exchange.rb @@ -32,7 +32,7 @@ def transfer_abilities(minor, company) end def exchange_for_share(bundle, corporation, minor, player) - unless @game.corporation_private_connected?(corporation, minor) + if !@game.loading && !@game.corporation_private_connected?(corporation, minor) raise GameError, "#{minor.name} is not connected to #{corporation.full_name}" end diff --git a/lib/engine/game/g_1858/step/track.rb b/lib/engine/game/g_1858/step/track.rb index 3a18e6f66e..242ac1bcd0 100644 --- a/lib/engine/game/g_1858/step/track.rb +++ b/lib/engine/game/g_1858/step/track.rb @@ -43,7 +43,6 @@ def lay_tile(action, extra_cost: 0, entity: nil, spender: nil) @round.gauges_added << new_track_gauge(old_tile, new_tile) super - new_tile.icons = old_tile.icons end def process_lay_tile(action) diff --git a/lib/engine/game/g_1867/game.rb b/lib/engine/game/g_1867/game.rb index 49bc636713..c0277c5d3a 100644 --- a/lib/engine/game/g_1867/game.rb +++ b/lib/engine/game/g_1867/game.rb @@ -463,8 +463,16 @@ def maximum_loans(entity) def home_token_locations(corporation) # Can only place home token in cities that have no other tokens. + # Minors can go in a disconnected Toronto/Montreal station, but Majors + # cannot. open_locations = hexes.select do |hex| - hex.tile.cities.any? { |city| city.tokenable?(corporation, free: true) && city.tokens.none? } + case corporation.type + when :minor + hex.tile.cities.any? { |c| c.tokenable?(corporation, free: true) && c.tokens.none? } + when :major + hex.tile.cities.any? { |c| c.tokenable?(corporation, free: true) } && + hex.tile.cities.all? { |c| c.tokens.none? { |t| t&.type == :normal } } + end end return open_locations if corporation.type == :minor @@ -782,8 +790,24 @@ def end_game!(player_initiated: false) super end + def game_end_check_values + return super unless @game_end_check + + # Game end checks are tested in the order soonest to furthest away. + # In 1861/1867 this means that :bank (end of current OR) is tested + # before :final_phase (end of next OR set). But we need the final + # phase test to take precedence, so if the game end has been + # triggered than we just need to look for the :final_phase test + # as this will extend the game if the final phase is reached after + # the bank breaks. + super.select { |reason, _| reason == :final_phase } + end + def game_end_check - @game_end_check ||= super + # The game end might have been triggered by the bank breaking, but if + # the final phase is entered before the end of the operating round + # then the game is extended. + @game_end_check = super || @game_end_check end private diff --git a/lib/engine/game/g_1867/step/buy_sell_par_shares.rb b/lib/engine/game/g_1867/step/buy_sell_par_shares.rb index 90ad968a4e..da6dc76e04 100644 --- a/lib/engine/game/g_1867/step/buy_sell_par_shares.rb +++ b/lib/engine/game/g_1867/step/buy_sell_par_shares.rb @@ -68,7 +68,11 @@ def ipo_type(entity) phase = @game.phase.name.to_i if entity.type == :major if phase >= MAJOR_PHASE - :par + if @game.home_token_locations(entity).empty? + 'No home token locations are available' + else + :par + end else "Cannot start till phase #{MAJOR_PHASE}" end diff --git a/lib/engine/game/g_1868_wy/game.rb b/lib/engine/game/g_1868_wy/game.rb index 17993d8974..897c610e29 100644 --- a/lib/engine/game/g_1868_wy/game.rb +++ b/lib/engine/game/g_1868_wy/game.rb @@ -612,7 +612,10 @@ def event_uranium_boom! hex_ids.each do |hex_id| hex = hex_by_id(hex_id) hex.tile.icons.find.with_index do |icon, index| - hex.tile.icons[index] = Part::Icon.new('1868_wy/uranium', nil, true, false, false) if icon.name == 'uranium_early' + if icon.name == 'uranium_early' + hex.tile.icons[index] = + Part::Icon.new('1868_wy/uranium', nil, true, false, false, loc: icon.loc) + end end increment_development_token_count(hex) end @@ -884,6 +887,7 @@ def action_processed(action) if @forts.include?(action.hex.id) && action.tile.color == :yellow icon = action.tile.icons.find { |i| i.name == 'fort' } icon.large = false + icon.loc = '2.5' end end update_boomcity_revenue!(action.hex.tile) @@ -891,6 +895,7 @@ def action_processed(action) if @forts.include?(action.hex.id) && action.hex.tile.color == :white icon = action.hex.tile.icons.find { |i| i.name == 'fort' } icon.large = false + icon.loc = '2.5' end end end @@ -1227,7 +1232,10 @@ def place_development_token(action) end player.spend(cost, @bank) if cost.positive? - hex.place_token(token, logo: token.logo, preprinted: false) + + loc = entity == union_pacific_coal || entity == bonanza || entity.type == :oil ? '0.5' : '1.5' + + hex.place_token(token, logo: token.logo, preprinted: false, loc: loc) increment_development_token_count(hex) @placed_development_tokens[@phase.name] << hex diff --git a/lib/engine/game/g_1868_wy/map.rb b/lib/engine/game/g_1868_wy/map.rb index dcf6e93fc1..b858d29f7a 100644 --- a/lib/engine/game/g_1868_wy/map.rb +++ b/lib/engine/game/g_1868_wy/map.rb @@ -73,11 +73,11 @@ module Map ['J16'] => 'upgrade=cost:40,terrain:mountain;border=edge:2,type:mountain;border=edge:3,type:mountain;border=edge:4,type:water,cost:30', ['J18'] => 'upgrade=cost:40,terrain:mountain;border=edge:2,type:mountain;border=edge:3,type:mountain;border=edge:1,type:water,cost:30', ['J10'] => 'upgrade=cost:20,terrain:cow_skull,size:40;border=edge:2,type:mountain;border=edge:3,type:mountain', - ['J12'] => 'town=revenue:0,boom:1;upgrade=cost:20,terrain:cow_skull,size:40;'\ + ['J12'] => 'town=revenue:0,boom:1;upgrade=cost:20,terrain:cow_skull,size:40,loc:2.5;'\ 'border=edge:2,type:mountain;border=edge:3,type:mountain;'\ - 'icon=image:1868_wy/uranium_early,sticky:1;icon=image:1868_wy/uranium_early,sticky:1', - ['J20'] => 'town=revenue:0,boom:1;upgrade=cost:30,terrain:mountain;'\ - 'border=edge:2,type:mountain;border=edge:3,type:mountain;icon=image:1868_wy/uranium_early,sticky:1', + 'icon=image:1868_wy/uranium_early,sticky:1,loc:4.5;icon=image:1868_wy/uranium_early,sticky:1,loc:4.5', + ['J20'] => 'town=revenue:0,boom:1;upgrade=cost:30,terrain:mountain,loc:2.5;'\ + 'border=edge:2,type:mountain;border=edge:3,type:mountain;icon=image:1868_wy/uranium_early,sticky:1,loc:4.5;', ['J22'] => 'upgrade=cost:60,terrain:mountain;border=edge:2,type:mountain;border=edge:3,type:mountain;border=edge:4,type:mountain', ['J24'] => 'border=edge:0,type:mountain;border=edge:1,type:mountain', diff --git a/lib/engine/game/g_1880/entities.rb b/lib/engine/game/g_1880/entities.rb index 68299a8592..a8723a74e0 100644 --- a/lib/engine/game/g_1880/entities.rb +++ b/lib/engine/game/g_1880/entities.rb @@ -74,7 +74,6 @@ module Entities owner_type: 'player', count: 1, when: 'owning_player_or_turn', - closed_when_used_up: false, }], color: nil, }, diff --git a/lib/engine/game/g_1880/game.rb b/lib/engine/game/g_1880/game.rb index f98658e20d..20e5760262 100644 --- a/lib/engine/game/g_1880/game.rb +++ b/lib/engine/game/g_1880/game.rb @@ -47,6 +47,11 @@ class Game < Game::Base GAME_END_CHECK = { custom: :one_more_full_or_set }.freeze P0_AWARD = { 'A2' => 40, 'B1' => 70, 'B2' => 100 }.freeze + + ASSIGNMENT_TOKENS = { + 'P5' => '/icons/1880/D.svg', + }.freeze + TRAINS_NOT_TRIGGERING_SR = %w[2P 8E 10].freeze GAME_END_REASONS_TEXT = { diff --git a/lib/engine/game/g_1880/round/operating.rb b/lib/engine/game/g_1880/round/operating.rb index 65b6566ff5..9e3292d8e9 100644 --- a/lib/engine/game/g_1880/round/operating.rb +++ b/lib/engine/game/g_1880/round/operating.rb @@ -30,13 +30,13 @@ def after_process(action) super end - def after_end_of_turn(_action) - @game.end_game! if trigger_game_end? + def after_end_of_turn(operator) + @game.end_game! if trigger_game_end?(operator) end - def trigger_game_end? + def trigger_game_end?(operator) round_num == @game.final_operating_rounds && - @current_operator == @game.train_marker + operator == @game.train_marker end end end diff --git a/lib/engine/game/g_1888/meta.rb b/lib/engine/game/g_1888/meta.rb index 42a3984c71..75d56875fa 100644 --- a/lib/engine/game/g_1888/meta.rb +++ b/lib/engine/game/g_1888/meta.rb @@ -36,7 +36,7 @@ module Meta def self.check_options(options, _min_players, _max_players) optional_rules = (options || []).map(&:to_sym) - return 'WARNING: No option selected. Will use North map with prototype rules' if optional_rules.empty? + return { info: 'WARNING: No option selected. Will use North map with prototype rules' } if optional_rules.empty? end def self.min_players(optional_rules, _num_players) diff --git a/lib/engine/game/g_18_eu/game.rb b/lib/engine/game/g_18_eu/game.rb index af7b436750..4aac7c4c83 100644 --- a/lib/engine/game/g_18_eu/game.rb +++ b/lib/engine/game/g_18_eu/game.rb @@ -447,7 +447,7 @@ def maybe_remove_duplicate_token!(tile) end end - def hex_blocked_by_ability?(entity, ability, hex) + def hex_blocked_by_ability?(entity, ability, hex, _tile = nil) return false unless hex.tile.color == :white return false if entity&.owner == ability&.owner&.owner diff --git a/lib/engine/game/g_18_gb/game.rb b/lib/engine/game/g_18_gb/game.rb index d6f1956d68..d8690c86f8 100644 --- a/lib/engine/game/g_18_gb/game.rb +++ b/lib/engine/game/g_18_gb/game.rb @@ -664,7 +664,7 @@ def stock_round ]) end - def hex_blocked_by_ability?(_entity, ability, hex) + def hex_blocked_by_ability?(_entity, ability, hex, _tile = nil) phase.tiles.include?(:blue) ? false : super end diff --git a/lib/engine/game/g_18_gb/meta.rb b/lib/engine/game/g_18_gb/meta.rb index d6345f5be6..6e10c43f3a 100644 --- a/lib/engine/game/g_18_gb/meta.rb +++ b/lib/engine/game/g_18_gb/meta.rb @@ -16,7 +16,7 @@ module Meta GAME_INFO_URL = 'https://github.com/tobymao/18xx/wiki/18GB' GAME_LOCATION = 'Great Britain' GAME_PUBLISHER = :all_aboard_games - GAME_RULES_URL = 'https://docs.google.com/document/d/12yNo5WAi6ywc6N5XmTl-FvAZeI5kLwCMkxhgf7jgNSk/view' + GAME_RULES_URL = 'https://www.dropbox.com/s/uilbrqw8qyo3ves/18GB%20Rules.pdf?dl=0' PLAYER_RANGE = [2, 6].freeze OPTIONAL_RULES = [ @@ -40,8 +40,10 @@ def self.check_options(options, _min_players, _max_players) two_player_map = optional_rules.include?(:two_player_ew) ? 'East-West' : 'North-South' four_player_setup = optional_rules.include?(:four_player_alt) ? 'Alternative' : 'Standard' - "The 2P #{two_player_map} map will be used if the game is started with 2 players. The 4P #{four_player_setup} setup " \ - 'will be used if the game is started with 4 players.' + { + info: "The 2P #{two_player_map} map will be used if the game is started with 2 players. The "\ + "4P #{four_player_setup} setup will be used if the game is started with 4 players.", + } end end end diff --git a/lib/engine/game/g_18_mex/game.rb b/lib/engine/game/g_18_mex/game.rb index 45d578eb98..a2eca9d0b9 100644 --- a/lib/engine/game/g_18_mex/game.rb +++ b/lib/engine/game/g_18_mex/game.rb @@ -29,6 +29,7 @@ class Game < Game::Base CAPITALIZATION = :full MUST_SELL_IN_BLOCKS = false + EBUY_OTHER_VALUE = false MARKET = [ %w[60 65 70 75 80p 90p 100 110 120 130 140 150 165 180 200e], diff --git a/lib/engine/game/g_18_ny/map.rb b/lib/engine/game/g_18_ny/map.rb index f5aa697be9..38a027d31e 100644 --- a/lib/engine/game/g_18_ny/map.rb +++ b/lib/engine/game/g_18_ny/map.rb @@ -265,7 +265,7 @@ module Map %w[F6] => 'border=edge:3,type:water,cost:40;upgrade=cost:60,terrain:mountain', %w[F8] => 'border=edge:4,type:impassable;upgrade=cost:60,terrain:mountain', %w[H18] => 'border=edge:4,type:water,cost:80', - %w[I21] => 'border=edge:1,type:water,cost:80', + %w[I21] => 'border=edge:1,type:water,cost:80;border=edge:5,type:impassable', %w[B12] => 'town=revenue:0', %w[C11] => 'town=revenue:0', %w[C23] => 'town=revenue:0', diff --git a/lib/engine/game/g_18_ny_1e/map.rb b/lib/engine/game/g_18_ny_1e/map.rb index 4157574321..a49d96bd4e 100644 --- a/lib/engine/game/g_18_ny_1e/map.rb +++ b/lib/engine/game/g_18_ny_1e/map.rb @@ -265,7 +265,7 @@ module Map %w[F6] => 'border=edge:3,type:water,cost:40;upgrade=cost:60,terrain:mountain', %w[F8] => 'border=edge:4,type:impassable;upgrade=cost:60,terrain:mountain', %w[H18] => 'border=edge:4,type:water,cost:80', - %w[I21] => 'border=edge:1,type:water,cost:80', + %w[I21] => 'border=edge:1,type:water,cost:80;border=edge:5,type:impassable', %w[B12] => 'town=revenue:0', %w[C11] => 'town=revenue:0', %w[C23] => 'town=revenue:0', diff --git a/lib/engine/game/g_18_rhl/game.rb b/lib/engine/game/g_18_rhl/game.rb index 79c859667a..2235a1e0df 100644 --- a/lib/engine/game/g_18_rhl/game.rb +++ b/lib/engine/game/g_18_rhl/game.rb @@ -677,7 +677,7 @@ def legal_tile_rotation?(_entity, hex, tile) hex.tile.stubs.map(&:edge) == tile.exits end - def hex_blocked_by_ability?(entity, ability, hex) + def hex_blocked_by_ability?(entity, ability, hex, _tile = nil) return false if entity.player == ability.owner.player && (hex.name == 'E14' || hex == yellow_block_hex) super diff --git a/lib/engine/game/g_18_sj/meta.rb b/lib/engine/game/g_18_sj/meta.rb index 60eb3d8392..edb311cb61 100644 --- a/lib/engine/game/g_18_sj/meta.rb +++ b/lib/engine/game/g_18_sj/meta.rb @@ -16,7 +16,7 @@ module Meta GAME_INFO_URL = 'https://github.com/tobymao/18xx/wiki/18SJ' GAME_LOCATION = 'Sweden' GAME_PUBLISHER = :all_aboard_games - GAME_RULES_URL = 'https://docs.google.com/document/d/1Iyojj3Kkl0mLR6rjRe8E6OlcTDfjVuVd-JT4R3tgm8M/view' + GAME_RULES_URL = 'https://www.dropbox.com/s/2iaubghicswpz3c/18SJ%20Rules.pdf?dl=0' PLAYER_RANGE = [2, 6].freeze OPTIONAL_RULES = [ diff --git a/lib/engine/game/g_rolling_stock/step/ipo_company.rb b/lib/engine/game/g_rolling_stock/step/ipo_company.rb index ae0f69d301..4b5a08b8c9 100644 --- a/lib/engine/game/g_rolling_stock/step/ipo_company.rb +++ b/lib/engine/game/g_rolling_stock/step/ipo_company.rb @@ -40,9 +40,12 @@ def process_par(action) buy_and_issue(player, company, share_price, corporation, 1) elsif share_price.price * 2 >= company.value buy_and_issue(player, company, share_price, corporation, 2) - else + elsif share_price.price * 3 >= company.value # we should only get here in RS not RSS buy_and_issue(player, company, share_price, corporation, 3) + else + # we should only get here in RS not RSS + buy_and_issue(player, company, share_price, corporation, 4) end corporation.companies << company @@ -89,8 +92,10 @@ def cost_to_ipo(par_price, company) par_price - company.value elsif par_price * 2 >= company.value (par_price * 2) - company.value - else + elsif par_price * 3 >= company.value (par_price * 3) - company.value + else + (par_price * 4) - company.value end end diff --git a/lib/engine/game/meta.rb b/lib/engine/game/meta.rb index 81f6fcd254..37d860c990 100644 --- a/lib/engine/game/meta.rb +++ b/lib/engine/game/meta.rb @@ -126,6 +126,8 @@ def keywords self::GAME_IMPLEMENTER, ].compact.flat_map { |c| c.upcase.split(/[:, ]+/) }.uniq end + + def check_options(_options, _min_players, _max_players); end end end end diff --git a/lib/engine/graph.rb b/lib/engine/graph.rb index 1793162825..d67cc7e5b6 100644 --- a/lib/engine/graph.rb +++ b/lib/engine/graph.rb @@ -9,6 +9,9 @@ def initialize(game, **opts) @connected_hexes = {} @connected_nodes = {} @connected_paths = {} + @connected_hexes_by_token = Hash.new { |h, k| h[k] = {} } + @connected_paths_by_token = Hash.new { |h, k| h[k] = {} } + @connected_nodes_by_token = Hash.new { |h, k| h[k] = {} } @reachable_hexes = {} @tokenable_cities = {} @routes = {} @@ -17,12 +20,16 @@ def initialize(game, **opts) @no_blocking = opts[:no_blocking] || false @skip_track = opts[:skip_track] @check_tokens = opts[:check_tokens] + @check_regions = opts[:check_regions] end def clear @connected_hexes.clear @connected_nodes.clear @connected_paths.clear + @connected_hexes_by_token.clear + @connected_nodes_by_token.clear + @connected_paths_by_token.clear @reachable_hexes.clear @tokenable_cities.clear @tokens.clear @@ -92,11 +99,38 @@ def connected_paths(corporation) @connected_paths[corporation] end + def connected_hexes_by_token(corporation, token) + compute_by_token(corporation) unless @connected_hexes_by_token[corporation][token] + @connected_hexes_by_token[corporation][token] + end + + def connected_nodes_by_token(corporation, token) + compute_by_token(corporation) unless @connected_nodes_by_token[corporation][token] + @connected_nodes_by_token[corporation][token] + end + + def connected_paths_by_token(corporation, token) + compute_by_token(corporation) unless @connected_paths_by_token[corporation][token] + @connected_paths_by_token[corporation][token] + end + def reachable_hexes(corporation) compute(corporation) unless @reachable_hexes[corporation] @reachable_hexes[corporation] end + def compute_by_token(corporation) + compute(corporation) + @game.hexes.each do |hex| + hex.tile.cities.each do |city| + next unless @game.city_tokened_by?(city, corporation) + next if @check_tokens && @game.skip_token?(self, corporation, city) + + compute(corporation, one_token: city) + end + end + end + # Called from #compute when @home_is_token is true. # Returns a hash whose keys are the Engine::Hex objects for each hex in the # entity's coordinates list. The values are hashes with keys that are the @@ -135,13 +169,15 @@ def home_hex_nodes(corporation) nodes end - def compute(corporation, routes_only: false) + def compute(corporation, routes_only: false, one_token: nil) hexes = Hash.new { |h, k| h[k] = {} } nodes = {} paths = {} @game.hexes.each do |hex| hex.tile.cities.each do |city| + next if one_token && (city != one_token) + next unless @game.city_tokened_by?(city, corporation) next if @check_tokens && @game.skip_token?(self, corporation, city) @@ -184,7 +220,7 @@ def compute(corporation, routes_only: false) routes = @routes[corporation] || {} walk_corporation = @no_blocking ? nil : corporation - skip_paths = @game.graph_skip_paths(corporation) + skip_paths = @check_regions ? @game.graph_border_paths(corporation) : @game.graph_skip_paths(corporation) tokens.keys.each do |node| return nil if routes[:route_train_purchase] && routes_only @@ -208,7 +244,7 @@ def compute(corporation, routes_only: false) path.exits.each do |edge| hexes[hex][edge] = true - hexes[hex.neighbors[edge]][hex.invert(edge)] = true + hexes[hex.neighbors[edge]][hex.invert(edge)] = true if !@check_regions || !@game.region_border?(hex, edge) end end @@ -241,11 +277,17 @@ def compute(corporation, routes_only: false) # connected_nodes - hexes in which this corporation can token # reachable_hexes - hexes in which this corporation can run - @routes[corporation] = routes - @connected_hexes[corporation] = hexes - @connected_nodes[corporation] = nodes - @connected_paths[corporation] = paths - @reachable_hexes[corporation] = paths.to_h { |path, _| [path.hex, true] } + if one_token + @connected_hexes_by_token[corporation][one_token] = hexes + @connected_nodes_by_token[corporation][one_token] = nodes + @connected_paths_by_token[corporation][one_token] = paths + else + @routes[corporation] = routes + @connected_hexes[corporation] = hexes + @connected_nodes[corporation] = nodes + @connected_paths[corporation] = paths + @reachable_hexes[corporation] = paths.to_h { |path, _| [path.hex, true] } + end end end end diff --git a/lib/engine/hex.rb b/lib/engine/hex.rb index a84d85b392..e8361de6f1 100644 --- a/lib/engine/hex.rb +++ b/lib/engine/hex.rb @@ -8,7 +8,7 @@ class Hex attr_accessor :x, :y, :ignore_for_axes, :location_name attr_reader :coordinates, :empty, :layout, :neighbors, :all_neighbors, :tile, :original_tile, :tokens, - :column, :row + :column, :row, :hide_location_name DIRECTIONS = { flat: { @@ -73,7 +73,7 @@ def self.init_x_y(coordinates, axes_config) # x and y map to the double coordinate system # layout is :pointy or :flat def initialize(coordinates, layout: nil, axes: nil, tile: Tile.for('blank'), - location_name: nil, empty: false) + location_name: nil, hide_location_name: false, empty: false) @coordinates = coordinates @layout = layout @axes = axes @@ -82,6 +82,7 @@ def initialize(coordinates, layout: nil, axes: nil, tile: Tile.for('blank'), @all_neighbors = {} @location_name = location_name tile.location_name = location_name + @hide_location_name = hide_location_name @original_tile = @tile = tile @tile.hex = self @activations = [] @@ -261,10 +262,10 @@ def distance(other) end end - def place_token(token, logo: nil, blocks_lay: nil, preprinted: true) + def place_token(token, logo: nil, blocks_lay: nil, preprinted: true, loc: nil) token.place(self) @tokens << token - icon = Part::Icon.new('', token.corporation.id, true, blocks_lay, preprinted) + icon = Part::Icon.new('', token.corporation.id, true, blocks_lay, preprinted, loc: loc) icon.image = logo || token.corporation.logo @tile.icons << icon end diff --git a/lib/engine/part/base.rb b/lib/engine/part/base.rb index bb97ce4dce..98a10b3f1c 100644 --- a/lib/engine/part/base.rb +++ b/lib/engine/part/base.rb @@ -7,7 +7,7 @@ module Part class Base include Helper::Type - attr_accessor :index, :tile + attr_accessor :index, :tile, :loc def id @id ||= "#{tile.id}-#{index}" diff --git a/lib/engine/part/icon.rb b/lib/engine/part/icon.rb index 71f779a703..fffda3e795 100644 --- a/lib/engine/part/icon.rb +++ b/lib/engine/part/icon.rb @@ -8,10 +8,10 @@ module Part class Icon < Base include Ownable - attr_accessor :preprinted, :image, :large + attr_accessor :preprinted, :image, :large, :loc attr_reader :name, :sticky - def initialize(image, name = nil, sticky = true, blocks_lay = nil, preprinted = true, large: false, owner: nil) + def initialize(image, name = nil, sticky = true, blocks_lay = nil, preprinted = true, large: false, owner: nil, loc: nil) @image = "/icons/#{image}.svg" @name = name || image.split('/')[-1] @sticky = !!sticky @@ -19,6 +19,7 @@ def initialize(image, name = nil, sticky = true, blocks_lay = nil, preprinted = @blocks_lay = !!blocks_lay @large = !!large @owner = owner + @loc = loc end def blocks_lay? diff --git a/lib/engine/part/upgrade.rb b/lib/engine/part/upgrade.rb index 8ce9495ca8..8e61265574 100644 --- a/lib/engine/part/upgrade.rb +++ b/lib/engine/part/upgrade.rb @@ -7,10 +7,11 @@ module Part class Upgrade < Base attr_reader :cost, :terrains, :size - def initialize(cost, terrains = nil, size = nil) + def initialize(cost, terrains = nil, size = nil, loc: nil) @cost = cost.to_i @terrains = terrains&.map(&:to_sym) || [] @size = size&.to_i + @loc = loc end def upgrade? diff --git a/lib/engine/player_info.rb b/lib/engine/player_info.rb index 1a1e3455f3..9032927e5d 100644 --- a/lib/engine/player_info.rb +++ b/lib/engine/player_info.rb @@ -13,7 +13,7 @@ def initialize(round_name, turn, round_no, player_value) end def round - if %w[AR MR OR].include?(round_name) + if %w[AR MR OR DEV].include?(round_name) "#{round_name} #{turn}.#{round_no}" else "#{round_name} #{turn}" diff --git a/lib/engine/round/draft.rb b/lib/engine/round/draft.rb index a04f79e8d6..d531bf857b 100644 --- a/lib/engine/round/draft.rb +++ b/lib/engine/round/draft.rb @@ -6,8 +6,11 @@ module Engine module Round class Draft < Base def initialize(game, steps, **opts) + # reverse_order: 4, 3, 2, 1; 4, 3, 2, 1; ... @reverse_order = opts[:reverse_order] || false + # snake_order: 1, 2, 3, 4; 4, 3, 2, 1; 1, 2, 3, 4; 4, ... @snake_order = opts[:snake_order] || false + # rotating_order: 1, 2, 3, 4; 2, 3, 4, 1; 3, 4, 1, 2; ... @rotating_order = opts[:rotating_order] || false @snaking_up = true diff --git a/lib/engine/round/operating.rb b/lib/engine/round/operating.rb index ff078242f1..27afaa357c 100644 --- a/lib/engine/round/operating.rb +++ b/lib/engine/round/operating.rb @@ -46,12 +46,12 @@ def after_process(action) return if entity.owner&.player? || entity.receivership? end - after_end_of_turn(action) + after_end_of_turn(@current_operator) next_entity! unless @game.finished end - def after_end_of_turn(action); end + def after_end_of_turn(operator); end def force_next_entity! @steps.each(&:pass!) @@ -84,7 +84,10 @@ def start_operating @log << "#{@game.acting_for_entity(entity).name} operates #{entity.name}" unless finished? @game.place_home_token(entity) if @home_token_timing == :operate skip_steps - next_entity! if finished? + return unless finished? + + after_end_of_turn(entity) + next_entity! end def recalculate_order diff --git a/lib/engine/share_price.rb b/lib/engine/share_price.rb index ca25485746..11fa26abed 100644 --- a/lib/engine/share_price.rb +++ b/lib/engine/share_price.rb @@ -23,6 +23,7 @@ class SharePrice 'w' => :par_3, 'C' => :convert_range, 'm' => :max_price, + 'n' => :max_price_1, 'u' => :phase_limited, 'B' => :pays_bonus, 'W' => :pays_bonus_1, @@ -32,7 +33,7 @@ class SharePrice }.freeze # Types which are info only and shouldn't - NON_HIGHLIGHT_TYPES = %i[par safe_par par_1 par_2 par_3 par_overlap safe_par convert_range max_price repar].freeze + NON_HIGHLIGHT_TYPES = %i[par safe_par par_1 par_2 par_3 par_overlap safe_par convert_range max_price max_price_1 repar].freeze # Types which count as par PAR_TYPES = %i[par par_overlap par_1 par_2 par_3].freeze diff --git a/lib/engine/step/buy_train.rb b/lib/engine/step/buy_train.rb index 0508681bb4..fc2facdb73 100644 --- a/lib/engine/step/buy_train.rb +++ b/lib/engine/step/buy_train.rb @@ -43,12 +43,17 @@ def check_spend(action) min, max = spend_minmax(action.entity, action.train) return if (min..max).cover?(action.price) - raise GameError, "#{action.entity.name} may not spend "\ - "#{@game.format_currency(action.price)} on "\ - "#{action.train.owner.name}'s #{action.train.name} "\ - 'train; may only spend between '\ - "#{@game.format_currency(min)} and "\ - "#{@game.format_currency(max)}." + if max.zero? && !@game.class::EBUY_OTHER_VALUE + raise GameError, "#{action.entity.name} may not buy a train from "\ + 'another corporation.' + else + raise GameError, "#{action.entity.name} may not spend "\ + "#{@game.format_currency(action.price)} on "\ + "#{action.train.owner.name}'s #{action.train.name} "\ + 'train; may only spend between '\ + "#{@game.format_currency(min)} and "\ + "#{@game.format_currency(max)}." + end end def process_buy_train(action) diff --git a/lib/engine/step/message.rb b/lib/engine/step/message.rb index 5d8e37f846..2e4b62fcb0 100644 --- a/lib/engine/step/message.rb +++ b/lib/engine/step/message.rb @@ -5,7 +5,7 @@ module Engine module Step class Message < Base - ACTIONS = %w[message].freeze + ACTIONS = %w[log message].freeze def actions(entity) return [] unless entity.player? @@ -13,6 +13,10 @@ def actions(entity) ACTIONS end + def process_log(action) + @log << action + end + def process_message(action) @log << action end diff --git a/lib/engine/step/special_token.rb b/lib/engine/step/special_token.rb index 2914dabe46..bd0de645ef 100644 --- a/lib/engine/step/special_token.rb +++ b/lib/engine/step/special_token.rb @@ -108,7 +108,7 @@ def available_hex(entity, hex) def available_tokens(entity) ability = ability(entity) - return [Engine::Token.new(entity.owner)] if ability&.type == :token && !ability.from_owner + return [Engine::Token.new(entity.owner)] if %i[teleport token].include?(ability&.type) && !ability.from_owner super(@game.token_owner(entity)) end diff --git a/lib/engine/step/special_track.rb b/lib/engine/step/special_track.rb index a30f289a52..16fbc9c27a 100644 --- a/lib/engine/step/special_track.rb +++ b/lib/engine/step/special_track.rb @@ -61,7 +61,7 @@ def process_lay_tile(action) @round.laid_hexes << action.hex check_connect(action, ability) end - ability.use! + ability.use!(upgrade: %i[green brown gray].include?(action.tile.color)) # Record any track laid after the dividend step if owner&.corporation? && (operating_info = owner.operating_history[[@game.turn, @round.round_num]]) diff --git a/lib/engine/step/tokener.rb b/lib/engine/step/tokener.rb index 53733deb44..0c22a6ba54 100644 --- a/lib/engine/step/tokener.rb +++ b/lib/engine/step/tokener.rb @@ -46,7 +46,7 @@ def can_replace_token?(_entity, _token) def place_token(entity, city, token, connected: true, extra_action: false, special_ability: nil, check_tokenable: true, spender: nil) hex = city.hex - extra_action ||= special_ability.extra_action if special_ability&.type == :token + extra_action ||= special_ability.extra_action if %i[teleport token].include?(special_ability&.type) check_connected(entity, city, hex) if connected @@ -117,6 +117,10 @@ def min_token_price(tokens) def adjust_token_price_ability!(entity, token, hex, city, special_ability: nil) if special_ability&.type == :teleport + unless special_ability.from_owner + token = Engine::Token.new(entity) + entity.tokens << token + end token.price = 0 return [token, special_ability] end diff --git a/lib/engine/step/track_lay_when_company_sold.rb b/lib/engine/step/track_lay_when_company_sold.rb index 54bbe5e1b0..61ffeb8caa 100644 --- a/lib/engine/step/track_lay_when_company_sold.rb +++ b/lib/engine/step/track_lay_when_company_sold.rb @@ -28,7 +28,7 @@ def process_lay_tile(action) lay_tile(action, spender: entity.owner) @round.laid_hexes << action.hex check_connect(action, ability) - ability.use! + ability.use!(upgrade: %i[green brown gray].include?(action.tile.color)) @company = nil 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/lib/engine/tile.rb b/lib/engine/tile.rb index 5be14b4e39..a331357de5 100644 --- a/lib/engine/tile.rb +++ b/lib/engine/tile.rb @@ -17,7 +17,8 @@ class Tile attr_accessor :blocks_lay, :hex, :icons, :index, :legal_rotations, :location_name, :name, :opposite, :reservations, :upgrades, :color, :future_label attr_reader :borders, :cities, :edges, :junction, :nodes, :labels, :parts, :preprinted, :rotation, :stops, :towns, - :offboards, :blockers, :city_towns, :unlimited, :stubs, :partitions, :id, :frame, :stripes, :hidden + :offboards, :blockers, :city_towns, :unlimited, :stubs, :partitions, :id, :frame, :stripes, :hidden, + :hidden_blockers attr_writer :revenue_to_render ALL_EDGES = [0, 1, 2, 3, 4, 5].freeze @@ -169,7 +170,7 @@ def self.part(type, params, cache) when 'label' Part::Label.new(params) when 'upgrade' - Part::Upgrade.new(params['cost'], params['terrain']&.split('|'), params['size']) + Part::Upgrade.new(params['cost'], params['terrain']&.split('|'), params['size'], loc: params['loc']) when 'border' Part::Border.new(params['edge'], params['type'], params['cost'], params['color']) when 'junction' @@ -178,7 +179,7 @@ def self.part(type, params, cache) junction when 'icon' Part::Icon.new(params['image'], params['name'], params['sticky'], params['blocks_lay'], - large: params['large']) + large: params['large'], loc: params['loc']) when 'stub' Part::Stub.new(params['edge'].to_i) when 'partition' @@ -228,6 +229,7 @@ def initialize(name, @location_name = location_name @legal_rotations = [] @blockers = [] + @hidden_blockers = [] @reservations = [] @preprinted = preprinted @index = index @@ -340,8 +342,9 @@ def paths_are_subset_of?(other_paths) end end - def add_blocker!(private_company) + def add_blocker!(private_company, hidden: false) @blockers << private_company + @hidden_blockers << private_company if hidden end def inspect diff --git a/migrate_game.rb b/migrate_game.rb index b5044a41cd..b799155d29 100644 --- a/migrate_game.rb +++ b/migrate_game.rb @@ -23,256 +23,124 @@ def switch_actions(actions, first, second) return [first, second] end -# Returns either the actions that are modified inplace, or nil if inserted/deleted - -def repair(game, original_actions, actions, broken_action) +# If inserting/deleting actions, modify the given `actions` and return `nil` +# +# If editing existing actions, modify them on `actions` in place, and return an +# array containing the just the modified actions (so the modified actions will +# be in both the originally given `actions` and in the returned array) +def repair(game, original_actions, actions, broken_action, data, pry_db: false) optionalish_actions = %w[message buy_company] - action_idx = actions.index(broken_action) + broken_action_idx = actions.index(broken_action) action = broken_action['original_id'] || broken_action['id'] - puts "http://18xx.games/game/#{game.id}?action=#{action}" - puts game.active_step - prev_actions = actions[0..action_idx - 1] + step = game.active_step + prev_actions = actions[0..broken_action_idx - 1] prev_action = prev_actions[prev_actions.rindex { |a| !optionalish_actions.include?(a['type']) }] - next_actions = actions[action_idx + 1..] + next_actions = actions[broken_action_idx + 1..] next_action = next_actions.find { |a| !optionalish_actions.include?(a['type']) } - puts broken_action + current_entity = step.current_entity - add_pass = lambda do - pass = Engine::Action::Pass.new(game.active_step.current_entity) - pass.user = pass.entity.player.id - actions.insert(action_idx, pass.to_h) + entity_id = broken_action['entity'] + entity = game.corporation_by_id(entity_id) || + game.company_by_id(entity_id) || + game.player_by_id(entity_id) + + step_actions = step.actions(current_entity) + + ################ + # BEGIN REPAIR # + ################ + # When a new migration is needed for something more than adding/removing pass + # actions, delete blocks here for completed migrations and add a new commented + # block; see the history of this file for examples of previous migrations. + + if pry_db + require 'pry-byebug' + binding.pry end - if broken_action['type'] == 'move_token' - # Move token is now place token. - broken_action['type'] = 'place_token' - return [broken_action] - elsif game.is_a?(Engine::Game::G18USA::Game) - if broken_action['type'] == 'pass' - actions.delete(broken_action) - elsif prev_action['type'] == 'pass' - actions.delete(prev_action) - end - return - elsif game.is_a?(Engine::Game::G21Moon::Game) and game.active_step.is_a?(Engine::Step::BuySellParShares) - add_pass.call - return - elsif broken_action['type'] == 'buy_tokens' - # 1817 no longer needs buy tokens - actions.delete(broken_action) - return - elsif game.active_step.is_a?(Engine::Step::HomeToken) && - game.is_a?(Engine::Game::G1817WO) - # Find the next place token by this corp - entity = game.active_step.current_entity - home_token = next_actions.find {|a| a['type']=='place_token' && a['entity']==entity.id} - raise "can't find home tokenage" unless home_token - home_token_h = home_token.to_h - actions.delete(home_token) - actions.insert(action_idx, home_token_h) - return - elsif broken_action['type'] == 'pass' && - game.active_step.is_a?(Engine::Game::G1817::Step::BuySellParShares) && - broken_action['entity'] == prev_action['entity'] - actions.delete(broken_action) - return - elsif broken_action['type'] == 'place_token' && game.is_a?(Engine::Game::G1867) - # Stub changed token numbering - hex_id = broken_action['city'].split('-')[0] - hex = game.hex_by_id(hex_id) - raise 'multiple city' unless hex.tile.cities.one? - - broken_action['city'] = hex.tile.cities.first.id - return [broken_action] - elsif game.active_step.is_a?(Engine::Game::G18SJ::Step::ChoosePriority) - choice = Engine::Action::Choose.new(game.active_step.current_entity, choice: 'wait') - choice.user = choice.entity.player.id - actions.insert(action_idx, choice.to_h) - return - elsif game.active_step.is_a?(Engine::Step::BuyCompany) || - game.active_step.is_a?(Engine::Game::G1817::Step::PostConversion) || - game.active_step.is_a?(Engine::Game::G1817::Step::BuySellParShares) || - game.active_step.is_a?(Engine::Game::G1867::Step::SingleItemAuction) || - game.active_step.is_a?(Engine::Game::G1817::Step::Loan) - add_pass.call - return - elsif game.active_step.is_a?(Engine::Game::G18Ireland::Step::Merge) - add_pass.call - return - elsif game.active_step.is_a?(Engine::Game::G1817::Step::Acquire) && broken_action['type'] != 'pass' - add_pass.call - return - elsif game.active_step.is_a?(Engine::Step::BuySellParShares) && game.is_a?(Engine::Game::G1867) && broken_action['type']=='bid' - add_pass.call - return - elsif game.active_step.is_a?(Engine::Game::G1889::Step::SpecialTrack) - # laying track for Ehime Railway didn't always block, now it needs an - # explicit pass - if broken_action['entity'] != 'ER' - add_pass.call - return - end - elsif game.active_step.is_a?(Engine::Game::G1867::Step::Merge) && broken_action['type'] != 'pass' - add_pass.call - return - elsif game.is_a?(Engine::Game::G18CO) && - game.active_step.is_a?(Engine::Step::CorporateBuyShares) && - broken_action['type'] == 'pass' - # 2P train should have been removed from the game, not put into the discard - actions.delete(broken_action) - return - elsif game.is_a?(Engine::Game::G18CO) && - (game.active_step.is_a?(Engine::Step::Token) || game.active_step.is_a?(Engine::Step::Route)) - # Need to add a pass when the player has the GJGR private - add_pass.call - return - elsif broken_action['type'] == 'pass' - if game.active_step.is_a?(Engine::Game::G1817::Step::PostConversionLoans) - actions.delete(broken_action) - return - end - if game.active_step.is_a?(Engine::Game::G1867::Step::PostMergerShares) - actions.delete(broken_action) - return - end - if game.active_step.is_a?(Engine::Game::G1817::Step::Acquire) - # Remove corps passes that went into acquisition - if (game.active_step.current_entity.corporation? && broken_action['entity_type'] == 'player') - action2 = Engine::Action::Pass.new(game.active_step.current_entity).to_h - broken_action['entity'] = action2['entity'] - broken_action['entity_type'] = action2['entity_type'] - return [broken_action] + # Generic handling for when a change just needs pass actions to be + # inserted/deleted + + # action seems ok, try deleting auto_action pass + if broken_action['entity'] == game.current_entity.id && + game.round.actions_for(game.current_entity).include?(broken_action['type']) && + (broken_action['auto_actions'] || []).map { |aa| aa['type'] } == ['pass'] + actions[broken_action_idx].delete('auto_actions') + puts ' patched: removed auto_action pass from broken_action' + return [actions[broken_action_idx]] + end + + # fix entity for pass action + if broken_action['type'] == 'pass' && game.current_entity.id != broken_action['entity'] + entity_type = + if game.current_entity.company? + 'company' else - actions.delete(broken_action) - end - return - end - if game.active_step.is_a?(Engine::Game::G1867::Step::Merge) - # Remove corps passes that went into acquisition - actions.delete(broken_action) - return - end - if game.active_step.is_a?(Engine::Game::G1817::Step::Conversion) - # Remove corps passes that went into acquisition - actions.delete(broken_action) - return - end - if game.active_step.is_a?(Engine::Step::Route) || game.active_step.is_a?(Engine::Step::BuyTrain) - # Lay token sometimes needed pass when it shouldn't have - actions.delete(broken_action) - return - end - if game.active_step.is_a?(Engine::Step::Track) - # some games of 1889 didn't skip buy train - actions.delete(broken_action) - return - end - if game.active_step.is_a?(Engine::Step::BuySellParShares) - # some games of 1889 didn't skip the buy companies step correctly - actions.delete(broken_action) - return - end - if game.active_step.is_a?(Engine::Step::IssueShares) - # some 1846 pass too much - actions.delete(broken_action) - return - end - if game.is_a?(Engine::Game::G1836Jr30) - # Shouldn't need to pass when buying trains - if prev_action['type'] == 'buy_train' - # Delete the pass - actions.delete(broken_action) - return + broken_action['entity_type'] end - end - elsif broken_action['type'] == 'lay_tile' - if game.active_step.is_a?(Engine::Step::BuyCompany) - add_pass.call - return - end - if game.active_step.is_a?(Engine::Step::BuyTrain) && game.active_step.actions(game.active_step.current_entity).include?('pass') - add_pass.call - return - end - if game.active_step.is_a?(Engine::Step::IssueShares) - add_pass.call - return - end - if game.active_step.is_a?(Engine::Step::Route) and prev_action['type'] == 'pass' - actions.delete(prev_action) - return - end - if game.active_step.is_a?(Engine::Step::Token) and prev_action['type'] == 'pass' - actions.delete(prev_action) - return - end - elsif broken_action['type'] == 'buy_train' - if prev_action['type'] == 'pass' && game.active_step.is_a?(Engine::Step::Track) - # Remove the pass, as it was probably meant for a token - actions.delete(prev_action) - return - end - if game.active_step.is_a?(Engine::Step::DiscardTrain) && next_action['type'] == 'discard_train' - return switch_actions(original_actions, broken_action, next_action) - end - if game.active_step.is_a?(Engine::Step::Track) - add_pass.call - return - end - if game.active_step.is_a?(Engine::Step::Token) - add_pass.call - return - end - if game.active_step.is_a?(Engine::Step::BuyCompany) && prev_action['type'] == 'pass' - actions.delete(prev_action) - return - end - elsif broken_action['type'] == 'run_routes' - if game.active_step.is_a?(Engine::Step::Dividend) && prev_action['type'] == 'run_routes' - actions.delete(prev_action) - return - end - if game.active_step.is_a?(Engine::Step::Track) - add_pass.call - return - end - if game.active_step.is_a?(Engine::Step::Token) - add_pass.call - return - end - elsif broken_action['type']=='place_token' && - ['D6-0-3','298-0-2'].include?(broken_action['city']) && - game.companies.find { |company| company.name == 'Chicago and Western Indiana' }&.owner == game.active_step.current_entity - # Move token lay from corp to private - broken_action['entity'] = 'C&WI' - broken_action['entity_type'] = 'company' - return [broken_action] - elsif game.active_step.is_a?(Engine::Step::Token) - add_pass.call + puts " patched: changed entity of broken pass from #{broken_action['entity']} to #{game.current_entity.id} in current_action" + actions[broken_action_idx]['entity'] = game.current_entity.id + actions[broken_action_idx]['entity_type'] = entity_type + return [actions[broken_action_idx]] + end + + # delete pass from current_action + if broken_action['type'] == 'pass' && !step_actions.include?('pass') + actions.delete(broken_action) + puts ' patched: deleted pass from current_action' return + end - elsif game.active_step.is_a?(Engine::Step::TrackAndToken) - if ['buy_shares','sell_shares'].include?(broken_action['type']) and prev_action['type'] == 'pass' - # Stray pass from buy companies - actions.delete(prev_action) - return + # delete pass from current_action, move its auto_actions to prev_action + if broken_action['type'] == 'pass' && broken_action.include?('auto_actions') + if (auto_actions = broken_action.delete('auto_actions')) + actions[broken_action_idx - 1]['auto_actions'] = auto_actions end - add_pass.call + puts ' patched: deleted pass from current_action, moved auto_actions to pre_action' return - elsif game.active_step.is_a?(Engine::Step::IssueShares) && broken_action['type']=='buy_company' - # Stray pass from buy trains + end + + # delete pass from prev_action when the broken_action would have worked in + # that spot + if !step_actions.include?(broken_action['type']) && + prev_action['type'] == 'pass' && + (g = Engine::Game.load(data, actions: prev_actions[..-2])) + .round + .actions_for(g.corporation_by_id(broken_action['entity']) || g.company_by_id(broken_action['entity'])) + .include?(broken_action['type']) actions.delete(prev_action) + puts ' patched: deleted pass from prev_action' return - elsif broken_action['type'] == 'dividend' and broken_action['entity_type'] == 'minor' - actions.delete(broken_action) + end + + # delete pass from prev_action, move its auto_action pass to the prior action + if !step_actions.include?(broken_action['type']) && + prev_action['type'] == 'pass' && + (prev_action['auto_actions'] || []).map { |aa| aa['type'] } == ['pass'] && + !actions[broken_action_idx - 2].include?('auto_actions') + + actions[broken_action_idx - 2]['auto_actions'] = prev_action.delete('auto_actions') + actions.delete(prev_action) + puts ' patched: deleted pass from prev_action and moved pass auto_action to prior action' return end - puts "Game think it's #{game.active_step.current_entity.id} turn" - raise Exception, "Cannot fix http://18xx.games/game/#{game.id}?action=#{action}" + # insert pass + if !step_actions.include?(broken_action['type']) && step_actions.include?('pass') + pass = Engine::Action::Pass.new(current_entity) + pass.user = pass.entity.player.id + actions.insert(broken_action_idx, pass.to_h) + puts ' patched: inserted pass' + return + end + ################ + # END REPAIR # + ################ + + raise Exception, "Cannot fix Game #{game.id} at action #{action}" end -def attempt_repair(actions, debug) +def attempt_repair(actions, debug, data, pry_db: false) repairs = [] rewritten = false ever_repaired = false @@ -292,11 +160,12 @@ def attempt_repair(actions, debug) rescue Exception => e puts e.backtrace if debug iteration += 1 - puts "Break at #{e} #{action} #{iteration}" + puts " iteration #{iteration}; action #{action['id']}; #{game.active_step.type} step; #{action['entity']}, #{action['type']}" + raise Exception, "Stuck in infinite loop?" if iteration > 100 - + ever_repaired = true - inplace_actions = repair(game, actions, filtered_actions, action) + inplace_actions = repair(game, actions, filtered_actions, action, data, pry_db: pry_db) repaired = true if inplace_actions repairs += inplace_actions @@ -314,15 +183,15 @@ def attempt_repair(actions, debug) end break unless repaired - + end repairs = nil if rewritten return [actions, repairs] if ever_repaired end -def migrate_data(data) +def migrate_data(data, debug=true) begin - data['actions'], repairs = attempt_repair(data['actions'], true) do + data['actions'], repairs = attempt_repair(data['actions'], debug, data) do Engine::Game.load(data, actions: []).maybe_raise! end rescue Exception => e @@ -337,11 +206,11 @@ def migrate_data(data) end # This doesn't write to the database -def migrate_db_actions_in_mem(data) +def migrate_db_actions_in_mem(data, debug=false) original_actions = data.actions.map(&:to_h) begin - actions, repairs = attempt_repair(original_actions) do + actions, repairs = attempt_repair(original_actions, debug, data) do Engine::Game.load(data, actions: []).maybe_raise! end puts repairs @@ -354,16 +223,19 @@ def migrate_db_actions_in_mem(data) return original_actions end -def migrate_db_actions(data, pin, dry_run=false, debug=false) - raise Exception, "pin is not valid" unless pin +def migrate_db_actions(data, pin=nil, dry_run=false, debug=false, pry_db: false, require_pin: false) + raise Exception, "pin is not valid" if !pin && require_pin + + puts "\nGame #{data.id}" original_actions = data.actions.map(&:to_h) begin - actions, repairs = attempt_repair(original_actions, debug) do + actions, repairs = attempt_repair(original_actions, debug, data, pry_db: pry_db) do Engine::Game.load(data, actions: []).maybe_raise! end if actions && !dry_run if repairs + puts ' saving changed actions' repairs.each do |action| # Find the action index idx = actions.index(action) @@ -371,6 +243,7 @@ def migrate_db_actions(data, pin, dry_run=false, debug=false) data.actions[idx].save end else # Full rewrite. + puts ' game fixed, rewriting all actions' DB.transaction do Action.where(game: data).delete game = Engine::Game.load(data, actions: []).maybe_raise! @@ -394,26 +267,26 @@ def migrate_db_actions(data, pin, dry_run=false, debug=false) rescue Exception => e $broken[data.id]=e puts e.backtrace if debug - puts 'Something went wrong', e + puts " #{e}" if !dry_run if pin == :delete || pin == :archive - puts "Archiving #{data.id}" + puts " Archiving #{data.id}" data.archive! else - puts "Pinning #{data.id} to #{pin}" + puts " Would pin #{data.id} to #{pin}" data.settings['pin']=pin data.save end else - puts "Needs pinning #{data.id} to #{pin}" + puts " Needs pinning #{data.id} to #{pin}" end end return original_actions end -def migrate_json(filename) +def migrate_json(filename, debug=true) puts "Loading #{filename} for migration" - data = migrate_data(JSON.parse(File.read(filename))) + data = migrate_data(JSON.parse(File.read(filename)), debug) if data File.write(filename, JSON.pretty_generate(data)) else @@ -436,27 +309,31 @@ def migrate_db_to_json(id, filename) end # Pass pin=:archive to archive failed games -def migrate_title(title, pin, dry_run=false, debug = false) +def migrate_title(title, pin, dry_run=false, debug = false, require_pin: false) DB[:games].order(:id).where(Sequel.pg_jsonb_op(:settings).has_key?('pin') => false, status: %w[active finished], title: title).select(:id).paged_each(rows_per_fetch: 1) do |game| games = Game.eager(:user, :players, :actions).where(id: [game[:id]]).all games.each {|data| - migrate_db_actions(data, pin, dry_run, debug) + migrate_db_actions(data, pin, dry_run, debug, require_pin: require_pin) } end end -def migrate_all(pin, dry_run=false, debug = false, game_ids: nil) +def migrate_all(pin=nil, dry_run=false, debug = false, pry_db: false, game_ids: nil, require_pin: false, status: %w[active finished]) + # can uncomment this for less noise in dev; don't commit it uncommented as + # that breaks the script in prod + # DB.loggers.first.level = Logger::FATAL + where_args = { Sequel.pg_jsonb_op(:settings).has_key?('pin') => false, - status: %w[active finished], + status: status, } where_args[:id] = game_ids if game_ids DB[:games].order(:id).where(**where_args).select(:id).paged_each(rows_per_fetch: 1) do |game| games = Game.eager(:user, :players, :actions).where(id: [game[:id]]).all games.each {|data| - migrate_db_actions(data, pin, dry_run, debug) + migrate_db_actions(data, pin, dry_run, debug, pry_db: pry_db, require_pin: require_pin) } 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/public/fixtures/1822/35975.json b/public/fixtures/1822/35975.json new file mode 100644 index 0000000000..56855264ab --- /dev/null +++ b/public/fixtures/1822/35975.json @@ -0,0 +1 @@ +{"id":35975,"description":"open, live","user":{"id":1739,"name":"wheresvic"},"players":[{"id":8145,"name":"cutebeast"},{"id":1739,"name":"wheresvic"},{"id":3828,"name":"Shaw80"}],"max_players":4,"title":"1822NRS","settings":{"seed":1218977555,"unlisted":false,"optional_rules":[]},"user_settings":null,"status":"finished","turn":8,"round":"Operating Round","acting":[8145,1739,3828],"result":{"1739":10626,"3828":9343,"8145":6605},"actions":[{"type":"message","entity":1739,"entity_type":"player","id":1,"created_at":1617566947,"message":"hi all and welcome","original_id":1},{"type":"message","entity":8145,"entity_type":"player","id":2,"created_at":1617566957,"message":"Hi","original_id":2},{"type":"message","entity":1739,"entity_type":"player","id":3,"created_at":1617566975,"message":"lets do this fast and furious","original_id":3},{"type":"message","entity":3828,"entity_type":"player","id":4,"created_at":1617566977,"message":"howdy","original_id":4},{"type":"message","entity":1739,"entity_type":"player","id":5,"created_at":1617566987,"message":"so Shaw just the only changes are that the L train cost 50","original_id":5},{"type":"message","entity":1739,"entity_type":"player","id":6,"created_at":1617566997,"message":"and the first company to flip requires 80","original_id":6},{"type":"message","entity":3828,"entity_type":"player","id":7,"created_at":1617566999,"message":"I played this","original_id":7},{"type":"message","entity":1739,"entity_type":"player","id":8,"created_at":1617567004,"message":"but the other companies thereafter require 70","original_id":8},{"type":"message","entity":1739,"entity_type":"player","id":9,"created_at":1617567006,"message":"ok cool","original_id":9},{"type":"bid","entity":8145,"entity_type":"player","id":10,"created_at":1617567009,"company":"M27","price":100,"original_id":10},{"type":"bid","entity":8145,"entity_type":"player","id":11,"created_at":1617567027,"company":"P6","price":15,"original_id":11},{"type":"bid","entity":8145,"entity_type":"player","id":12,"created_at":1617567034,"company":"P1","price":50,"original_id":12},{"type":"bid","entity":1739,"entity_type":"player","id":13,"created_at":1617567046,"company":"M27","price":140,"original_id":13},{"type":"bid","entity":1739,"entity_type":"player","id":14,"created_at":1617567051,"company":"P6","price":40,"original_id":14},{"type":"bid","entity":1739,"entity_type":"player","id":15,"created_at":1617567085,"company":"M29","price":100,"original_id":15},{"type":"message","entity":1739,"entity_type":"player","id":16,"created_at":1617567141,"message":"Oh yeah because the trains rush so fast minor valuations are not as high","original_id":16},{"type":"message","entity":1739,"entity_type":"player","id":17,"created_at":1617567141,"message":"you dont have that much time","original_id":17},{"type":"bid","entity":3828,"entity_type":"player","id":18,"created_at":1617567149,"company":"P1","price":70,"original_id":18},{"type":"bid","entity":3828,"entity_type":"player","id":19,"created_at":1617567151,"company":"P6","price":45,"original_id":19},{"type":"bid","entity":3828,"entity_type":"player","id":20,"created_at":1617567153,"company":"P21","price":0,"original_id":20},{"type":"message","entity":1739,"entity_type":"player","id":21,"created_at":1617567161,"message":"and the privates are slightly higher valued lol","original_id":21},{"type":"bid","entity":8145,"entity_type":"player","id":22,"created_at":1617567165,"company":"M27","price":160,"original_id":22},{"type":"bid","entity":8145,"entity_type":"player","id":23,"created_at":1617567176,"company":"C5","price":100,"original_id":23},{"type":"bid","entity":8145,"entity_type":"player","id":24,"created_at":1617567186,"company":"M2","price":100,"original_id":24},{"type":"bid","entity":1739,"entity_type":"player","id":25,"created_at":1617567191,"company":"M27","price":170,"original_id":25},{"type":"pass","entity":1739,"entity_type":"player","id":26,"created_at":1617567192,"original_id":26},{"type":"pass","entity":3828,"entity_type":"player","id":27,"created_at":1617567197,"original_id":27},{"type":"bid","entity":8145,"entity_type":"player","id":28,"created_at":1617567213,"company":"M27","price":180,"original_id":28},{"type":"bid","entity":8145,"entity_type":"player","id":29,"created_at":1617567222,"company":"P21","price":5,"original_id":29},{"type":"pass","entity":8145,"entity_type":"player","id":30,"created_at":1617567225,"original_id":30},{"type":"bid","entity":1739,"entity_type":"player","id":31,"created_at":1617567229,"company":"M27","price":200,"original_id":31},{"type":"pass","entity":1739,"entity_type":"player","id":32,"created_at":1617567232,"original_id":32},{"type":"pass","entity":3828,"entity_type":"player","id":33,"created_at":1617567235,"original_id":33},{"type":"bid","entity":8145,"entity_type":"player","id":34,"created_at":1617567241,"company":"M27","price":205,"original_id":34},{"type":"pass","entity":8145,"entity_type":"player","id":35,"created_at":1617567243,"original_id":35},{"type":"bid","entity":1739,"entity_type":"player","id":36,"created_at":1617567248,"company":"P6","price":50,"original_id":36},{"type":"bid","entity":1739,"entity_type":"player","id":37,"created_at":1617567252,"company":"P21","price":10,"original_id":37},{"type":"pass","entity":1739,"entity_type":"player","id":38,"created_at":1617567255,"original_id":38},{"type":"bid","entity":3828,"entity_type":"player","id":39,"created_at":1617567262,"company":"P6","price":55,"original_id":39},{"type":"pass","entity":3828,"entity_type":"player","id":40,"created_at":1617567265,"original_id":40},{"type":"pass","entity":8145,"entity_type":"player","id":41,"created_at":1617567277,"original_id":41},{"type":"bid","entity":1739,"entity_type":"player","id":42,"created_at":1617567284,"company":"P6","price":60,"original_id":42},{"type":"bid","entity":1739,"entity_type":"player","id":43,"created_at":1617567310,"company":"C6","price":100,"original_id":43},{"type":"pass","entity":1739,"entity_type":"player","id":44,"created_at":1617567314,"original_id":44},{"type":"bid","entity":3828,"entity_type":"player","id":45,"created_at":1617567319,"company":"P6","price":65,"original_id":45},{"type":"pass","entity":3828,"entity_type":"player","id":46,"created_at":1617567320,"original_id":46},{"type":"pass","entity":8145,"entity_type":"player","id":47,"created_at":1617567329,"original_id":47},{"type":"bid","entity":1739,"entity_type":"player","id":48,"created_at":1617567334,"company":"P1","price":75,"original_id":48},{"type":"pass","entity":1739,"entity_type":"player","id":49,"created_at":1617567337,"original_id":49},{"type":"bid","entity":3828,"entity_type":"player","id":50,"created_at":1617567342,"company":"P1","price":80,"original_id":50},{"type":"pass","entity":3828,"entity_type":"player","id":51,"created_at":1617567344,"original_id":51},{"type":"pass","entity":8145,"entity_type":"player","id":52,"created_at":1617567349,"original_id":52},{"type":"message","entity":1739,"entity_type":"player","id":53,"created_at":1617567394,"message":"wait","original_id":57},{"type":"message","entity":1739,"entity_type":"player","id":54,"created_at":1617567401,"message":"I bid 70","original_id":58},{"type":"message","entity":1739,"entity_type":"player","id":55,"created_at":1617567410,"message":"wait I bid 70 not sure why it passed","original_id":60},{"type":"bid","entity":1739,"entity_type":"player","id":56,"created_at":1617567419,"company":"P6","price":70,"original_id":64},{"type":"pass","entity":1739,"entity_type":"player","id":57,"created_at":1617567420,"original_id":65},{"type":"message","entity":1739,"entity_type":"player","id":58,"created_at":1617567427,"message":"does someone have master mode on?","original_id":66},{"type":"pass","entity":3828,"entity_type":"player","id":59,"created_at":1617567461,"original_id":67},{"type":"pass","entity":8145,"entity_type":"player","id":60,"created_at":1617567464,"original_id":68},{"type":"pass","entity":1739,"entity_type":"player","id":61,"created_at":1617567467,"original_id":69},{"type":"buy_train","entity":"27","entity_type":"corporation","id":62,"created_at":1617567471,"train":"L-0","price":50,"variant":"L","original_id":70},{"type":"lay_tile","entity":"27","entity_type":"corporation","id":63,"created_at":1617567478,"hex":"F5","tile":"58-0","rotation":5,"original_id":71},{"type":"run_routes","entity":"27","entity_type":"corporation","id":64,"created_at":1617567489,"routes":[{"train":"L-1","connections":[["local","E6"]],"hexes":["E6"],"revenue":40,"revenue_str":"E6"}],"original_id":72},{"type":"pass","entity":"27","entity_type":"corporation","id":65,"created_at":1617567494,"original_id":73},{"type":"buy_train","entity":"29","entity_type":"corporation","id":66,"created_at":1617567497,"train":"L-0","price":50,"variant":"L","original_id":74},{"type":"lay_tile","entity":"29","entity_type":"corporation","id":67,"created_at":1617567502,"hex":"G28","tile":"4-0","rotation":2,"original_id":75},{"type":"run_routes","entity":"29","entity_type":"corporation","id":68,"created_at":1617567509,"routes":[{"train":"L-2","connections":[["G28","F27","E26"]],"hexes":["E26","G28"],"revenue":20,"revenue_str":"E26-G28"}],"original_id":76},{"type":"pass","entity":"29","entity_type":"corporation","id":69,"created_at":1617567512,"original_id":77},{"type":"buy_train","entity":"2","entity_type":"corporation","id":70,"created_at":1617567518,"train":"L-0","price":50,"variant":"L","original_id":78},{"type":"lay_tile","entity":"2","entity_type":"corporation","id":71,"created_at":1617567557,"hex":"F3","tile":"4-1","rotation":2,"original_id":79},{"type":"run_routes","entity":"2","entity_type":"corporation","id":72,"created_at":1617567563,"routes":[{"train":"L-3","connections":[["E2","F3"]],"hexes":["F3","E2"],"revenue":20,"revenue_str":"F3-E2"}],"original_id":80},{"type":"pass","entity":"2","entity_type":"corporation","id":73,"created_at":1617567570,"original_id":81},{"type":"bid","entity":3828,"entity_type":"player","id":74,"created_at":1617567590,"company":"M16","price":100,"original_id":82},{"type":"bid","entity":3828,"entity_type":"player","id":75,"created_at":1617567595,"company":"C7","price":100,"original_id":83},{"type":"bid","entity":3828,"entity_type":"player","id":76,"created_at":1617567615,"company":"P3","price":70,"original_id":84},{"type":"bid","entity":1739,"entity_type":"player","id":77,"created_at":1617567626,"company":"M16","price":160,"original_id":85},{"type":"bid","entity":1739,"entity_type":"player","id":78,"created_at":1617567643,"company":"P3","price":100,"original_id":86},{"type":"pass","entity":1739,"entity_type":"player","id":79,"created_at":1617567645,"original_id":87},{"type":"bid","entity":8145,"entity_type":"player","id":80,"created_at":1617567663,"company":"P12","price":10,"original_id":88},{"type":"bid","entity":8145,"entity_type":"player","id":81,"created_at":1617567670,"company":"P13","price":10,"original_id":89},{"type":"pass","entity":8145,"entity_type":"player","id":82,"created_at":1617567674,"original_id":90},{"type":"bid","entity":3828,"entity_type":"player","id":83,"created_at":1617567677,"company":"M16","price":165,"original_id":91},{"type":"bid","entity":3828,"entity_type":"player","id":84,"created_at":1617567685,"company":"P3","price":105,"original_id":92},{"type":"pass","entity":3828,"entity_type":"player","id":85,"created_at":1617567690,"original_id":93},{"type":"bid","entity":1739,"entity_type":"player","id":86,"created_at":1617567695,"company":"M3","price":100,"original_id":94},{"type":"bid","entity":1739,"entity_type":"player","id":87,"created_at":1617567704,"company":"P12","price":15,"original_id":95},{"type":"bid","entity":1739,"entity_type":"player","id":88,"created_at":1617567706,"company":"P13","price":15,"original_id":96},{"type":"bid","entity":8145,"entity_type":"player","id":89,"created_at":1617567718,"company":"P12","price":20,"original_id":97},{"type":"bid","entity":8145,"entity_type":"player","id":90,"created_at":1617567725,"company":"P13","price":30,"original_id":98},{"type":"pass","entity":8145,"entity_type":"player","id":91,"created_at":1617567730,"original_id":99},{"type":"pass","entity":3828,"entity_type":"player","id":92,"created_at":1617567734,"original_id":100},{"type":"bid","entity":1739,"entity_type":"player","id":93,"created_at":1617567741,"company":"P13","price":40,"original_id":101},{"type":"bid","entity":1739,"entity_type":"player","id":94,"created_at":1617567744,"company":"P12","price":30,"original_id":102},{"type":"pass","entity":1739,"entity_type":"player","id":95,"created_at":1617567747,"original_id":103},{"type":"bid","entity":8145,"entity_type":"player","id":96,"created_at":1617567775,"company":"M3","price":105,"original_id":104},{"type":"pass","entity":8145,"entity_type":"player","id":97,"created_at":1617567782,"original_id":105},{"type":"pass","entity":3828,"entity_type":"player","id":98,"created_at":1617567786,"original_id":106},{"type":"bid","entity":1739,"entity_type":"player","id":99,"created_at":1617567789,"company":"M3","price":110,"original_id":107},{"type":"pass","entity":1739,"entity_type":"player","id":100,"created_at":1617567790,"original_id":108},{"type":"bid","entity":8145,"entity_type":"player","id":101,"created_at":1617567816,"company":"P13","price":50,"original_id":109},{"type":"bid","entity":8145,"entity_type":"player","id":102,"created_at":1617567818,"company":"P12","price":35,"original_id":110},{"type":"pass","entity":8145,"entity_type":"player","id":103,"created_at":1617567823,"original_id":111},{"type":"pass","entity":3828,"entity_type":"player","id":104,"created_at":1617567828,"original_id":112},{"type":"message","entity":1739,"entity_type":"player","id":105,"created_at":1617567838,"message":"why dont you price enforce lyr?","original_id":113},{"type":"bid","entity":1739,"entity_type":"player","id":106,"created_at":1617567841,"company":"P13","price":55,"original_id":114},{"type":"pass","entity":1739,"entity_type":"player","id":107,"created_at":1617567843,"original_id":115},{"type":"bid","entity":8145,"entity_type":"player","id":108,"created_at":1617567857,"company":"P13","price":60,"original_id":116},{"type":"pass","entity":8145,"entity_type":"player","id":109,"created_at":1617567861,"original_id":117},{"type":"pass","entity":3828,"entity_type":"player","id":110,"created_at":1617567870,"original_id":118},{"type":"bid","entity":1739,"entity_type":"player","id":111,"created_at":1617567876,"company":"C7","price":105,"original_id":119},{"type":"pass","entity":1739,"entity_type":"player","id":112,"created_at":1617567880,"original_id":120},{"type":"pass","entity":8145,"entity_type":"player","id":113,"created_at":1617567885,"original_id":121},{"type":"bid","entity":3828,"entity_type":"player","id":114,"created_at":1617567888,"company":"C7","price":110,"original_id":122},{"type":"pass","entity":3828,"entity_type":"player","id":115,"created_at":1617567894,"original_id":123},{"type":"bid","entity":1739,"entity_type":"player","id":116,"created_at":1617567899,"company":"C7","price":125,"original_id":124},{"type":"pass","entity":1739,"entity_type":"player","id":117,"created_at":1617567900,"original_id":125},{"type":"pass","entity":8145,"entity_type":"player","id":118,"created_at":1617567909,"original_id":126},{"type":"bid","entity":3828,"entity_type":"player","id":119,"created_at":1617567942,"company":"C7","price":150,"original_id":129},{"type":"pass","entity":3828,"entity_type":"player","id":120,"created_at":1617567945,"original_id":130},{"type":"pass","entity":1739,"entity_type":"player","id":121,"created_at":1617567949,"original_id":131},{"type":"pass","entity":8145,"entity_type":"player","id":122,"created_at":1617567958,"original_id":132},{"type":"pass","entity":3828,"entity_type":"player","id":123,"created_at":1617567961,"original_id":133},{"type":"lay_tile","entity":"27","entity_type":"corporation","id":124,"created_at":1617567975,"hex":"E8","tile":"8-0","rotation":3,"original_id":134},{"type":"run_routes","entity":"27","entity_type":"corporation","id":125,"created_at":1617567994,"routes":[{"train":"L-1","connections":[["F5","E6"]],"hexes":["E6","F5"],"revenue":50,"revenue_str":"E6-F5"}],"original_id":135},{"type":"buy_train","entity":"27","entity_type":"corporation","id":126,"created_at":1617568028,"train":"L-1","price":80,"variant":"2","exchange":"L-1","original_id":136},{"type":"pass","entity":"27","entity_type":"corporation","id":127,"created_at":1617568035,"original_id":137},{"type":"pass","entity":"29","entity_type":"corporation","id":128,"created_at":1617568039,"original_id":138},{"type":"lay_tile","entity":"29","entity_type":"corporation","id":129,"created_at":1617568043,"hex":"H29","tile":"9-0","rotation":2,"original_id":139},{"type":"run_routes","entity":"29","entity_type":"corporation","id":130,"created_at":1617568045,"routes":[{"train":"L-2","connections":[["G28","F27","E26"]],"hexes":["G28","E26"],"revenue":20,"revenue_str":"G28-E26"}],"original_id":140},{"type":"buy_train","entity":"29","entity_type":"corporation","id":131,"created_at":1617568047,"train":"L-2","price":70,"variant":"2","exchange":"L-2","original_id":141},{"type":"pass","entity":"2","entity_type":"corporation","id":132,"created_at":1617568051,"original_id":142},{"type":"lay_tile","entity":"2","entity_type":"corporation","id":133,"created_at":1617568114,"hex":"F7","tile":"1-0","rotation":2,"original_id":143},{"type":"run_routes","entity":"2","entity_type":"corporation","id":134,"created_at":1617568121,"routes":[{"train":"L-3","connections":[["E2","F3"]],"hexes":["E2","F3"],"revenue":20,"revenue_str":"E2-F3"}],"original_id":144},{"type":"buy_train","entity":"2","entity_type":"corporation","id":135,"created_at":1617568123,"train":"L-3","price":70,"variant":"2","exchange":"L-3","original_id":145},{"type":"buy_train","entity":"16","entity_type":"corporation","id":136,"created_at":1617568128,"train":"L-0","price":50,"variant":"L","original_id":146},{"type":"pass","entity":"16","entity_type":"corporation","id":137,"created_at":1617568131,"original_id":147},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":138,"created_at":1617568137,"hex":"L29","tile":"9-1","rotation":2,"original_id":148},{"type":"run_routes","entity":"16","entity_type":"corporation","id":139,"created_at":1617568146,"routes":[{"train":"L-7","connections":[["local","M30"]],"hexes":["M30"],"revenue":40,"revenue_str":"M30"}],"original_id":149},{"type":"buy_train","entity":"16","entity_type":"corporation","id":140,"created_at":1617568148,"train":"L-7","price":70,"variant":"2","exchange":"L-7","original_id":150},{"type":"buy_train","entity":"3","entity_type":"corporation","id":141,"created_at":1617568151,"train":"L-0","price":50,"variant":"L","original_id":151},{"type":"pass","entity":"3","entity_type":"corporation","id":142,"created_at":1617568153,"original_id":152},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":143,"created_at":1617568158,"hex":"G6","tile":"8-1","rotation":2,"original_id":153},{"type":"run_routes","entity":"3","entity_type":"corporation","id":144,"created_at":1617568169,"routes":[{"train":"L-8","connections":[["H5","G6","F5"]],"hexes":["F5","H5"],"revenue":40,"revenue_str":"F5-H5"}],"original_id":154},{"type":"buy_train","entity":"3","entity_type":"corporation","id":145,"created_at":1617568172,"train":"L-8","price":70,"variant":"2","exchange":"L-8","original_id":155},{"type":"bid","entity":1739,"entity_type":"player","id":146,"created_at":1617568178,"company":"P9","price":0,"original_id":156},{"type":"bid","entity":1739,"entity_type":"player","id":147,"created_at":1617568179,"company":"P8","price":0,"original_id":157},{"type":"bid","entity":1739,"entity_type":"player","id":148,"created_at":1617568182,"company":"P11","price":0,"original_id":158},{"type":"bid","entity":8145,"entity_type":"player","id":149,"created_at":1617568204,"company":"P8","price":10,"original_id":159},{"type":"bid","entity":8145,"entity_type":"player","id":150,"created_at":1617568214,"company":"P11","price":10,"original_id":160},{"type":"bid","entity":8145,"entity_type":"player","id":151,"created_at":1617568223,"company":"P9","price":10,"original_id":161},{"type":"pass","entity":3828,"entity_type":"player","id":152,"created_at":1617568232,"original_id":162},{"type":"bid","entity":1739,"entity_type":"player","id":153,"created_at":1617568243,"company":"P9","price":15,"original_id":163},{"type":"bid","entity":1739,"entity_type":"player","id":154,"created_at":1617568244,"company":"P8","price":15,"original_id":164},{"type":"bid","entity":1739,"entity_type":"player","id":155,"created_at":1617568247,"company":"P11","price":15,"original_id":165},{"type":"bid","entity":8145,"entity_type":"player","id":156,"created_at":1617568258,"company":"P8","price":20,"original_id":166},{"type":"bid","entity":8145,"entity_type":"player","id":157,"created_at":1617568261,"company":"P9","price":20,"original_id":167},{"type":"bid","entity":8145,"entity_type":"player","id":158,"created_at":1617568266,"company":"P11","price":20,"original_id":168},{"type":"pass","entity":3828,"entity_type":"player","id":159,"created_at":1617568276,"original_id":169},{"type":"bid","entity":1739,"entity_type":"player","id":160,"created_at":1617568282,"company":"P11","price":25,"original_id":170},{"type":"bid","entity":1739,"entity_type":"player","id":161,"created_at":1617568287,"company":"P8","price":25,"original_id":171},{"type":"bid","entity":1739,"entity_type":"player","id":162,"created_at":1617568287,"company":"P9","price":25,"original_id":172},{"type":"bid","entity":8145,"entity_type":"player","id":163,"created_at":1617568310,"company":"P8","price":30,"original_id":173},{"type":"bid","entity":8145,"entity_type":"player","id":164,"created_at":1617568315,"company":"P11","price":30,"original_id":174},{"type":"bid","entity":8145,"entity_type":"player","id":165,"created_at":1617568318,"company":"P9","price":30,"original_id":175},{"type":"pass","entity":3828,"entity_type":"player","id":166,"created_at":1617568322,"original_id":176},{"type":"bid","entity":1739,"entity_type":"player","id":167,"created_at":1617568344,"company":"P9","price":45,"original_id":181},{"type":"pass","entity":1739,"entity_type":"player","id":168,"created_at":1617568346,"original_id":182},{"type":"pass","entity":8145,"entity_type":"player","id":169,"created_at":1617568364,"original_id":183},{"type":"pass","entity":3828,"entity_type":"player","id":170,"created_at":1617568381,"original_id":184},{"type":"message","entity":3828,"entity_type":"player","id":171,"created_at":1617568542,"message":"wheresvic you yup","original_id":185},{"type":"message","entity":1739,"entity_type":"player","id":172,"created_at":1617568606,"message":"sorry internet conked off","original_id":186},{"type":"bid","entity":1739,"entity_type":"player","id":173,"created_at":1617568606,"company":"M1","price":100,"original_id":187},{"type":"pass","entity":1739,"entity_type":"player","id":174,"created_at":1617568608,"original_id":188},{"type":"par","entity":8145,"entity_type":"player","id":175,"created_at":1617568632,"corporation":"CR","share_price":"70,6,4","original_id":189},{"type":"pass","entity":3828,"entity_type":"player","id":176,"created_at":1617568636,"original_id":190},{"type":"par","entity":1739,"entity_type":"player","id":177,"created_at":1617568706,"corporation":"MR","share_price":"70,6,4","original_id":191},{"type":"pass","entity":8145,"entity_type":"player","id":178,"created_at":1617568721,"original_id":192},{"type":"pass","entity":3828,"entity_type":"player","id":179,"created_at":1617568726,"original_id":193},{"type":"pass","entity":1739,"entity_type":"player","id":180,"created_at":1617568730,"original_id":194},{"type":"choose","entity":1739,"entity_type":"player","id":181,"created_at":1617568733,"choice":"double","original_id":195},{"type":"pass","entity":"27","entity_type":"corporation","id":182,"created_at":1617568742,"original_id":196},{"type":"message","entity":1739,"entity_type":"player","id":183,"created_at":1617568768,"message":"sorry for the delay","original_id":197},{"type":"message","entity":1739,"entity_type":"player","id":184,"created_at":1617568772,"message":"had to reset the router","original_id":198},{"type":"message","entity":3828,"entity_type":"player","id":185,"created_at":1617568796,"message":"that sucks","original_id":199},{"type":"lay_tile","entity":"27","entity_type":"corporation","id":186,"created_at":1617568799,"hex":"G4","tile":"57-0","rotation":2,"original_id":200},{"type":"message","entity":3828,"entity_type":"player","id":187,"created_at":1617568816,"message":"i overhauled my system this year","original_id":201},{"type":"run_routes","entity":"27","entity_type":"corporation","id":188,"created_at":1617568817,"routes":[{"train":"L-1","connections":[["E6","E4","E2"]],"hexes":["E2","E6"],"revenue":50,"revenue_str":"E2-E6"}],"original_id":202},{"type":"message","entity":1739,"entity_type":"player","id":189,"created_at":1617568887,"message":"ah I am at my inlaws","original_id":203},{"type":"message","entity":1739,"entity_type":"player","id":190,"created_at":1617568900,"message":"they have an old school house with an old school router lol","original_id":204},{"type":"message","entity":1739,"entity_type":"player","id":191,"created_at":1617568909,"message":"but we did eat like 1kg of chocolate and 1kg of meat","original_id":205},{"type":"message","entity":1739,"entity_type":"player","id":192,"created_at":1617568914,"message":"so no complaints lol","original_id":206},{"type":"pass","entity":"27","entity_type":"corporation","id":193,"created_at":1617568920,"original_id":207},{"type":"message","entity":3828,"entity_type":"player","id":194,"created_at":1617568921,"message":"lol,,,,,nope","original_id":208},{"type":"pass","entity":"29","entity_type":"corporation","id":195,"created_at":1617568927,"original_id":209},{"type":"lay_tile","entity":"29","entity_type":"corporation","id":196,"created_at":1617568932,"hex":"J29","tile":"6-0","rotation":1,"original_id":210},{"type":"run_routes","entity":"29","entity_type":"corporation","id":197,"created_at":1617568937,"routes":[{"train":"L-2","connections":[["G28","F27","E26"]],"hexes":["G28","E26"],"revenue":20,"revenue_str":"G28-E26"}],"original_id":211},{"type":"pass","entity":"29","entity_type":"corporation","id":198,"created_at":1617568940,"original_id":212},{"type":"pass","entity":"2","entity_type":"corporation","id":199,"created_at":1617568951,"original_id":213},{"type":"pass","entity":"2","entity_type":"corporation","id":200,"created_at":1617568959,"original_id":214},{"type":"run_routes","entity":"2","entity_type":"corporation","id":201,"created_at":1617568966,"routes":[{"train":"L-3","connections":[["E2","E4","E6"]],"hexes":["E6","E2"],"revenue":50,"revenue_str":"E6-E2"}],"original_id":215},{"type":"pass","entity":"2","entity_type":"corporation","id":202,"created_at":1617568969,"original_id":216},{"type":"pass","entity":"16","entity_type":"corporation","id":203,"created_at":1617568972,"original_id":217},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":204,"created_at":1617568979,"hex":"K28","tile":"6-1","rotation":5,"original_id":218},{"type":"run_routes","entity":"16","entity_type":"corporation","id":205,"created_at":1617568990,"routes":[{"train":"L-7","connections":[["M30","L29","K28"]],"hexes":["K28","M30"],"revenue":60,"revenue_str":"K28-M30"}],"original_id":219},{"type":"pass","entity":"16","entity_type":"corporation","id":206,"created_at":1617568997,"original_id":220},{"type":"pass","entity":"3","entity_type":"corporation","id":207,"created_at":1617569001,"original_id":221},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":208,"created_at":1617569010,"hex":"I6","tile":"9-2","rotation":2,"original_id":222},{"type":"run_routes","entity":"3","entity_type":"corporation","id":209,"created_at":1617569023,"routes":[{"train":"L-8","connections":[["H5","G4"]],"hexes":["G4","H5"],"revenue":50,"revenue_str":"G4-H5"}],"original_id":223},{"type":"pass","entity":"3","entity_type":"corporation","id":210,"created_at":1617569026,"original_id":224},{"type":"buy_train","entity":"1","entity_type":"corporation","id":211,"created_at":1617569028,"train":"L-0","price":50,"variant":"L","original_id":225},{"type":"pass","entity":"1","entity_type":"corporation","id":212,"created_at":1617569029,"original_id":226},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":213,"created_at":1617569035,"hex":"H3","tile":"3-0","rotation":2,"original_id":227},{"type":"run_routes","entity":"1","entity_type":"corporation","id":214,"created_at":1617569041,"routes":[{"train":"L-13","connections":[["H3","H1"]],"hexes":["H1","H3"],"revenue":40,"revenue_str":"H1-H3"}],"original_id":228},{"type":"buy_train","entity":"1","entity_type":"corporation","id":215,"created_at":1617569042,"train":"L-13","price":70,"variant":"2","exchange":"L-13","original_id":229},{"type":"pass","entity":"CR","entity_type":"corporation","id":216,"created_at":1617569056,"original_id":230},{"type":"message","entity":1739,"entity_type":"player","id":217,"created_at":1617569079,"message":"for once I played it right LOL","original_id":231},{"type":"pass","entity":"CR","entity_type":"corporation","id":218,"created_at":1617569122,"original_id":234},{"type":"pass","entity":"CR","entity_type":"corporation","id":219,"created_at":1617569125,"original_id":235},{"type":"pass","entity":"CR","entity_type":"corporation","id":220,"created_at":1617569129,"original_id":236},{"type":"buy_train","entity":"CR","entity_type":"corporation","id":221,"created_at":1617569147,"train":"3-0","price":200,"variant":"3","original_id":237},{"type":"pass","entity":"MR","entity_type":"corporation","id":222,"created_at":1617569158,"original_id":238},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":223,"created_at":1617569164,"hex":"J29","tile":"619-0","rotation":1,"original_id":239},{"type":"pass","entity":"MR","entity_type":"corporation","id":224,"created_at":1617569168,"original_id":240},{"type":"pass","entity":"MR","entity_type":"corporation","id":225,"created_at":1617569174,"original_id":241},{"type":"buy_train","entity":"MR","entity_type":"corporation","id":226,"created_at":1617569178,"train":"3-1","price":200,"variant":"3","original_id":242},{"type":"acquire_company","entity":"27","entity_type":"corporation","id":227,"created_at":1617569188,"company":"P8","original_id":243},{"type":"pass","entity":"27","entity_type":"corporation","id":228,"created_at":1617569193,"original_id":244},{"type":"choose","entity":"27","entity_type":"corporation","id":229,"created_at":1617569199,"choice":"discount","original_id":245},{"type":"lay_tile","entity":"27","entity_type":"corporation","id":230,"created_at":1617569206,"hex":"F9","tile":"9-3","rotation":2,"original_id":246},{"type":"run_routes","entity":"27","entity_type":"corporation","id":231,"created_at":1617569213,"routes":[{"train":"L-1","connections":[["E6","E4","E2"]],"hexes":["E6","E2"],"revenue":60,"revenue_str":"E6-E2"}],"original_id":247},{"type":"pass","entity":"27","entity_type":"corporation","id":232,"created_at":1617569217,"original_id":248},{"type":"pass","entity":"29","entity_type":"corporation","id":233,"created_at":1617569220,"original_id":249},{"type":"lay_tile","entity":"29","entity_type":"corporation","id":234,"created_at":1617569244,"hex":"K30","tile":"8-2","rotation":2,"original_id":250},{"type":"run_routes","entity":"29","entity_type":"corporation","id":235,"created_at":1617569248,"routes":[{"train":"L-2","connections":[["G28","F27","E26"]],"hexes":["G28","E26"],"revenue":30,"revenue_str":"G28-E26"}],"original_id":251},{"type":"pass","entity":"29","entity_type":"corporation","id":236,"created_at":1617569250,"original_id":252},{"type":"pass","entity":"2","entity_type":"corporation","id":237,"created_at":1617569260,"original_id":253},{"type":"lay_tile","entity":"2","entity_type":"corporation","id":238,"created_at":1617569271,"hex":"G10","tile":"9-4","rotation":2,"original_id":254},{"type":"run_routes","entity":"2","entity_type":"corporation","id":239,"created_at":1617569277,"routes":[{"train":"L-3","connections":[["E2","E4","E6"]],"hexes":["E2","E6"],"revenue":60,"revenue_str":"E2-E6"}],"original_id":255},{"type":"pass","entity":"2","entity_type":"corporation","id":240,"created_at":1617569279,"original_id":256},{"type":"pass","entity":"16","entity_type":"corporation","id":241,"created_at":1617569282,"original_id":257},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":242,"created_at":1617569295,"hex":"K28","tile":"619-1","rotation":5,"original_id":258},{"type":"run_routes","entity":"16","entity_type":"corporation","id":243,"created_at":1617569299,"routes":[{"train":"L-7","connections":[["M30","L29","K28"]],"hexes":["M30","K28"],"revenue":90,"revenue_str":"M30-K28"}],"original_id":259},{"type":"pass","entity":"16","entity_type":"corporation","id":244,"created_at":1617569304,"original_id":260},{"type":"pass","entity":"3","entity_type":"corporation","id":245,"created_at":1617569309,"original_id":261},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":246,"created_at":1617569314,"hex":"G4","tile":"619-2","rotation":5,"original_id":262},{"type":"run_routes","entity":"3","entity_type":"corporation","id":247,"created_at":1617569317,"routes":[{"train":"L-8","connections":[["H5","G4"]],"hexes":["H5","G4"],"revenue":60,"revenue_str":"H5-G4"}],"original_id":263},{"type":"pass","entity":"3","entity_type":"corporation","id":248,"created_at":1617569320,"original_id":264},{"type":"pass","entity":"1","entity_type":"corporation","id":249,"created_at":1617569324,"original_id":265},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":250,"created_at":1617569328,"hex":"G2","tile":"8-3","rotation":4,"original_id":266},{"type":"run_routes","entity":"1","entity_type":"corporation","id":251,"created_at":1617569335,"routes":[{"train":"L-13","connections":[["G4","G2","H1"]],"hexes":["H1","G4"],"revenue":70,"revenue_str":"H1-G4"}],"original_id":267},{"type":"pass","entity":"1","entity_type":"corporation","id":252,"created_at":1617569359,"original_id":268},{"type":"pass","entity":"CR","entity_type":"corporation","id":253,"created_at":1617569372,"original_id":269},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":254,"created_at":1617569378,"hex":"H11","tile":"7-0","rotation":1,"original_id":270},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":255,"created_at":1617569382,"hex":"G12","tile":"6-2","rotation":4,"original_id":271},{"type":"hex_token","entity":"CR","entity_type":"corporation","id":256,"created_at":1617569392,"hex":"G12","token_type":"destination","original_id":272},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":257,"created_at":1617569407,"routes":[{"train":"3-0","connections":[["E6","E8","F9","G10","H11","G12"],["E2","E4","E6"]],"hexes":["G12","E6","E2"],"revenue":100,"revenue_str":"G12-E6-E2 (£20)"}],"original_id":273},{"type":"dividend","entity":"CR","entity_type":"corporation","id":258,"created_at":1617569410,"kind":"payout","original_id":274},{"type":"pass","entity":"CR","entity_type":"corporation","id":259,"created_at":1617569415,"original_id":275},{"type":"merge","entity":"CR","entity_type":"corporation","id":260,"created_at":1617569430,"corporation":"2","original_id":276},{"type":"choose","entity":"CR","entity_type":"corporation","id":261,"created_at":1617569435,"choice":"two_shares","original_id":277},{"type":"choose","entity":"CR","entity_type":"corporation","id":262,"created_at":1617569438,"choice":"exchange","original_id":278},{"type":"pass","entity":"CR","entity_type":"corporation","id":263,"created_at":1617569444,"original_id":279},{"type":"acquire_company","entity":"MR","entity_type":"corporation","id":264,"created_at":1617569512,"company":"P6","original_id":280},{"type":"acquire_company","entity":"MR","entity_type":"corporation","id":265,"created_at":1617569515,"company":"P9","original_id":281},{"type":"pass","entity":"MR","entity_type":"corporation","id":266,"created_at":1617569516,"original_id":282},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":267,"created_at":1617569522,"hex":"L29","tile":"83-0","rotation":2,"original_id":283},{"type":"pass","entity":"MR","entity_type":"corporation","id":268,"created_at":1617569525,"original_id":284},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":269,"created_at":1617569533,"routes":[{"train":"3-1","connections":[["J29","K30","L29","M30"],["I30","J29"]],"hexes":["M30","J29","I30"],"revenue":140,"revenue_str":"M30-J29-I30"}],"original_id":285},{"type":"dividend","entity":"MR","entity_type":"corporation","id":270,"created_at":1617569534,"kind":"payout","original_id":286},{"type":"pass","entity":"MR","entity_type":"corporation","id":271,"created_at":1617569536,"original_id":287},{"type":"merge","entity":"MR","entity_type":"corporation","id":272,"created_at":1617569541,"corporation":"29","original_id":288},{"type":"choose","entity":"MR","entity_type":"corporation","id":273,"created_at":1617569542,"choice":"two_shares","original_id":289},{"type":"choose","entity":"MR","entity_type":"corporation","id":274,"created_at":1617569545,"choice":"exchange","original_id":290},{"type":"pass","entity":"MR","entity_type":"corporation","id":275,"created_at":1617569547,"original_id":291},{"type":"bid","entity":1739,"entity_type":"player","id":276,"created_at":1617569562,"company":"P15","price":60,"original_id":292},{"type":"bid","entity":1739,"entity_type":"player","id":277,"created_at":1617569570,"company":"P2","price":25,"original_id":293},{"type":"bid","entity":1739,"entity_type":"player","id":278,"created_at":1617569576,"company":"P18","price":15,"original_id":294},{"type":"par","entity":3828,"entity_type":"player","id":279,"created_at":1617569589,"corporation":"LYR","share_price":"80,5,4","original_id":295},{"type":"bid","entity":8145,"entity_type":"player","id":280,"created_at":1617569659,"company":"P15","price":65,"original_id":296},{"type":"bid","entity":8145,"entity_type":"player","id":281,"created_at":1617569664,"company":"P18","price":20,"original_id":297},{"type":"bid","entity":8145,"entity_type":"player","id":282,"created_at":1617569666,"company":"P2","price":30,"original_id":298},{"type":"bid","entity":1739,"entity_type":"player","id":283,"created_at":1617569675,"company":"P15","price":70,"original_id":299},{"type":"pass","entity":1739,"entity_type":"player","id":284,"created_at":1617569682,"original_id":300},{"type":"buy_shares","entity":3828,"entity_type":"player","id":285,"created_at":1617569689,"shares":["LYR_1"],"percent":10,"original_id":301},{"type":"program_buy_shares","entity":3828,"entity_type":"player","id":286,"created_at":1617569699,"corporation":"CR","until_condition":1,"from_market":false,"original_id":302},{"type":"buy_shares","entity":8145,"entity_type":"player","id":287,"created_at":1617569717,"shares":["CR_3"],"percent":10,"original_id":303},{"type":"buy_shares","entity":1739,"entity_type":"player","id":288,"created_at":1617569732,"shares":["CR_4"],"percent":10,"original_id":304},{"type":"pass","entity":3828,"entity_type":"player","id":289,"created_at":1617569742,"original_id":305},{"type":"program_disable","entity":3828,"entity_type":"player","id":290,"created_at":1617569746,"reason":"user","original_id":306},{"type":"program_share_pass","entity":3828,"entity_type":"player","id":291,"created_at":1617569752,"original_id":307},{"type":"buy_shares","entity":8145,"entity_type":"player","id":292,"created_at":1617569780,"shares":["CR_5"],"percent":10,"original_id":308},{"type":"bid","entity":1739,"entity_type":"player","id":293,"created_at":1617569789,"company":"P18","price":25,"original_id":309},{"type":"pass","entity":1739,"entity_type":"player","id":294,"created_at":1617569792,"auto_actions":[{"type":"pass","entity":3828,"entity_type":"player","created_at":1617569791}],"original_id":310},{"type":"pass","entity":8145,"entity_type":"player","id":295,"created_at":1617569805,"original_id":311},{"type":"pass","entity":1739,"entity_type":"player","id":296,"created_at":1617569808,"original_id":312},{"type":"pass","entity":"27","entity_type":"corporation","id":297,"created_at":1617569835,"original_id":313},{"type":"lay_tile","entity":"27","entity_type":"corporation","id":298,"created_at":1617569896,"hex":"G14","tile":"9-5","rotation":0,"original_id":314},{"type":"run_routes","entity":"27","entity_type":"corporation","id":299,"created_at":1617569923,"routes":[{"train":"L-1","connections":[["E6","E8","F9","G10","H11","G12"]],"hexes":["G12","E6"],"revenue":70,"revenue_str":"G12-E6"}],"original_id":315},{"type":"pass","entity":"27","entity_type":"corporation","id":300,"created_at":1617569928,"original_id":316},{"type":"pass","entity":"16","entity_type":"corporation","id":301,"created_at":1617569943,"original_id":317},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":302,"created_at":1617569958,"hex":"K26","tile":"8-4","rotation":0,"original_id":318},{"type":"run_routes","entity":"16","entity_type":"corporation","id":303,"created_at":1617569962,"routes":[{"train":"L-7","connections":[["M30","L29","K28"]],"hexes":["M30","K28"],"revenue":90,"revenue_str":"M30-K28"}],"original_id":319},{"type":"pass","entity":"16","entity_type":"corporation","id":304,"created_at":1617569966,"original_id":320},{"type":"pass","entity":"3","entity_type":"corporation","id":305,"created_at":1617569969,"original_id":321},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":306,"created_at":1617569973,"hex":"H5","tile":"207-0","rotation":5,"original_id":322},{"type":"run_routes","entity":"3","entity_type":"corporation","id":307,"created_at":1617569975,"routes":[{"train":"L-8","connections":[["H5","G4"]],"hexes":["H5","G4"],"revenue":70,"revenue_str":"H5-G4"}],"original_id":323},{"type":"pass","entity":"3","entity_type":"corporation","id":308,"created_at":1617569979,"original_id":324},{"type":"pass","entity":"1","entity_type":"corporation","id":309,"created_at":1617569982,"original_id":325},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":310,"created_at":1617570006,"hex":"G6","tile":"81-0","rotation":0,"original_id":326},{"type":"run_routes","entity":"1","entity_type":"corporation","id":311,"created_at":1617570011,"routes":[{"train":"L-13","connections":[["G4","G2","H1"]],"hexes":["G4","H1"],"revenue":70,"revenue_str":"G4-H1"}],"original_id":327},{"type":"pass","entity":"1","entity_type":"corporation","id":312,"created_at":1617570027,"original_id":328},{"type":"pass","entity":"MR","entity_type":"corporation","id":313,"created_at":1617570029,"original_id":329},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":314,"created_at":1617570042,"hex":"K26","tile":"81-1","rotation":0,"original_id":330},{"type":"pass","entity":"MR","entity_type":"corporation","id":315,"created_at":1617570047,"original_id":331},{"type":"pass","entity":"MR","entity_type":"corporation","id":316,"created_at":1617570049,"original_id":332},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":317,"created_at":1617570057,"routes":[{"train":"3-1","connections":[["J29","K30","L29","M30"],["I30","J29"]],"hexes":["M30","J29","I30"],"revenue":140,"revenue_str":"M30-J29-I30"},{"train":"L-2","connections":[["J29","K28"]],"hexes":["K28","J29"],"revenue":60,"revenue_str":"K28-J29"}],"original_id":333},{"type":"dividend","entity":"MR","entity_type":"corporation","id":318,"created_at":1617570059,"kind":"payout","original_id":334},{"type":"buy_train","entity":"MR","entity_type":"corporation","id":319,"created_at":1617570062,"train":"3-3","price":200,"variant":"3","original_id":335},{"type":"pass","entity":"MR","entity_type":"corporation","id":320,"created_at":1617570064,"original_id":336},{"type":"pass","entity":"MR","entity_type":"corporation","id":321,"created_at":1617570075,"original_id":337},{"type":"pass","entity":"MR","entity_type":"corporation","id":322,"created_at":1617570077,"original_id":338},{"type":"acquire_company","entity":"LYR","entity_type":"corporation","id":323,"created_at":1617570099,"company":"P3","original_id":339},{"type":"pass","entity":"LYR","entity_type":"corporation","id":324,"created_at":1617570102,"original_id":340},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":325,"created_at":1617570112,"hex":"H23","tile":"6-3","rotation":2,"original_id":341},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":326,"created_at":1617570191,"hex":"I24","tile":"8-5","rotation":3,"original_id":352},{"type":"hex_token","entity":"LYR","entity_type":"corporation","id":327,"created_at":1617570196,"hex":"I22","token_type":"destination","original_id":353},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":328,"created_at":1617570206,"routes":[{"train":"2P-0","connections":[["I22","H23"]],"hexes":["H23","I22"],"revenue":60,"revenue_str":"H23-I22"}],"original_id":354},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":329,"created_at":1617570208,"kind":"payout","original_id":355},{"type":"buy_train","entity":"LYR","entity_type":"corporation","id":330,"created_at":1617570211,"train":"3-4","price":200,"variant":"3","original_id":356},{"type":"pass","entity":"LYR","entity_type":"corporation","id":331,"created_at":1617570215,"original_id":357},{"type":"pass","entity":"CR","entity_type":"corporation","id":332,"created_at":1617570220,"original_id":358},{"type":"message","entity":3828,"entity_type":"player","id":333,"created_at":1617570224,"message":"cant get closer than that","original_id":359},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":334,"created_at":1617570226,"hex":"G12","tile":"15-0","rotation":3,"original_id":360},{"type":"place_token","entity":"CR","entity_type":"corporation","id":335,"created_at":1617570245,"city":"H1-0-0","slot":1,"original_id":361},{"type":"message","entity":1739,"entity_type":"player","id":336,"created_at":1617570272,"message":"oof that works for me","original_id":362},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":337,"created_at":1617570277,"routes":[{"train":"3-0","connections":[["G4","H5"],["H1","G2","G4"]],"hexes":["H5","G4","H1"],"revenue":110,"revenue_str":"H5-G4-H1"},{"train":"L-3","connections":[["E6","E8","F9","G10","H11","G12"]],"hexes":["G12","E6"],"revenue":110,"revenue_str":"G12-E6 (£30)"}],"original_id":363},{"type":"dividend","entity":"CR","entity_type":"corporation","id":338,"created_at":1617570307,"kind":"payout","original_id":366},{"type":"buy_train","entity":"CR","entity_type":"corporation","id":339,"created_at":1617570308,"train":"3-5","price":200,"variant":"3","original_id":367},{"type":"pass","entity":"CR","entity_type":"corporation","id":340,"created_at":1617570316,"original_id":368},{"type":"pass","entity":"CR","entity_type":"corporation","id":341,"created_at":1617570321,"original_id":369},{"type":"pass","entity":"CR","entity_type":"corporation","id":342,"created_at":1617570323,"original_id":370},{"type":"pass","entity":"27","entity_type":"corporation","id":343,"created_at":1617570329,"original_id":371},{"type":"lay_tile","entity":"27","entity_type":"corporation","id":344,"created_at":1617570360,"hex":"H13","tile":"58-1","rotation":0,"original_id":372},{"type":"run_routes","entity":"27","entity_type":"corporation","id":345,"created_at":1617570367,"routes":[{"train":"L-1","connections":[["E6","E8","F9","G10","H11","G12"]],"hexes":["E6","G12"],"revenue":80,"revenue_str":"E6-G12"}],"original_id":373},{"type":"pass","entity":"27","entity_type":"corporation","id":346,"created_at":1617570393,"original_id":374},{"type":"pass","entity":"16","entity_type":"corporation","id":347,"created_at":1617570396,"original_id":375},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":348,"created_at":1617570403,"hex":"J25","tile":"9-1","rotation":2,"original_id":376},{"type":"run_routes","entity":"16","entity_type":"corporation","id":349,"created_at":1617570406,"routes":[{"train":"L-7","connections":[["M30","L29","K28"]],"hexes":["M30","K28"],"revenue":90,"revenue_str":"M30-K28"}],"original_id":377},{"type":"pass","entity":"16","entity_type":"corporation","id":350,"created_at":1617570411,"original_id":378},{"type":"pass","entity":"3","entity_type":"corporation","id":351,"created_at":1617570415,"original_id":379},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":352,"created_at":1617570429,"hex":"F5","tile":"141-0","rotation":4,"original_id":380},{"type":"run_routes","entity":"3","entity_type":"corporation","id":353,"created_at":1617570431,"routes":[{"train":"L-8","connections":[["H5","G4"]],"hexes":["H5","G4"],"revenue":70,"revenue_str":"H5-G4"}],"original_id":381},{"type":"buy_train","entity":"3","entity_type":"corporation","id":354,"created_at":1617570448,"train":"3-1","price":125,"original_id":382},{"type":"pass","entity":"1","entity_type":"corporation","id":355,"created_at":1617570453,"original_id":383},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":356,"created_at":1617570466,"hex":"G2","tile":"83-1","rotation":1,"original_id":384},{"type":"run_routes","entity":"1","entity_type":"corporation","id":357,"created_at":1617570471,"routes":[{"train":"L-13","connections":[["G4","G2","H1"]],"hexes":["G4","H1"],"revenue":70,"revenue_str":"G4-H1"}],"original_id":385},{"type":"buy_train","entity":"1","entity_type":"corporation","id":358,"created_at":1617570484,"train":"3-3","price":105,"original_id":386},{"type":"pass","entity":"MR","entity_type":"corporation","id":359,"created_at":1617570489,"original_id":387},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":360,"created_at":1617570496,"hex":"G20","tile":"58-2","rotation":4,"original_id":388},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":361,"created_at":1617570500,"hex":"H19","tile":"6-4","rotation":1,"original_id":389},{"type":"pass","entity":"MR","entity_type":"corporation","id":362,"created_at":1617570504,"original_id":390},{"type":"place_token","entity":"MR","entity_type":"corporation","id":363,"created_at":1617570517,"city":"I22-0-0","slot":1,"original_id":391},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":364,"created_at":1617570531,"routes":[{"train":"L-2","connections":[["J29","K30","L29","M30"]],"hexes":["M30","J29"],"revenue":90,"revenue_str":"M30-J29"}],"original_id":392},{"type":"dividend","entity":"MR","entity_type":"corporation","id":365,"created_at":1617570533,"kind":"payout","original_id":393},{"type":"buy_train","entity":"MR","entity_type":"corporation","id":366,"created_at":1617570535,"train":"4-0","price":300,"variant":"4","original_id":394},{"type":"pass","entity":"MR","entity_type":"corporation","id":367,"created_at":1617570540,"original_id":395},{"type":"pass","entity":"MR","entity_type":"corporation","id":368,"created_at":1617570546,"original_id":396},{"type":"pass","entity":"MR","entity_type":"corporation","id":369,"created_at":1617570549,"original_id":397},{"type":"pass","entity":"CR","entity_type":"corporation","id":370,"created_at":1617570563,"original_id":398},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":371,"created_at":1617570579,"hex":"F9","tile":"82-0","rotation":2,"original_id":399},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":372,"created_at":1617570605,"routes":[{"train":"3-0","connections":[["G4","H5"],["H1","G2","G4"]],"hexes":["H5","G4","H1"],"revenue":110,"revenue_str":"H5-G4-H1"},{"train":"3-5","connections":[["E6","E8","F9","G10","H11","G12"],["E2","E4","E6"]],"hexes":["G12","E6","E2"],"revenue":120,"revenue_str":"G12-E6-E2 (£30)"}],"original_id":400},{"type":"dividend","entity":"CR","entity_type":"corporation","id":373,"created_at":1617570626,"kind":"withhold","original_id":401},{"type":"pass","entity":"CR","entity_type":"corporation","id":374,"created_at":1617570630,"original_id":402},{"type":"merge","entity":"CR","entity_type":"corporation","id":375,"created_at":1617570638,"corporation":"27","original_id":403},{"type":"choose","entity":"CR","entity_type":"corporation","id":376,"created_at":1617570639,"choice":"two_shares","original_id":404},{"type":"choose","entity":"CR","entity_type":"corporation","id":377,"created_at":1617570646,"choice":"exchange","original_id":405},{"type":"pass","entity":"CR","entity_type":"corporation","id":378,"created_at":1617570655,"original_id":406},{"type":"pass","entity":"LYR","entity_type":"corporation","id":379,"created_at":1617570661,"original_id":407},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":380,"created_at":1617570670,"hex":"G22","tile":"208-0","rotation":2,"original_id":408},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":381,"created_at":1617570700,"routes":[{"train":"2P-0","connections":[["I22","I24","J25","K26","K28"]],"hexes":["K28","I22"],"revenue":70,"revenue_str":"K28-I22"},{"train":"3-4","connections":[["H23","G22"],["I22","H23"]],"hexes":["G22","H23","I22"],"revenue":140,"revenue_str":"G22-H23-I22 (£40)"}],"original_id":409},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":382,"created_at":1617570703,"kind":"payout","original_id":410},{"type":"pass","entity":"LYR","entity_type":"corporation","id":383,"created_at":1617570707,"original_id":411},{"type":"merge","entity":"LYR","entity_type":"corporation","id":384,"created_at":1617570712,"corporation":"16","original_id":412},{"type":"choose","entity":"LYR","entity_type":"corporation","id":385,"created_at":1617570716,"choice":"two_shares","original_id":413},{"type":"choose","entity":"LYR","entity_type":"corporation","id":386,"created_at":1617570720,"choice":"replace","original_id":414},{"type":"pass","entity":"LYR","entity_type":"corporation","id":387,"created_at":1617570724,"original_id":415},{"type":"buy_shares","entity":1739,"entity_type":"player","id":388,"created_at":1617570734,"shares":["LYR_4"],"percent":10,"original_id":416},{"type":"buy_shares","entity":8145,"entity_type":"player","id":389,"created_at":1617570749,"shares":["LYR_5"],"percent":10,"original_id":417},{"type":"buy_shares","entity":3828,"entity_type":"player","id":390,"created_at":1617570768,"shares":["LYR_6"],"percent":10,"original_id":418},{"type":"buy_shares","entity":1739,"entity_type":"player","id":391,"created_at":1617570777,"shares":["LYR_7"],"percent":10,"original_id":419},{"type":"bid","entity":8145,"entity_type":"player","id":392,"created_at":1617570790,"company":"P4","price":50,"original_id":420},{"type":"bid","entity":8145,"entity_type":"player","id":393,"created_at":1617570795,"company":"P16","price":20,"original_id":421},{"type":"bid","entity":8145,"entity_type":"player","id":394,"created_at":1617570803,"company":"P20","price":20,"original_id":422},{"type":"buy_shares","entity":3828,"entity_type":"player","id":395,"created_at":1617570820,"shares":["CR_8"],"percent":10,"original_id":423},{"type":"program_share_pass","entity":3828,"entity_type":"player","id":396,"created_at":1617570829,"original_id":424},{"type":"buy_shares","entity":1739,"entity_type":"player","id":397,"created_at":1617570830,"shares":["LYR_8"],"percent":10,"original_id":425},{"type":"message","entity":3828,"entity_type":"player","id":398,"created_at":1617570845,"message":"on auto pass brb","original_id":426},{"type":"message","entity":1739,"entity_type":"player","id":399,"created_at":1617570850,"message":"sure","original_id":427},{"type":"pass","entity":8145,"entity_type":"player","id":400,"created_at":1617570884,"auto_actions":[{"type":"pass","entity":3828,"entity_type":"player","created_at":1617570884}],"original_id":428},{"type":"bid","entity":1739,"entity_type":"player","id":401,"created_at":1617570893,"company":"P4","price":80,"original_id":429},{"type":"bid","entity":1739,"entity_type":"player","id":402,"created_at":1617570904,"company":"P20","price":40,"original_id":430},{"type":"pass","entity":1739,"entity_type":"player","id":403,"created_at":1617570907,"original_id":431},{"type":"bid","entity":8145,"entity_type":"player","id":404,"created_at":1617570943,"company":"P4","price":85,"original_id":432},{"type":"bid","entity":8145,"entity_type":"player","id":405,"created_at":1617570960,"company":"P20","price":50,"original_id":433},{"type":"pass","entity":8145,"entity_type":"player","id":406,"created_at":1617570966,"auto_actions":[{"type":"pass","entity":3828,"entity_type":"player","created_at":1617570967}],"original_id":434},{"type":"bid","entity":1739,"entity_type":"player","id":407,"created_at":1617570975,"company":"P4","price":90,"original_id":435},{"type":"bid","entity":1739,"entity_type":"player","id":408,"created_at":1617570982,"company":"P16","price":30,"original_id":436},{"type":"pass","entity":1739,"entity_type":"player","id":409,"created_at":1617570984,"original_id":437},{"type":"bid","entity":8145,"entity_type":"player","id":410,"created_at":1617571019,"company":"P4","price":95,"original_id":438},{"type":"pass","entity":8145,"entity_type":"player","id":411,"created_at":1617571030,"auto_actions":[{"type":"pass","entity":3828,"entity_type":"player","created_at":1617571030}],"original_id":439},{"type":"pass","entity":1739,"entity_type":"player","id":412,"created_at":1617571044,"original_id":440},{"type":"buy_shares","entity":8145,"entity_type":"player","id":413,"created_at":1617571051,"auto_actions":[{"type":"pass","entity":3828,"entity_type":"player","created_at":1617571052}],"shares":["MR_3"],"percent":10,"original_id":441},{"type":"pass","entity":1739,"entity_type":"player","id":414,"created_at":1617571062,"original_id":442},{"type":"sell_shares","entity":8145,"entity_type":"player","id":415,"created_at":1617571071,"shares":["MR_3"],"percent":10,"original_id":443},{"type":"pass","entity":8145,"entity_type":"player","id":416,"created_at":1617571094,"auto_actions":[{"type":"program_disable","entity":3828,"entity_type":"player","created_at":1617571094,"reason":"Shares were sold"}],"original_id":444},{"type":"pass","entity":3828,"entity_type":"player","id":417,"created_at":1617571106,"original_id":445},{"type":"pass","entity":1739,"entity_type":"player","id":418,"created_at":1617571109,"original_id":446},{"type":"pass","entity":8145,"entity_type":"player","id":419,"created_at":1617571116,"original_id":447},{"type":"pass","entity":"3","entity_type":"corporation","id":420,"created_at":1617571120,"original_id":448},{"type":"message","entity":3828,"entity_type":"player","id":421,"created_at":1617571150,"message":"BLT fpr dinner, oh yeah","original_id":449},{"type":"message","entity":3828,"entity_type":"player","id":422,"created_at":1617571155,"message":"for","original_id":450},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":423,"created_at":1617571240,"hex":"H11","tile":"83-2","rotation":2,"original_id":451},{"type":"run_routes","entity":"3","entity_type":"corporation","id":424,"created_at":1617571259,"routes":[{"train":"3-1","connections":[["G4","H5"],["H1","G2","G4"]],"hexes":["H5","G4","H1"],"revenue":110,"revenue_str":"H5-G4-H1"}],"original_id":452},{"type":"pass","entity":"1","entity_type":"corporation","id":425,"created_at":1617571261,"original_id":453},{"type":"pass","entity":"1","entity_type":"corporation","id":426,"created_at":1617571269,"original_id":454},{"type":"run_routes","entity":"1","entity_type":"corporation","id":427,"created_at":1617571275,"routes":[{"train":"3-3","connections":[["G4","H5"],["H1","G2","G4"]],"hexes":["H5","G4","H1"],"revenue":110,"revenue_str":"H5-G4-H1"}],"original_id":455},{"type":"pass","entity":"LYR","entity_type":"corporation","id":428,"created_at":1617571280,"original_id":456},{"type":"message","entity":1739,"entity_type":"player","id":429,"created_at":1617571286,"message":"stupid router is getting cranky again","original_id":457},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":430,"created_at":1617571289,"hex":"I22","tile":"X2-0","rotation":0,"original_id":458},{"type":"pass","entity":"LYR","entity_type":"corporation","id":431,"created_at":1617571303,"original_id":459},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":432,"created_at":1617571319,"routes":[{"train":"2P-0","connections":[["I22","I24","J25","K26","K28"]],"hexes":["I22","K28"],"revenue":80,"revenue_str":"I22-K28"},{"train":"3-4","connections":[["H23","G22"],["I22","H23"]],"hexes":["G22","H23","I22"],"revenue":160,"revenue_str":"G22-H23-I22 (£50)"}],"original_id":460},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":433,"created_at":1617571325,"kind":"payout","original_id":461},{"type":"buy_train","entity":"LYR","entity_type":"corporation","id":434,"created_at":1617571340,"train":"4-2","price":300,"variant":"4","original_id":462},{"type":"pass","entity":"LYR","entity_type":"corporation","id":435,"created_at":1617571348,"original_id":463},{"type":"pass","entity":"LYR","entity_type":"corporation","id":436,"created_at":1617571363,"original_id":464},{"type":"pass","entity":"MR","entity_type":"corporation","id":437,"created_at":1617571366,"original_id":465},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":438,"created_at":1617571372,"hex":"H17","tile":"4-2","rotation":0,"original_id":466},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":439,"created_at":1617571377,"hex":"H15","tile":"9-6","rotation":0,"original_id":467},{"type":"pass","entity":"MR","entity_type":"corporation","id":440,"created_at":1617571380,"original_id":468},{"type":"pass","entity":"MR","entity_type":"corporation","id":441,"created_at":1617571385,"original_id":469},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":442,"created_at":1617571409,"routes":[{"train":"4-0","connections":[["J29","K30","L29","M30"],["K28","J29"],["I22","I24","J25","K26","K28"]],"hexes":["M30","J29","K28","I22"],"revenue":170,"revenue_str":"M30-J29-K28-I22"}],"original_id":470},{"type":"dividend","entity":"MR","entity_type":"corporation","id":443,"created_at":1617571410,"kind":"payout","original_id":471},{"type":"pass","entity":"MR","entity_type":"corporation","id":444,"created_at":1617571425,"original_id":472},{"type":"merge","entity":"MR","entity_type":"corporation","id":445,"created_at":1617571435,"corporation":"1","original_id":473},{"type":"choose","entity":"MR","entity_type":"corporation","id":446,"created_at":1617571438,"choice":"two_shares","original_id":474},{"type":"choose","entity":"MR","entity_type":"corporation","id":447,"created_at":1617571440,"choice":"exchange","original_id":475},{"type":"buy_shares","entity":"MR","entity_type":"corporation","id":448,"created_at":1617571443,"shares":["MR_3"],"percent":10,"original_id":476},{"type":"pass","entity":"CR","entity_type":"corporation","id":449,"created_at":1617571456,"original_id":477},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":450,"created_at":1617571485,"hex":"H19","tile":"14-0","rotation":0,"original_id":478},{"type":"place_token","entity":"CR","entity_type":"corporation","id":451,"created_at":1617571492,"city":"X2-0-0","slot":2,"original_id":479},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":452,"created_at":1617571529,"routes":[{"train":"3-0","connections":[["H23","G22"],["I22","H23"]],"hexes":["G22","H23","I22"],"revenue":110,"revenue_str":"G22-H23-I22"},{"train":"3-5","connections":[["E6","E8","F9","G10","H11","G12"],["E2","E4","E6"]],"hexes":["G12","E6","E2"],"revenue":120,"revenue_str":"G12-E6-E2 (£30)"}],"original_id":480},{"type":"dividend","entity":"CR","entity_type":"corporation","id":453,"created_at":1617571537,"kind":"half","original_id":481},{"type":"buy_train","entity":"CR","entity_type":"corporation","id":454,"created_at":1617571577,"train":"4-3","price":300,"variant":"4","original_id":482},{"type":"pass","entity":"3","entity_type":"corporation","id":455,"created_at":1617571628,"original_id":483},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":456,"created_at":1617571652,"hex":"H21","tile":"69-0","rotation":1,"original_id":484},{"type":"run_routes","entity":"3","entity_type":"corporation","id":457,"created_at":1617571657,"routes":[{"train":"3-1","connections":[["G4","H5"],["H1","G2","G4"]],"hexes":["H5","G4","H1"],"revenue":110,"revenue_str":"H5-G4-H1"}],"original_id":485},{"type":"pass","entity":"LYR","entity_type":"corporation","id":458,"created_at":1617571664,"original_id":486},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":459,"created_at":1617571681,"hex":"H23","tile":"619-3","rotation":0,"original_id":487},{"type":"pass","entity":"LYR","entity_type":"corporation","id":460,"created_at":1617571687,"original_id":488},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":461,"created_at":1617571712,"routes":[{"train":"2P-0","connections":[["M30","L29","K28"]],"hexes":["K28","M30"],"revenue":90,"revenue_str":"K28-M30"},{"train":"3-4","connections":[["H23","G22"],["I22","H23"]],"hexes":["G22","H23","I22"],"revenue":170,"revenue_str":"G22-H23-I22 (£50)"},{"train":"4-2","connections":[["J29","I30"],["K28","J29"],["I22","I24","J25","K26","K28"]],"hexes":["I30","J29","K28","I22"],"revenue":160,"revenue_str":"I30-J29-K28-I22"}],"original_id":489},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":462,"created_at":1617571730,"kind":"payout","original_id":490},{"type":"pass","entity":"LYR","entity_type":"corporation","id":463,"created_at":1617571743,"original_id":491},{"type":"pass","entity":"LYR","entity_type":"corporation","id":464,"created_at":1617571748,"original_id":492},{"type":"acquire_company","entity":"MR","entity_type":"corporation","id":465,"created_at":1617571758,"company":"P21","original_id":493},{"type":"pass","entity":"MR","entity_type":"corporation","id":466,"created_at":1617571761,"original_id":494},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":467,"created_at":1617571770,"hex":"L25","tile":"8-1","rotation":1,"original_id":495},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":468,"created_at":1617571773,"hex":"L23","tile":"8-4","rotation":0,"original_id":496},{"type":"pass","entity":"MR","entity_type":"corporation","id":469,"created_at":1617571778,"original_id":497},{"type":"pass","entity":"MR","entity_type":"corporation","id":470,"created_at":1617571780,"original_id":498},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":471,"created_at":1617571847,"routes":[{"train":"4-0","connections":[["I22","H23"],["K28","K26","J25","I24","I22"],["J29","K28"]],"hexes":["H23","I22","K28","J29"],"revenue":140,"revenue_str":"H23-I22-K28-J29"},{"train":"3-3","connections":[["J29","K30","L29","M30"],["I30","J29"]],"hexes":["M30","J29","I30"],"revenue":140,"revenue_str":"M30-J29-I30"}],"original_id":500},{"type":"dividend","entity":"MR","entity_type":"corporation","id":472,"created_at":1617571850,"kind":"half","original_id":501},{"type":"buy_train","entity":"MR","entity_type":"corporation","id":473,"created_at":1617571852,"train":"5-0","price":500,"variant":"5","original_id":502},{"type":"discard_train","entity":"MR","entity_type":"corporation","id":474,"created_at":1617571855,"train":"3-3","original_id":503},{"type":"discard_train","entity":"CR","entity_type":"corporation","id":475,"created_at":1617571864,"train":"3-0","original_id":504},{"type":"pass","entity":"MR","entity_type":"corporation","id":476,"created_at":1617571878,"original_id":505},{"type":"pass","entity":"MR","entity_type":"corporation","id":477,"created_at":1617571879,"original_id":506},{"type":"acquire_company","entity":"CR","entity_type":"corporation","id":478,"created_at":1617571890,"company":"P13","original_id":507},{"type":"acquire_company","entity":"CR","entity_type":"corporation","id":479,"created_at":1617571926,"company":"P4","original_id":508},{"type":"pass","entity":"CR","entity_type":"corporation","id":480,"created_at":1617571931,"original_id":509},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":481,"created_at":1617571999,"hex":"L25","tile":"81-2","rotation":1,"original_id":510},{"type":"choose","entity":"CR","entity_type":"corporation","id":482,"created_at":1617572006,"choice":"1","original_id":511},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":483,"created_at":1617572071,"routes":[{"train":"3-5","connections":[["H23","G22"],["I22","H23"]],"hexes":["G22","H23","I22"],"revenue":120,"revenue_str":"G22-H23-I22"},{"train":"4-3","connections":[["E6","F7"],["G12","H11","G10","F9","E8","E6"],["H13","G12"],["H17","H15","H13"],["H19","H17"],["H21","H19"],["I22","H21"]],"hexes":["F7","E6","G12","H13","H17","H19","H21","I22"],"revenue":240,"revenue_str":"F7-E6-G12-H13-H17-H19-H21-I22 (£30)"},{"train":"2P-1","connections":[["I22","I24","J25","K26","K28"]],"hexes":["K28","I22"],"revenue":80,"revenue_str":"K28-I22"}],"original_id":512},{"type":"dividend","entity":"CR","entity_type":"corporation","id":484,"created_at":1617572078,"kind":"half","original_id":513},{"type":"pass","entity":"CR","entity_type":"corporation","id":485,"created_at":1617572090,"original_id":514},{"type":"bid","entity":8145,"entity_type":"player","id":486,"created_at":1617572165,"company":"P7","price":30,"original_id":515},{"type":"bid","entity":8145,"entity_type":"player","id":487,"created_at":1617572171,"company":"P14","price":50,"original_id":516},{"type":"bid","entity":8145,"entity_type":"player","id":488,"created_at":1617572178,"company":"P19","price":50,"original_id":517},{"type":"par","entity":1739,"entity_type":"player","id":489,"created_at":1617572189,"corporation":"NBR","share_price":"100,3,4","original_id":518},{"type":"bid","entity":3828,"entity_type":"player","id":490,"created_at":1617572200,"company":"M10","price":200,"original_id":519},{"type":"bid","entity":3828,"entity_type":"player","id":491,"created_at":1617572214,"company":"P19","price":70,"original_id":520},{"type":"bid","entity":3828,"entity_type":"player","id":492,"created_at":1617572226,"company":"P7","price":40,"original_id":521},{"type":"bid","entity":8145,"entity_type":"player","id":493,"created_at":1617572244,"company":"P7","price":45,"original_id":522},{"type":"pass","entity":8145,"entity_type":"player","id":494,"created_at":1617572287,"original_id":523},{"type":"buy_shares","entity":1739,"entity_type":"player","id":495,"created_at":1617572293,"shares":["NBR_1"],"percent":10,"original_id":524},{"type":"bid","entity":3828,"entity_type":"player","id":496,"created_at":1617572301,"company":"P7","price":50,"original_id":525},{"type":"pass","entity":3828,"entity_type":"player","id":497,"created_at":1617572305,"original_id":526},{"type":"bid","entity":8145,"entity_type":"player","id":498,"created_at":1617572350,"company":"P7","price":55,"original_id":527},{"type":"pass","entity":8145,"entity_type":"player","id":499,"created_at":1617572353,"original_id":528},{"type":"buy_shares","entity":1739,"entity_type":"player","id":500,"created_at":1617572361,"shares":["NBR_2"],"percent":10,"original_id":529},{"type":"pass","entity":3828,"entity_type":"player","id":501,"created_at":1617572364,"original_id":530},{"type":"pass","entity":8145,"entity_type":"player","id":502,"created_at":1617572403,"original_id":531},{"type":"buy_shares","entity":1739,"entity_type":"player","id":503,"created_at":1617572411,"shares":["NBR_3"],"percent":10,"original_id":532},{"type":"pass","entity":3828,"entity_type":"player","id":504,"created_at":1617572419,"original_id":533},{"type":"buy_shares","entity":8145,"entity_type":"player","id":505,"created_at":1617572448,"shares":["MR_6"],"percent":10,"original_id":534},{"type":"choose_ability","entity":"P16","entity_type":"company","id":506,"created_at":1617572466,"choice":"MR_ipo","original_id":535},{"type":"pass","entity":3828,"entity_type":"player","id":507,"created_at":1617572476,"original_id":536},{"type":"buy_shares","entity":8145,"entity_type":"player","id":508,"created_at":1617572481,"shares":["MR_8"],"percent":10,"original_id":537},{"type":"sell_shares","entity":1739,"entity_type":"player","id":509,"created_at":1617572490,"shares":["LYR_4"],"percent":10,"original_id":538},{"type":"bid","entity":1739,"entity_type":"player","id":510,"created_at":1617572493,"company":"P19","price":75,"original_id":539},{"type":"pass","entity":1739,"entity_type":"player","id":511,"created_at":1617572499,"original_id":540},{"type":"buy_shares","entity":3828,"entity_type":"player","id":512,"created_at":1617572506,"shares":["MR_3"],"percent":10,"original_id":541},{"type":"pass","entity":8145,"entity_type":"player","id":513,"created_at":1617572514,"original_id":542},{"type":"pass","entity":1739,"entity_type":"player","id":514,"created_at":1617572521,"original_id":543},{"type":"bid","entity":3828,"entity_type":"player","id":515,"created_at":1617572531,"company":"P19","price":80,"original_id":544},{"type":"pass","entity":3828,"entity_type":"player","id":516,"created_at":1617572545,"original_id":545},{"type":"pass","entity":8145,"entity_type":"player","id":517,"created_at":1617572653,"original_id":548},{"type":"bid","entity":1739,"entity_type":"player","id":518,"created_at":1617572665,"company":"P19","price":100,"original_id":549},{"type":"pass","entity":1739,"entity_type":"player","id":519,"created_at":1617572666,"original_id":550},{"type":"bid","entity":3828,"entity_type":"player","id":520,"created_at":1617572711,"company":"P19","price":135,"original_id":551},{"type":"pass","entity":3828,"entity_type":"player","id":521,"created_at":1617572713,"original_id":552},{"type":"message","entity":1739,"entity_type":"player","id":522,"created_at":1617572727,"message":"lol what do you need teh LP for?","original_id":553},{"type":"message","entity":1739,"entity_type":"player","id":523,"created_at":1617572732,"message":"you already got 2P","original_id":554},{"type":"message","entity":1739,"entity_type":"player","id":524,"created_at":1617572740,"message":"u still need to fund a train for the 10","original_id":555},{"type":"sell_shares","entity":8145,"entity_type":"player","id":525,"created_at":1617572753,"shares":["MR_6","MR_8"],"percent":20,"original_id":556},{"type":"buy_shares","entity":8145,"entity_type":"player","id":526,"created_at":1617572760,"shares":["LYR_4"],"percent":10,"original_id":557},{"type":"bid","entity":1739,"entity_type":"player","id":527,"created_at":1617572768,"company":"P19","price":140,"original_id":558},{"type":"pass","entity":1739,"entity_type":"player","id":528,"created_at":1617572770,"original_id":559},{"type":"buy_shares","entity":3828,"entity_type":"player","id":529,"created_at":1617572793,"shares":["MR_6"],"percent":10,"original_id":560},{"type":"program_share_pass","entity":3828,"entity_type":"player","id":530,"created_at":1617572800,"original_id":561},{"type":"pass","entity":8145,"entity_type":"player","id":531,"created_at":1617572813,"original_id":562},{"type":"pass","entity":1739,"entity_type":"player","id":532,"created_at":1617572818,"auto_actions":[{"type":"pass","entity":3828,"entity_type":"player","created_at":1617572817}],"original_id":563},{"type":"pass","entity":"3","entity_type":"corporation","id":533,"created_at":1617572831,"original_id":564},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":534,"created_at":1617572855,"hex":"H13","tile":"142-0","rotation":3,"original_id":565},{"type":"run_routes","entity":"3","entity_type":"corporation","id":535,"created_at":1617572858,"routes":[{"train":"3-1","connections":[["G4","H5"],["H1","G2","G4"]],"hexes":["H5","G4","H1"],"revenue":120,"revenue_str":"H5-G4-H1"}],"original_id":566},{"type":"pass","entity":"10","entity_type":"corporation","id":536,"created_at":1617572912,"original_id":567},{"type":"lay_tile","entity":"10","entity_type":"corporation","id":537,"created_at":1617572941,"hex":"I28","tile":"8-6","rotation":4,"original_id":568},{"type":"buy_train","entity":"10","entity_type":"corporation","id":538,"created_at":1617572957,"train":"4-2","price":200,"original_id":569},{"type":"acquire_company","entity":"LYR","entity_type":"corporation","id":539,"created_at":1617572973,"company":"P1","original_id":570},{"type":"pass","entity":"LYR","entity_type":"corporation","id":540,"created_at":1617572978,"original_id":571},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":541,"created_at":1617572986,"hex":"I22","tile":"X7-0","rotation":0,"original_id":572},{"type":"pass","entity":"LYR","entity_type":"corporation","id":542,"created_at":1617573040,"original_id":573},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":543,"created_at":1617573075,"routes":[{"train":"2P-0","connections":[["M30","L29","K28"]],"hexes":["M30","K28"],"revenue":110,"revenue_str":"M30-K28"},{"train":"3-4","connections":[["H23","G22"],["I22","H23"]],"hexes":["G22","H23","I22"],"revenue":190,"revenue_str":"G22-H23-I22 (£60)"},{"train":"5P-0","connections":[["I30","H29","G28"],["J29","I30"],["K28","J29"],["I22","I24","J25","K26","K28"]],"hexes":["G28","I30","J29","K28","I22"],"revenue":190,"revenue_str":"G28-I30-J29-K28-I22"}],"original_id":574},{"type":"choose","entity":"LYR","entity_type":"corporation","id":544,"created_at":1617573081,"choice":"half","original_id":575},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":545,"created_at":1617573086,"kind":"payout","original_id":576},{"type":"pass","entity":"LYR","entity_type":"corporation","id":546,"created_at":1617573099,"original_id":577},{"type":"pass","entity":"CR","entity_type":"corporation","id":547,"created_at":1617573118,"original_id":578},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":548,"created_at":1617573129,"hex":"M26","tile":"4-3","rotation":2,"original_id":579},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":549,"created_at":1617573132,"hex":"N27","tile":"8-3","rotation":0,"original_id":580},{"type":"pass","entity":"CR","entity_type":"corporation","id":550,"created_at":1617573154,"original_id":581},{"type":"choose","entity":"CR","entity_type":"corporation","id":551,"created_at":1617573157,"choice":"1","original_id":582},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":552,"created_at":1617573170,"routes":[{"train":"3-5","connections":[["H23","G22"],["I22","H23"]],"hexes":["G22","H23","I22"],"revenue":130,"revenue_str":"G22-H23-I22"},{"train":"4-3","connections":[["E6","F7"],["G12","H11","G10","F9","E8","E6"],["H13","G12"],["H17","H15","H13"],["H19","H17"],["H21","H19"],["I22","H21"]],"hexes":["F7","E6","G12","H13","H17","H19","H21","I22"],"revenue":250,"revenue_str":"F7-E6-G12-H13-H17-H19-H21-I22 (£30)"},{"train":"2P-1","connections":[["I22","I24","J25","K26","K28"]],"hexes":["I22","K28"],"revenue":90,"revenue_str":"I22-K28"}],"original_id":583},{"type":"dividend","entity":"CR","entity_type":"corporation","id":553,"created_at":1617573182,"kind":"half","original_id":584},{"type":"merge","entity":"CR","entity_type":"corporation","id":554,"created_at":1617573192,"corporation":"15","original_id":585},{"type":"choose","entity":"CR","entity_type":"corporation","id":555,"created_at":1617573195,"choice":"money","original_id":586},{"type":"choose","entity":"CR","entity_type":"corporation","id":556,"created_at":1617573197,"choice":"replace","original_id":587},{"type":"pass","entity":"MR","entity_type":"corporation","id":557,"created_at":1617573308,"original_id":597},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":558,"created_at":1617573321,"hex":"J27","tile":"7-1","rotation":5,"original_id":598},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":559,"created_at":1617573326,"hex":"K22","tile":"8-7","rotation":3,"original_id":599},{"type":"pass","entity":"MR","entity_type":"corporation","id":560,"created_at":1617573329,"original_id":600},{"type":"pass","entity":"MR","entity_type":"corporation","id":561,"created_at":1617573330,"original_id":601},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":562,"created_at":1617573355,"routes":[{"train":"4-0","connections":[["J29","I30"],["K28","J29"],["M30","L29","K28"]],"hexes":["I30","J29","K28","M30"],"revenue":200,"revenue_str":"I30-J29-K28-M30"},{"train":"5-0","connections":[["H23","G22"],["I22","H23"],["K28","K26","J25","I24","I22"],["J29","J27","K28"]],"hexes":["G22","H23","I22","K28","J29"],"revenue":190,"revenue_str":"G22-H23-I22-K28-J29"}],"original_id":603},{"type":"dividend","entity":"MR","entity_type":"corporation","id":563,"created_at":1617573357,"kind":"payout","original_id":604},{"type":"pass","entity":"MR","entity_type":"corporation","id":564,"created_at":1617573366,"original_id":605},{"type":"buy_shares","entity":"MR","entity_type":"corporation","id":565,"created_at":1617573367,"shares":["MR_8"],"percent":10,"original_id":606},{"type":"acquire_company","entity":"NBR","entity_type":"corporation","id":566,"created_at":1617573411,"company":"P15","original_id":614},{"type":"acquire_company","entity":"NBR","entity_type":"corporation","id":567,"created_at":1617573413,"company":"P19","original_id":615},{"type":"pass","entity":"NBR","entity_type":"corporation","id":568,"created_at":1617573414,"original_id":616},{"type":"lay_tile","entity":"NBR","entity_type":"corporation","id":569,"created_at":1617573420,"hex":"H5","tile":"X5-0","rotation":5,"original_id":617},{"type":"hex_token","entity":"NBR","entity_type":"corporation","id":570,"created_at":1617573423,"hex":"H1","token_type":"destination","original_id":618},{"type":"pass","entity":"NBR","entity_type":"corporation","id":571,"created_at":1617573425,"original_id":619},{"type":"run_routes","entity":"NBR","entity_type":"corporation","id":572,"created_at":1617573431,"routes":[{"train":"LP-0","connections":[["H5","G6","F5"]],"hexes":["F5","H5"],"revenue":60,"revenue_str":"F5-H5"}],"original_id":620},{"type":"dividend","entity":"NBR","entity_type":"corporation","id":573,"created_at":1617573433,"kind":"payout","original_id":621},{"type":"buy_train","entity":"NBR","entity_type":"corporation","id":574,"created_at":1617573437,"train":"6-0","price":600,"variant":"6","original_id":622},{"type":"pass","entity":"NBR","entity_type":"corporation","id":575,"created_at":1617573453,"original_id":623},{"type":"pass","entity":"3","entity_type":"corporation","id":576,"created_at":1617573455,"original_id":624},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":577,"created_at":1617573474,"hex":"K20","tile":"6-5","rotation":4,"original_id":625},{"type":"buy_train","entity":"3","entity_type":"corporation","id":578,"created_at":1617573513,"train":"4-0","price":169,"original_id":626},{"type":"pass","entity":"10","entity_type":"corporation","id":579,"created_at":1617573518,"original_id":627},{"type":"lay_tile","entity":"10","entity_type":"corporation","id":580,"created_at":1617573543,"hex":"J27","tile":"80-0","rotation":5,"original_id":628},{"type":"run_routes","entity":"10","entity_type":"corporation","id":581,"created_at":1617573564,"routes":[{"train":"4-2","connections":[["K28","L29","M30"],["J29","K28"],["I30","I28","J27","J29"]],"hexes":["M30","K28","J29","I30"],"revenue":200,"revenue_str":"M30-K28-J29-I30"}],"original_id":629},{"type":"pass","entity":"LYR","entity_type":"corporation","id":582,"created_at":1617573569,"original_id":630},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":583,"created_at":1617573588,"hex":"K28","tile":"63-0","rotation":0,"original_id":631},{"type":"pass","entity":"LYR","entity_type":"corporation","id":584,"created_at":1617573595,"original_id":632},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":585,"created_at":1617573627,"routes":[{"train":"2P-0","connections":[["M30","L29","K28"]],"hexes":["K28","M30"],"revenue":120,"revenue_str":"K28-M30"},{"train":"5P-0","connections":[["K28","J27","I28","I30"],["I22","I24","J25","K26","K28"],["H23","I22"],["G22","H23"]],"hexes":["I30","K28","I22","H23","G22"],"revenue":290,"revenue_str":"I30-K28-I22-H23-G22 (£60)"}],"original_id":633},{"type":"choose","entity":"LYR","entity_type":"corporation","id":586,"created_at":1617573631,"choice":"half","original_id":634},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":587,"created_at":1617573636,"kind":"payout","original_id":635},{"type":"pass","entity":"LYR","entity_type":"corporation","id":588,"created_at":1617573640,"original_id":636},{"type":"merge","entity":"LYR","entity_type":"corporation","id":589,"created_at":1617573648,"corporation":"10","original_id":637},{"type":"choose","entity":"LYR","entity_type":"corporation","id":590,"created_at":1617573651,"choice":"money","original_id":638},{"type":"choose","entity":"LYR","entity_type":"corporation","id":591,"created_at":1617573656,"choice":"replace","original_id":639},{"type":"acquire_company","entity":"CR","entity_type":"corporation","id":592,"created_at":1617573716,"company":"P11","original_id":640},{"type":"acquire_company","entity":"CR","entity_type":"corporation","id":593,"created_at":1617573719,"company":"P12","original_id":641},{"type":"acquire_company","entity":"CR","entity_type":"corporation","id":594,"created_at":1617573723,"company":"P20","original_id":642},{"type":"acquire_company","entity":"CR","entity_type":"corporation","id":595,"created_at":1617573727,"company":"P7","original_id":643},{"type":"pass","entity":"CR","entity_type":"corporation","id":596,"created_at":1617573747,"original_id":644},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":597,"created_at":1617573789,"hex":"H11","tile":"545-0","rotation":5,"original_id":645},{"type":"lay_tile","entity":"P12","entity_type":"company","id":598,"created_at":1617573815,"hex":"H19","tile":"611-0","rotation":3,"original_id":646},{"type":"pass","entity":"CR","entity_type":"corporation","id":599,"created_at":1617573824,"original_id":647},{"type":"place_token","entity":"CR","entity_type":"corporation","id":600,"created_at":1617573842,"city":"X5-0-0","slot":2,"original_id":648},{"type":"choose","entity":"CR","entity_type":"corporation","id":601,"created_at":1617573847,"choice":"0","original_id":649},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":602,"created_at":1617573934,"routes":[{"train":"4-3","connections":[["H13","H11","G10","F9","E8","E6"],["H17","H15","H13"],["H19","H17"],["H21","H19"],["I22","H21"],["M26","L25","K26","J25","I24","I22"],["N29","N27","M26"]],"hexes":["E6","H13","H17","H19","H21","I22","M26","N29"],"revenue":280,"revenue_str":"E6-H13-H17-H19-H21-I22-M26-N29"},{"train":"2P-1","connections":[["I22","H23"]],"hexes":["H23","I22"],"revenue":90,"revenue_str":"H23-I22"}],"original_id":650},{"type":"dividend","entity":"CR","entity_type":"corporation","id":603,"created_at":1617573968,"kind":"half","original_id":651},{"type":"pass","entity":"CR","entity_type":"corporation","id":604,"created_at":1617573979,"original_id":652},{"type":"pass","entity":"CR","entity_type":"corporation","id":605,"created_at":1617573988,"original_id":653},{"type":"pass","entity":"MR","entity_type":"corporation","id":606,"created_at":1617573999,"original_id":654},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":607,"created_at":1617574005,"hex":"J27","tile":"546-0","rotation":3,"original_id":655},{"type":"pass","entity":"MR","entity_type":"corporation","id":608,"created_at":1617574008,"original_id":656},{"type":"place_token","entity":"MR","entity_type":"corporation","id":609,"created_at":1617574023,"city":"I30-0-0","slot":1,"original_id":658},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":610,"created_at":1617574047,"routes":[{"train":"5-0","connections":[["K28","K26","J25","I24","I22"],["I30","I28","J27","K28"],["J29","I30"],["M30","L29","K30","J29"]],"hexes":["I22","K28","I30","J29","M30"],"revenue":270,"revenue_str":"I22-K28-I30-J29-M30"}],"original_id":659},{"type":"dividend","entity":"MR","entity_type":"corporation","id":611,"created_at":1617574049,"kind":"payout","original_id":660},{"type":"buy_train","entity":"MR","entity_type":"corporation","id":612,"created_at":1617574052,"train":"6-1","price":600,"variant":"6","original_id":661},{"type":"pass","entity":"MR","entity_type":"corporation","id":613,"created_at":1617574054,"original_id":662},{"type":"acquire_company","entity":"NBR","entity_type":"corporation","id":614,"created_at":1617574062,"company":"P18","original_id":663},{"type":"pass","entity":"NBR","entity_type":"corporation","id":615,"created_at":1617574064,"original_id":664},{"type":"lay_tile","entity":"NBR","entity_type":"corporation","id":616,"created_at":1617574083,"hex":"J25","tile":"82-1","rotation":5,"original_id":665},{"type":"pass","entity":"NBR","entity_type":"corporation","user":1739,"created_at":1684726342,"original_id":null,"id":617},{"type":"run_routes","entity":"NBR","entity_type":"corporation","id":618,"created_at":1617574121,"routes":[{"train":"LP-0","connections":[["local","H5"]],"hexes":["H5"],"revenue":50,"revenue_str":"H5"},{"train":"6-0","connections":[["E6","E8","F9","G10","H11","G12"],["F5","E6"],["H5","G6","F5"],["G4","H5"],["H1","G2","G4"]],"hexes":["G12","E6","F5","H5","G4","H1"],"revenue":280,"revenue_str":"G12-E6-F5-H5-G4-H1 (£50)"}],"original_id":666},{"type":"choose","entity":"NBR","entity_type":"corporation","id":619,"created_at":1617574123,"choice":"payout","original_id":667},{"type":"dividend","entity":"NBR","entity_type":"corporation","id":620,"created_at":1617574125,"kind":"payout","original_id":668},{"type":"pass","entity":"NBR","entity_type":"corporation","id":621,"created_at":1617574131,"original_id":669},{"type":"merge","entity":"NBR","entity_type":"corporation","id":622,"created_at":1617574135,"corporation":"3","original_id":670},{"type":"choose","entity":"NBR","entity_type":"corporation","id":623,"created_at":1617574137,"choice":"two_shares","original_id":671},{"type":"choose","entity":"NBR","entity_type":"corporation","id":624,"created_at":1617574139,"choice":"exchange","original_id":672},{"type":"pass","entity":"NBR","entity_type":"corporation","id":625,"created_at":1617574142,"original_id":673},{"type":"par","entity":8145,"entity_type":"player","id":626,"created_at":1617574197,"corporation":"LNWR","share_price":"100,3,4","original_id":674},{"type":"bid","entity":1739,"entity_type":"player","id":627,"created_at":1617574225,"company":"M8","price":1005,"original_id":675},{"type":"pass","entity":1739,"entity_type":"player","id":628,"created_at":1617574229,"original_id":676},{"type":"message","entity":1739,"entity_type":"player","id":629,"created_at":1617574287,"message":"Hmm lemme think","original_id":678},{"type":"message","entity":1739,"entity_type":"player","id":630,"created_at":1617574315,"message":"yeah thats fine","original_id":680},{"type":"message","entity":1739,"entity_type":"player","id":631,"created_at":1617574317,"message":"yolo","original_id":681},{"type":"buy_shares","entity":3828,"entity_type":"player","id":632,"created_at":1617574370,"shares":["MR_8"],"percent":10,"original_id":682},{"type":"buy_shares","entity":8145,"entity_type":"player","id":633,"created_at":1617574378,"shares":["LNWR_1"],"percent":10,"original_id":683},{"type":"pass","entity":1739,"entity_type":"player","id":634,"created_at":1617574384,"original_id":684},{"type":"program_share_pass","entity":1739,"entity_type":"player","id":635,"created_at":1617574389,"original_id":685},{"type":"buy_shares","entity":3828,"entity_type":"player","id":636,"created_at":1617574393,"shares":["NBR_6"],"percent":10,"original_id":686},{"type":"message","entity":1739,"entity_type":"player","id":637,"created_at":1617574396,"message":"im autopass","original_id":687},{"type":"buy_shares","entity":8145,"entity_type":"player","id":638,"created_at":1617574399,"auto_actions":[{"type":"pass","entity":1739,"entity_type":"player","created_at":1617574399}],"shares":["LNWR_2"],"percent":10,"original_id":688},{"type":"buy_shares","entity":3828,"entity_type":"player","id":639,"created_at":1617574407,"shares":["NBR_7"],"percent":10,"original_id":689},{"type":"buy_shares","entity":8145,"entity_type":"player","id":640,"created_at":1617574419,"auto_actions":[{"type":"pass","entity":1739,"entity_type":"player","created_at":1617574419}],"shares":["LNWR_3"],"percent":10,"original_id":690},{"type":"pass","entity":3828,"entity_type":"player","id":641,"created_at":1617574423,"original_id":691},{"type":"buy_shares","entity":8145,"entity_type":"player","id":642,"created_at":1617574427,"auto_actions":[{"type":"pass","entity":1739,"entity_type":"player","created_at":1617574427}],"shares":["LNWR_4"],"percent":10,"original_id":692},{"type":"buy_shares","entity":3828,"entity_type":"player","id":643,"created_at":1617574434,"shares":["NBR_8"],"percent":10,"original_id":693},{"type":"pass","entity":8145,"entity_type":"player","id":644,"created_at":1617574449,"auto_actions":[{"type":"pass","entity":1739,"entity_type":"player","created_at":1617574449}],"original_id":694},{"type":"buy_shares","entity":3828,"entity_type":"player","id":645,"created_at":1617574460,"shares":["LNWR_5"],"percent":10,"original_id":695},{"type":"pass","entity":8145,"entity_type":"player","id":646,"created_at":1617574470,"auto_actions":[{"type":"pass","entity":1739,"entity_type":"player","created_at":1617574470}],"original_id":696},{"type":"buy_shares","entity":3828,"entity_type":"player","id":647,"created_at":1617574475,"shares":["LNWR_6"],"percent":10,"original_id":697},{"type":"pass","entity":8145,"entity_type":"player","id":648,"created_at":1617574482,"auto_actions":[{"type":"pass","entity":1739,"entity_type":"player","created_at":1617574482}],"original_id":698},{"type":"buy_shares","entity":3828,"entity_type":"player","id":649,"created_at":1617574488,"shares":["LNWR_7"],"percent":10,"original_id":699},{"type":"pass","entity":8145,"entity_type":"player","id":650,"created_at":1617574493,"auto_actions":[{"type":"pass","entity":1739,"entity_type":"player","created_at":1617574493}],"original_id":700},{"type":"buy_shares","entity":3828,"entity_type":"player","id":651,"created_at":1617574499,"shares":["LNWR_8"],"percent":10,"original_id":701},{"type":"pass","entity":8145,"entity_type":"player","id":652,"created_at":1617574508,"auto_actions":[{"type":"pass","entity":1739,"entity_type":"player","created_at":1617574508}],"original_id":702},{"type":"pass","entity":3828,"entity_type":"player","id":653,"created_at":1617574513,"original_id":703},{"type":"pass","entity":"8","entity_type":"corporation","id":654,"created_at":1617574518,"original_id":704},{"type":"lay_tile","entity":"8","entity_type":"corporation","id":655,"created_at":1617574533,"hex":"K24","tile":"5-0","rotation":3,"original_id":705},{"type":"buy_train","entity":"8","entity_type":"corporation","id":656,"created_at":1617574538,"train":"7-0","price":1000,"variant":"E","original_id":706},{"type":"pass","entity":"LYR","entity_type":"corporation","id":657,"created_at":1617574553,"original_id":707},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":658,"created_at":1617574567,"hex":"G22","tile":"X5-1","rotation":2,"original_id":708},{"type":"place_token","entity":"LYR","entity_type":"corporation","id":659,"created_at":1617574571,"city":"619-0-0","slot":1,"original_id":709},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":660,"created_at":1617574611,"routes":[{"train":"2P-0","connections":[["M30","L29","K28"]],"hexes":["M30","K28"],"revenue":140,"revenue_str":"M30-K28"},{"train":"5P-0","connections":[["K28","J27","I28","I30"],["I22","I24","J25","K26","K28"],["H23","I22"],["G22","H23"]],"hexes":["I30","K28","I22","H23","G22"],"revenue":320,"revenue_str":"I30-K28-I22-H23-G22 (£60)"}],"original_id":710},{"type":"choose","entity":"LYR","entity_type":"corporation","id":661,"created_at":1617574615,"choice":"withhold","original_id":711},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":662,"created_at":1617574629,"kind":"payout","original_id":712},{"type":"pass","entity":"LYR","entity_type":"corporation","id":663,"created_at":1617574634,"original_id":713},{"type":"pass","entity":"LYR","entity_type":"corporation","id":664,"created_at":1617574641,"original_id":714},{"type":"pass","entity":"CR","entity_type":"corporation","id":665,"created_at":1617574661,"original_id":715},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":666,"created_at":1617574673,"hex":"L27","tile":"8-8","rotation":5,"original_id":716},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":667,"created_at":1617574678,"hex":"M28","tile":"9-7","rotation":2,"original_id":717},{"type":"pass","entity":"CR","entity_type":"corporation","id":668,"created_at":1617574687,"original_id":718},{"type":"choose","entity":"CR","entity_type":"corporation","id":669,"created_at":1617574698,"choice":"0","original_id":719},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":670,"created_at":1617574740,"routes":[{"train":"2P-1","connections":[["M26","L25","K26","J25","I24","I22"],["N29","N27","M26"]],"hexes":["I22","M26","N29"],"revenue":170,"revenue_str":"I22-M26-N29"}],"original_id":720},{"type":"dividend","entity":"CR","entity_type":"corporation","id":671,"created_at":1617574755,"kind":"withhold","original_id":721},{"type":"buy_train","entity":"CR","entity_type":"corporation","id":672,"created_at":1617574761,"train":"7-1","price":750,"variant":"7","original_id":722},{"type":"pass","entity":"CR","entity_type":"corporation","id":673,"created_at":1617574767,"original_id":723},{"type":"pass","entity":"MR","entity_type":"corporation","id":674,"created_at":1617574787,"original_id":724},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":675,"created_at":1617574795,"hex":"K22","tile":"83-3","rotation":0,"original_id":725},{"type":"pass","entity":"MR","entity_type":"corporation","id":676,"created_at":1617574799,"original_id":726},{"type":"place_token","entity":"MR","entity_type":"corporation","id":677,"created_at":1617574806,"city":"X5-1-0","slot":2,"original_id":728},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":678,"created_at":1617574889,"routes":[{"train":"5-0","connections":[["K28","L27","M28","N29"],["J29","J27","K28"],["I30","J29"],["I30","H29","G28"]],"hexes":["N29","K28","J29","I30","G28"],"revenue":260,"revenue_str":"N29-K28-J29-I30-G28"},{"train":"6-1","connections":[["H23","G22"],["I22","H23"],["K28","K26","J25","I24","I22"],["J29","K28"],["M30","L29","K30","J29"]],"hexes":["G22","H23","I22","K28","J29","M30"],"revenue":310,"revenue_str":"G22-H23-I22-K28-J29-M30"}],"original_id":729},{"type":"dividend","entity":"MR","entity_type":"corporation","id":679,"created_at":1617574893,"kind":"payout","original_id":730},{"type":"pass","entity":"MR","entity_type":"corporation","id":680,"created_at":1617574898,"original_id":731},{"type":"pass","entity":"NBR","entity_type":"corporation","id":681,"created_at":1617574931,"original_id":736},{"type":"lay_tile","entity":"NBR","entity_type":"corporation","id":682,"created_at":1617574945,"hex":"J29","tile":"611-1","rotation":1,"original_id":737},{"type":"place_token","entity":"NBR","entity_type":"corporation","id":683,"created_at":1617574947,"city":"X7-0-0","slot":3,"original_id":738},{"type":"run_routes","entity":"NBR","entity_type":"corporation","id":684,"created_at":1617574995,"routes":[{"train":"LP-0","connections":[["I22","H21"]],"hexes":["H21","I22"],"revenue":70,"revenue_str":"H21-I22"},{"train":"6-0","connections":[["E6","E8","F9","G10","H11","G12"],["F5","E6"],["H5","G6","F5"],["G4","H5"],["H1","G2","G4"]],"hexes":["G12","E6","F5","H5","G4","H1"],"revenue":310,"revenue_str":"G12-E6-F5-H5-G4-H1 (£60)"}],"original_id":739},{"type":"choose","entity":"NBR","entity_type":"corporation","id":685,"created_at":1617574999,"choice":"withhold","original_id":740},{"type":"dividend","entity":"NBR","entity_type":"corporation","id":686,"created_at":1617575002,"kind":"payout","original_id":741},{"type":"buy_train","entity":"NBR","entity_type":"corporation","id":687,"created_at":1617575012,"train":"7-0","price":576,"original_id":742},{"type":"acquire_company","entity":"LNWR","entity_type":"corporation","id":688,"created_at":1617575033,"company":"P2","original_id":743},{"type":"acquire_company","entity":"LNWR","entity_type":"corporation","id":689,"created_at":1617575035,"company":"P14","original_id":744},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":690,"created_at":1617575046,"hex":"I22","tile":"X13-0","rotation":0,"original_id":745},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":691,"created_at":1617575052,"original_id":746},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":692,"created_at":1617575057,"original_id":747},{"type":"buy_train","entity":"LNWR","entity_type":"corporation","id":693,"created_at":1617575075,"train":"7-2","price":1000,"variant":"E","original_id":748},{"type":"lay_tile","entity":"8","entity_type":"corporation","id":694,"created_at":1617575092,"hex":"L19","tile":"5-1","rotation":1,"original_id":749},{"type":"buy_train","entity":"8","entity_type":"corporation","id":695,"created_at":1617575099,"train":"5-0","price":561,"original_id":750},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":696,"created_at":1617575126,"hex":"K28","tile":"X19-0","rotation":0,"original_id":751},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":697,"created_at":1617575171,"routes":[{"train":"2P-0","connections":[["M30","L29","K28"]],"hexes":["K28","M30"],"revenue":150,"revenue_str":"K28-M30"},{"train":"5P-0","connections":[["K28","L27","M28","N29"],["I22","I24","J25","K26","K28"],["H23","I22"],["G22","H23"]],"hexes":["N29","K28","I22","H23","G22"],"revenue":390,"revenue_str":"N29-K28-I22-H23-G22 (£80)"}],"original_id":752},{"type":"choose","entity":"LYR","entity_type":"corporation","id":698,"created_at":1617575181,"choice":"withhold","original_id":753},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":699,"created_at":1617575189,"kind":"withhold","original_id":754},{"type":"buy_train","entity":"LYR","entity_type":"corporation","id":700,"created_at":1617575192,"train":"7-3","price":1000,"variant":"E","original_id":755},{"type":"pass","entity":"LYR","entity_type":"corporation","id":701,"created_at":1617575197,"original_id":756},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":702,"created_at":1617575232,"hex":"K24","tile":"619-4","rotation":0,"original_id":757},{"type":"hex_token","entity":"MR","entity_type":"corporation","id":703,"created_at":1617575241,"hex":"L19","token_type":"destination","original_id":759},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":704,"created_at":1617575266,"routes":[{"train":"6-1","connections":[["I22","H23"],["K28","K26","J25","I24","I22"],["I30","I28","J27","K28"],["J29","I30"],["M30","L29","K30","J29"]],"hexes":["H23","I22","K28","I30","J29","M30"],"revenue":380,"revenue_str":"H23-I22-K28-I30-J29-M30"}],"original_id":760},{"type":"dividend","entity":"MR","entity_type":"corporation","id":705,"created_at":1617575267,"kind":"payout","original_id":761},{"type":"buy_train","entity":"MR","entity_type":"corporation","id":706,"created_at":1617575293,"train":"7-0","price":751,"original_id":762},{"type":"pass","entity":"MR","entity_type":"corporation","id":707,"created_at":1617575312,"original_id":763},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":708,"created_at":1617575342,"hex":"H19","tile":"X18-0","rotation":3,"original_id":764},{"type":"pass","entity":"CR","entity_type":"corporation","id":709,"created_at":1617575352,"original_id":765},{"type":"choose","entity":"CR","entity_type":"corporation","id":710,"created_at":1617575354,"choice":"1","original_id":766},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":711,"created_at":1617575569,"routes":[{"train":"2P-1","connections":[["E6","E4","E2"]],"hexes":["E2","E6"],"revenue":90,"revenue_str":"E2-E6"},{"train":"7-1","connections":[["F7","E6"],["G12","H11","G10","F9","F7"],["H13","G12"],["H17","H15","H13"],["H19","H17"],["G20","H19"],["G22","G20"],["H23","G22"],["I22","H23"],["M26","L25","K26","J25","I24","I22"],["N29","N27","M26"]],"hexes":["E6","F7","G12","H13","H17","H19","G20","G22","H23","I22","M26","N29"],"revenue":490,"revenue_str":"E6-F7-G12-H13-H17-H19-G20-G22-H23-I22-M26-N29 (£30)"}],"original_id":767},{"type":"dividend","entity":"CR","entity_type":"corporation","id":712,"created_at":1617575604,"kind":"half","original_id":770},{"type":"pass","entity":"CR","entity_type":"corporation","id":713,"created_at":1617575645,"original_id":771},{"type":"pass","entity":"CR","entity_type":"corporation","id":714,"created_at":1617575648,"original_id":772},{"type":"lay_tile","entity":"NBR","entity_type":"corporation","id":715,"created_at":1617575666,"hex":"I20","tile":"8-1","rotation":4,"original_id":773},{"type":"pass","entity":"NBR","entity_type":"corporation","id":716,"created_at":1617575679,"original_id":774},{"type":"pass","entity":"NBR","entity_type":"corporation","id":717,"created_at":1617575681,"original_id":775},{"type":"run_routes","entity":"NBR","entity_type":"corporation","id":718,"created_at":1617575684,"routes":[{"train":"LP-0","connections":[["I22","H21"]],"hexes":["I22","H21"],"revenue":90,"revenue_str":"I22-H21"},{"train":"6-0","connections":[["E6","E8","F9","G10","H11","G12"],["F5","E6"],["H5","G6","F5"],["G4","H5"],["H1","G2","G4"]],"hexes":["G12","E6","F5","H5","G4","H1"],"revenue":310,"revenue_str":"G12-E6-F5-H5-G4-H1 (£60)"}],"original_id":776},{"type":"choose","entity":"NBR","entity_type":"corporation","id":719,"created_at":1617575688,"choice":"withhold","original_id":777},{"type":"dividend","entity":"NBR","entity_type":"corporation","id":720,"created_at":1617575691,"kind":"payout","original_id":778},{"type":"buy_train","entity":"NBR","entity_type":"corporation","id":721,"created_at":1617575694,"train":"7-4","price":750,"variant":"7","original_id":779},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":722,"created_at":1617575723,"hex":"H23","tile":"63-1","rotation":0,"original_id":780},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":723,"created_at":1617575733,"original_id":781},{"type":"run_routes","entity":"LNWR","entity_type":"corporation","id":724,"created_at":1617575754,"routes":[{"train":"7-2","connections":[["K28","L27","M28","N29"],["I22","I24","J25","K26","K28"]],"hexes":["N29","K28","I22"],"revenue":520,"revenue_str":"N29-K28-I22 (£160)"}],"original_id":782},{"type":"dividend","entity":"LNWR","entity_type":"corporation","id":725,"created_at":1617575765,"kind":"half","original_id":783},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":726,"created_at":1617575776,"original_id":784},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":727,"created_at":1617575784,"original_id":785},{"type":"buy_shares","entity":"LNWR","entity_type":"corporation","id":728,"created_at":1617575793,"shares":["LNWR_9"],"percent":10,"original_id":786},{"type":"buy_shares","entity":8145,"entity_type":"player","id":729,"created_at":1617575805,"shares":["LNWR_9"],"percent":10,"original_id":787},{"type":"pass","entity":1739,"entity_type":"player","id":730,"created_at":1617575815,"original_id":788},{"type":"pass","entity":3828,"entity_type":"player","id":731,"created_at":1617575825,"original_id":789},{"type":"pass","entity":8145,"entity_type":"player","id":732,"created_at":1617575837,"original_id":790},{"type":"lay_tile","entity":"8","entity_type":"corporation","id":733,"created_at":1617575851,"hex":"L23","tile":"80-1","rotation":0,"original_id":791},{"type":"run_routes","entity":"8","entity_type":"corporation","id":734,"created_at":1617575867,"routes":[{"train":"5-0","connections":[["K20","L19"],["K24","K22","K20"],["K28","K26","L25","L23","K24"],["I30","I28","J27","K28"]],"hexes":["L19","K20","K24","K28","I30"],"revenue":200,"revenue_str":"L19-K20-K24-K28-I30"}],"original_id":792},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":735,"created_at":1617575895,"hex":"G22","tile":"X11-0","rotation":2,"original_id":793},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":736,"created_at":1617575927,"routes":[{"train":"2P-0","connections":[["M30","L29","K28"]],"hexes":["M30","K28"],"revenue":150,"revenue_str":"M30-K28"},{"train":"5P-0","connections":[["K28","L27","M28","N29"],["I22","I24","J25","K26","K28"],["H23","I22"],["G22","H23"]],"hexes":["N29","K28","I22","H23","G22"],"revenue":330,"revenue_str":"N29-K28-I22-H23-G22"},{"train":"7-3","connections":[["H23","G22"],["I22","H23"],["I30","I28","J27","J25","I24","I22"],["J29","I30"],["M30","L29","K30","J29"]],"hexes":["G22","H23","I22","I30","J29","M30"],"revenue":880,"revenue_str":"G22-H23-I22-I30-J29-M30 (£160)"}],"original_id":794},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":737,"created_at":1617575931,"kind":"payout","original_id":795},{"type":"pass","entity":"LYR","entity_type":"corporation","id":738,"created_at":1617575937,"original_id":796},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":739,"created_at":1617575949,"hex":"J19","tile":"9-3","rotation":1,"original_id":797},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":740,"created_at":1617575955,"hex":"K18","tile":"8-9","rotation":5,"original_id":798},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":741,"created_at":1617576025,"routes":[{"train":"6-1","connections":[["I22","I20","J19","K18","L19"],["K28","K26","J25","I24","I22"],["I30","I28","J27","K28"],["J29","I30"],["M30","L29","K30","J29"]],"hexes":["L19","I22","K28","I30","J29","M30"],"revenue":370,"revenue_str":"L19-I22-K28-I30-J29-M30"},{"train":"7-0","connections":[["H23","G22"],["I22","H23"],["L19","K18","J19","I20","I22"],["K20","L19"],["K28","J27","J25","K26","L25","L23","K22","K20"],["J29","K28"],["I30","I28","J27","J29"]],"hexes":["G22","H23","I22","L19","K20","K28","J29","I30"],"revenue":600,"revenue_str":"G22-H23-I22-L19-K20-K28-J29-I30 (£40)"}],"original_id":800},{"type":"dividend","entity":"MR","entity_type":"corporation","id":742,"created_at":1617576027,"kind":"payout","original_id":801},{"type":"pass","entity":"MR","entity_type":"corporation","id":743,"created_at":1617576035,"original_id":802},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":744,"created_at":1617576097,"hex":"H23","tile":"X19-1","rotation":0,"original_id":803},{"type":"pass","entity":"CR","entity_type":"corporation","id":745,"created_at":1617576101,"original_id":804},{"type":"choose","entity":"CR","entity_type":"corporation","id":746,"created_at":1617576109,"choice":"1","original_id":805},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":747,"created_at":1617576188,"routes":[{"train":"2P-1","connections":[["E6","E4","E2"]],"hexes":["E6","E2"],"revenue":90,"revenue_str":"E6-E2"},{"train":"7-1","connections":[["F7","E6"],["G12","H11","G10","F9","F7"],["H13","G12"],["H17","H15","H13"],["H19","H17"],["G20","H19"],["G22","G20"],["H23","G22"],["I22","H23"],["M26","L25","K26","J25","I24","I22"],["N29","N27","M26"]],"hexes":["E6","F7","G12","H13","H17","H19","G20","G22","H23","I22","M26","N29"],"revenue":520,"revenue_str":"E6-F7-G12-H13-H17-H19-G20-G22-H23-I22-M26-N29 (£30)"}],"original_id":806},{"type":"dividend","entity":"CR","entity_type":"corporation","id":748,"created_at":1617576192,"kind":"withhold","original_id":807},{"type":"buy_train","entity":"CR","entity_type":"corporation","id":749,"created_at":1617576195,"train":"7-6","price":1000,"variant":"E","original_id":808},{"type":"lay_tile","entity":"NBR","entity_type":"corporation","id":750,"created_at":1617576313,"hex":"J29","tile":"X18-1","rotation":1,"original_id":811},{"type":"pass","entity":"NBR","entity_type":"corporation","user":1739,"created_at":1684726347,"original_id":null,"id":751},{"type":"run_routes","entity":"NBR","entity_type":"corporation","id":752,"created_at":1617576343,"routes":[{"train":"LP-0","connections":[["I22","H21"]],"hexes":["I22","H21"],"revenue":90,"revenue_str":"I22-H21"},{"train":"6-0","connections":[["E6","E8","F9","G10","H11","G12"],["F5","E6"],["H5","G6","F5"],["G4","H5"],["H1","G2","G4"]],"hexes":["G12","E6","F5","H5","G4","H1"],"revenue":310,"revenue_str":"G12-E6-F5-H5-G4-H1 (£60)"},{"train":"7-4","connections":[["G22","G20"],["H23","G22"],["I22","H23"],["K28","K26","J25","I24","I22"],["J29","J27","K28"],["M30","L29","K30","J29"]],"hexes":["G20","G22","H23","I22","K28","J29","M30"],"revenue":400,"revenue_str":"G20-G22-H23-I22-K28-J29-M30"}],"original_id":812},{"type":"choose","entity":"NBR","entity_type":"corporation","id":753,"created_at":1617576346,"choice":"withhold","original_id":813},{"type":"dividend","entity":"NBR","entity_type":"corporation","id":754,"created_at":1617576348,"kind":"payout","original_id":814},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":755,"created_at":1617576357,"hex":"H5","tile":"X11-1","rotation":5,"original_id":815},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":756,"created_at":1617576367,"original_id":816},{"type":"place_token","entity":"LNWR","entity_type":"corporation","id":757,"created_at":1617576373,"city":"X19-0-0","slot":1,"original_id":817},{"type":"run_routes","entity":"LNWR","entity_type":"corporation","id":758,"created_at":1617576383,"routes":[{"train":"7-2","connections":[["K28","L27","M28","N29"],["I22","I24","J25","K26","K28"]],"hexes":["N29","K28","I22"],"revenue":620,"revenue_str":"N29-K28-I22 (£160)"}],"original_id":818},{"type":"dividend","entity":"LNWR","entity_type":"corporation","id":759,"created_at":1617576387,"kind":"withhold","original_id":819},{"type":"buy_train","entity":"LNWR","entity_type":"corporation","id":760,"created_at":1617576391,"train":"7-7","price":750,"variant":"7","original_id":820},{"type":"lay_tile","entity":"8","entity_type":"corporation","id":761,"created_at":1617576417,"hex":"L19","tile":"15-1","rotation":0,"original_id":821},{"type":"run_routes","entity":"8","entity_type":"corporation","id":762,"created_at":1617576450,"routes":[{"train":"5-0","connections":[["K24","K22","K20"],["K28","K26","L25","L23","K24"],["J29","K28"],["M30","L29","K30","J29"]],"hexes":["K20","K24","K28","J29","M30"],"revenue":250,"revenue_str":"K20-K24-K28-J29-M30"}],"original_id":822},{"type":"pass","entity":"LYR","entity_type":"corporation","id":763,"created_at":1617576466,"original_id":823},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":764,"created_at":1617576476,"routes":[{"train":"2P-0","connections":[["M30","L29","K28"]],"hexes":["M30","K28"],"revenue":150,"revenue_str":"M30-K28"},{"train":"5P-0","connections":[["K28","L27","M28","N29"],["I22","I24","J25","K26","K28"],["H23","I22"],["G22","H23"]],"hexes":["N29","K28","I22","H23","G22"],"revenue":340,"revenue_str":"N29-K28-I22-H23-G22"},{"train":"7-3","connections":[["H23","G22"],["I22","H23"],["I30","I28","J27","J25","I24","I22"],["J29","I30"],["M30","L29","K30","J29"]],"hexes":["G22","H23","I22","I30","J29","M30"],"revenue":900,"revenue_str":"G22-H23-I22-I30-J29-M30 (£160)"}],"original_id":824},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":765,"created_at":1617576479,"kind":"payout","original_id":825},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":766,"created_at":1617576495,"hex":"L19","tile":"63-2","rotation":0,"original_id":826},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":767,"created_at":1617576513,"routes":[{"train":"6-1","connections":[["I22","I20","J19","K18","L19"],["K28","K26","J25","I24","I22"],["I30","I28","J27","K28"],["J29","I30"],["M30","L29","K30","J29"]],"hexes":["L19","I22","K28","I30","J29","M30"],"revenue":400,"revenue_str":"L19-I22-K28-I30-J29-M30"},{"train":"7-0","connections":[["H23","G22"],["I22","H23"],["L19","K18","J19","I20","I22"],["K20","L19"],["K28","J27","J25","K26","L25","L23","K22","K20"],["J29","K28"],["I30","I28","J27","J29"]],"hexes":["G22","H23","I22","L19","K20","K28","J29","I30"],"revenue":700,"revenue_str":"G22-H23-I22-L19-K20-K28-J29-I30 (£80)"}],"original_id":828},{"type":"dividend","entity":"MR","entity_type":"corporation","id":768,"created_at":1617576515,"kind":"payout","original_id":829},{"type":"pass","entity":"MR","entity_type":"corporation","id":769,"created_at":1617576518,"original_id":830},{"type":"lay_tile","entity":"NBR","entity_type":"corporation","id":770,"created_at":1617576538,"hex":"L19","tile":"X19-2","rotation":0,"original_id":831},{"type":"place_token","entity":"NBR","entity_type":"corporation","id":771,"created_at":1617576543,"city":"X11-0-0","slot":2,"original_id":832},{"type":"run_routes","entity":"NBR","entity_type":"corporation","id":772,"created_at":1617576567,"routes":[{"train":"LP-0","connections":[["I22","H21"]],"hexes":["I22","H21"],"revenue":90,"revenue_str":"I22-H21"},{"train":"6-0","connections":[["E6","E8","F9","G10","H11","G12"],["F5","E6"],["H5","G6","F5"],["G4","H5"],["H1","G2","G4"]],"hexes":["G12","E6","F5","H5","G4","H1"],"revenue":320,"revenue_str":"G12-E6-F5-H5-G4-H1 (£60)"},{"train":"7-4","connections":[["G22","G20"],["H23","G22"],["I22","H23"],["K28","K26","J25","I24","I22"],["J29","J27","K28"],["M30","L29","K30","J29"]],"hexes":["G20","G22","H23","I22","K28","J29","M30"],"revenue":400,"revenue_str":"G20-G22-H23-I22-K28-J29-M30"}],"original_id":833},{"type":"choose","entity":"NBR","entity_type":"corporation","id":773,"created_at":1617576572,"choice":"payout","original_id":834},{"type":"dividend","entity":"NBR","entity_type":"corporation","id":774,"created_at":1617576577,"kind":"payout","original_id":835},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":775,"created_at":1617576662,"hex":"H25","tile":"3-1","rotation":2,"original_id":838},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":776,"created_at":1617576668,"hex":"G24","tile":"58-3","rotation":3,"original_id":839},{"type":"pass","entity":"CR","entity_type":"corporation","id":777,"created_at":1617576672,"original_id":840},{"type":"choose","entity":"CR","entity_type":"corporation","id":778,"created_at":1617576675,"choice":"1","original_id":841},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":779,"created_at":1617576877,"routes":[{"train":"2P-1","connections":[["I22","H23"]],"hexes":["H23","I22"],"revenue":130,"revenue_str":"H23-I22"},{"train":"7-1","connections":[["F5","G6","H5"],["E6","F5"],["F7","E6"],["G12","H11","G10","F9","F7"],["H13","G12"],["H17","H15","H13"],["H19","H17"],["H21","H19"],["I22","H21"],["K28","J27","J25","I24","I22"],["M30","L29","K28"]],"hexes":["H5","F5","E6","F7","G12","H13","H17","H19","H21","I22","K28","M30"],"revenue":490,"revenue_str":"H5-F5-E6-F7-G12-H13-H17-H19-H21-I22-K28-M30"},{"train":"7-6","connections":[["M26","N27","N29"],["I22","I24","J25","K26","L25","M26"],["H21","I22"],["H19","H21"],["H17","H19"],["H13","H15","H17"],["G12","H13"],["E6","E8","F9","G10","H11","G12"],["F5","E6"],["H5","G6","F5"],["G4","H5"],["H1","G2","G4"]],"hexes":["N29","M26","I22","H21","H19","H17","H13","G12","E6","F5","H5","G4","H1"],"revenue":860,"revenue_str":"N29-M26-I22-H21-H19-H17-H13-G12-E6-F5-H5-G4-H1 (£60)"}],"original_id":842},{"type":"dividend","entity":"CR","entity_type":"corporation","id":780,"created_at":1617576898,"kind":"payout","original_id":843},{"type":"pass","entity":"CR","entity_type":"corporation","id":781,"created_at":1617576902,"original_id":844},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":782,"created_at":1617576913,"hex":"I24","tile":"82-2","rotation":2,"original_id":845},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":783,"created_at":1617576920,"original_id":846},{"type":"choose","entity":"LNWR","entity_type":"corporation","id":784,"created_at":1617576925,"choice":"0","original_id":847},{"type":"message","entity":3828,"entity_type":"player","id":785,"created_at":1617576974,"message":"good game","original_id":848},{"type":"run_routes","entity":"LNWR","entity_type":"corporation","id":786,"created_at":1617576982,"routes":[{"train":"7-2","connections":[["K28","L27","M28","N29"],["I22","I24","J25","K26","K28"]],"hexes":["N29","K28","I22"],"revenue":620,"revenue_str":"N29-K28-I22 (£160)"},{"train":"7-7","connections":[["F5","G6","H5"],["E6","F5"],["F7","E6"],["H13","H11","G10","F9","F7"],["H17","H15","H13"],["H19","H17"],["H21","H19"],["I22","H21"],["H23","I22"],["H23","I24","J25","K26","K28"],["K28","L27","M28","N29"]],"hexes":["H5","F5","E6","F7","H13","H17","H19","H21","I22","H23","K28","N29"],"revenue":510,"revenue_str":"H5-F5-E6-F7-H13-H17-H19-H21-I22-H23-K28-N29"}],"original_id":849},{"type":"dividend","entity":"LNWR","entity_type":"corporation","id":787,"created_at":1617576989,"kind":"payout","original_id":850},{"type":"message","entity":1739,"entity_type":"player","id":788,"created_at":1617577038,"message":"gg","original_id":851}],"loaded":true,"created_at":1617566566,"updated_at":1617577038} \ No newline at end of file diff --git a/public/fixtures/1822/36685.json b/public/fixtures/1822/36685.json new file mode 100644 index 0000000000..7415f70968 --- /dev/null +++ b/public/fixtures/1822/36685.json @@ -0,0 +1 @@ +{"id":36685,"description":"","user":{"id":3714,"name":"MarcusBatty"},"players":[{"id":488,"name":"beardbru"},{"id":3714,"name":"MarcusBatty"},{"id":4035,"name":"clinchfield kurt"}],"max_players":3,"title":"1822","settings":{"seed":1961903491,"unlisted":false,"optional_rules":[]},"user_settings":null,"status":"finished","turn":9,"round":"Operating Round","acting":[488,3714,4035],"result":{"488":17809,"3714":11551,"4035":10573},"actions":[{"type":"bid","entity":488,"entity_type":"player","id":1,"created_at":1617840166,"company":"M21","price":100,"original_id":1},{"type":"bid","entity":488,"entity_type":"player","id":2,"created_at":1617840170,"company":"M24","price":100,"original_id":2},{"type":"bid","entity":488,"entity_type":"player","id":3,"created_at":1617840174,"company":"C6","price":100,"original_id":3},{"type":"bid","entity":3714,"entity_type":"player","id":4,"created_at":1617840308,"company":"P3","price":30,"original_id":4},{"type":"pass","entity":3714,"entity_type":"player","id":5,"created_at":1617840314,"original_id":5},{"type":"bid","entity":4035,"entity_type":"player","id":6,"created_at":1617840375,"company":"P3","price":65,"original_id":6},{"type":"bid","entity":4035,"entity_type":"player","id":7,"created_at":1617840389,"company":"M18","price":100,"original_id":7},{"type":"bid","entity":4035,"entity_type":"player","id":8,"created_at":1617840407,"company":"C1","price":100,"original_id":8},{"type":"bid","entity":488,"entity_type":"player","id":9,"created_at":1617840448,"company":"P3","price":100,"original_id":9},{"type":"bid","entity":488,"entity_type":"player","id":10,"created_at":1617840456,"company":"P1","price":70,"original_id":10},{"type":"pass","entity":488,"entity_type":"player","id":11,"created_at":1617840463,"original_id":11},{"type":"bid","entity":3714,"entity_type":"player","id":12,"created_at":1617840483,"company":"M21","price":110,"original_id":12},{"type":"bid","entity":3714,"entity_type":"player","id":13,"created_at":1617840486,"company":"C6","price":110,"original_id":13},{"type":"pass","entity":3714,"entity_type":"player","id":14,"created_at":1617840491,"original_id":14},{"type":"bid","entity":4035,"entity_type":"player","id":15,"created_at":1617840524,"company":"P3","price":120,"original_id":15},{"type":"bid","entity":4035,"entity_type":"player","id":16,"created_at":1617840537,"company":"P1","price":80,"original_id":16},{"type":"pass","entity":4035,"entity_type":"player","id":17,"created_at":1617840546,"original_id":17},{"type":"bid","entity":488,"entity_type":"player","id":18,"created_at":1617840561,"company":"M21","price":115,"original_id":18},{"type":"bid","entity":488,"entity_type":"player","id":19,"created_at":1617840567,"company":"P1","price":85,"original_id":19},{"type":"bid","entity":488,"entity_type":"player","id":20,"created_at":1617840569,"company":"C6","price":115,"original_id":20},{"type":"bid","entity":3714,"entity_type":"player","id":21,"created_at":1617840579,"company":"M21","price":120,"original_id":21},{"type":"bid","entity":3714,"entity_type":"player","id":22,"created_at":1617840582,"company":"C6","price":120,"original_id":22},{"type":"bid","entity":3714,"entity_type":"player","id":23,"created_at":1617840586,"company":"P5","price":15,"original_id":23},{"type":"bid","entity":4035,"entity_type":"player","id":24,"created_at":1617840651,"company":"P1","price":90,"original_id":24},{"type":"pass","entity":4035,"entity_type":"player","id":25,"created_at":1617840655,"original_id":25},{"type":"bid","entity":488,"entity_type":"player","id":26,"created_at":1617840669,"company":"M21","price":125,"original_id":26},{"type":"bid","entity":488,"entity_type":"player","id":27,"created_at":1617840671,"company":"C6","price":125,"original_id":27},{"type":"bid","entity":488,"entity_type":"player","id":28,"created_at":1617840686,"company":"P5","price":40,"original_id":28},{"type":"bid","entity":3714,"entity_type":"player","id":29,"created_at":1617840760,"company":"C1","price":105,"original_id":29},{"type":"pass","entity":3714,"entity_type":"player","id":30,"created_at":1617840761,"original_id":30},{"type":"bid","entity":4035,"entity_type":"player","id":31,"created_at":1617840791,"company":"C1","price":120,"original_id":31},{"type":"pass","entity":4035,"entity_type":"player","id":32,"created_at":1617840888,"original_id":32},{"type":"pass","entity":488,"entity_type":"player","id":33,"created_at":1617840898,"original_id":33},{"type":"bid","entity":3714,"entity_type":"player","id":34,"created_at":1617840912,"company":"C5","price":100,"original_id":34},{"type":"pass","entity":3714,"entity_type":"player","id":35,"created_at":1617840917,"original_id":35},{"type":"pass","entity":4035,"entity_type":"player","id":36,"created_at":1617840921,"original_id":36},{"type":"pass","entity":488,"entity_type":"player","id":37,"created_at":1617840936,"original_id":37},{"type":"pass","entity":3714,"entity_type":"player","id":38,"created_at":1617840947,"original_id":38},{"type":"buy_train","entity":"21","entity_type":"corporation","id":39,"created_at":1617840951,"train":"L-0","price":60,"variant":"L","original_id":39},{"type":"lay_tile","entity":"21","entity_type":"corporation","id":40,"created_at":1617840961,"hex":"E36","tile":"8-0","rotation":2,"original_id":40},{"type":"run_routes","entity":"21","entity_type":"corporation","id":41,"created_at":1617840972,"routes":[{"train":"L-1","connections":[["local","E34"]],"hexes":["E34"],"revenue":30,"revenue_str":"E34"}],"original_id":41},{"type":"buy_train","entity":"24","entity_type":"corporation","id":42,"created_at":1617840976,"train":"L-0","price":60,"variant":"L","original_id":42},{"type":"pass","entity":"24","entity_type":"corporation","id":43,"created_at":1617840978,"original_id":43},{"type":"run_routes","entity":"24","entity_type":"corporation","id":44,"created_at":1617840992,"routes":[{"train":"L-2","connections":[["D35"]],"hexes":["D35","D35"],"revenue":30,"revenue_str":"D35-D35"}],"original_id":44},{"type":"pass","entity":"24","entity_type":"corporation","id":45,"created_at":1617840994,"original_id":45},{"type":"pass","entity":"18","entity_type":"corporation","id":46,"created_at":1617841045,"original_id":48},{"type":"lay_tile","entity":"18","entity_type":"corporation","id":47,"created_at":1617841066,"hex":"I42","tile":"6-0","rotation":2,"original_id":49},{"type":"buy_train","entity":"18","entity_type":"corporation","id":48,"created_at":1617841111,"train":"L-3","price":60,"variant":"L","original_id":50},{"type":"pass","entity":"18","entity_type":"corporation","id":49,"created_at":1617841135,"original_id":51},{"type":"bid","entity":3714,"entity_type":"player","id":50,"created_at":1617841152,"company":"M2","price":100,"original_id":52},{"type":"bid","entity":3714,"entity_type":"player","id":51,"created_at":1617841162,"company":"P4","price":50,"original_id":53},{"type":"bid","entity":3714,"entity_type":"player","id":52,"created_at":1617841194,"company":"P6","price":40,"original_id":56},{"type":"bid","entity":488,"entity_type":"player","id":53,"created_at":1617841286,"company":"P4","price":100,"original_id":57},{"type":"bid","entity":488,"entity_type":"player","id":54,"created_at":1617841292,"company":"P6","price":70,"original_id":58},{"type":"bid","entity":488,"entity_type":"player","id":55,"created_at":1617841300,"company":"P15","price":50,"original_id":59},{"type":"bid","entity":4035,"entity_type":"player","id":56,"created_at":1617841403,"company":"P15","price":65,"original_id":62},{"type":"pass","entity":4035,"entity_type":"player","id":57,"created_at":1617841417,"original_id":63},{"type":"bid","entity":3714,"entity_type":"player","id":58,"created_at":1617841442,"company":"P6","price":75,"original_id":64},{"type":"pass","entity":3714,"entity_type":"player","id":59,"created_at":1617841445,"original_id":65},{"type":"bid","entity":488,"entity_type":"player","id":60,"created_at":1617841448,"company":"M16","price":100,"original_id":66},{"type":"bid","entity":488,"entity_type":"player","id":61,"created_at":1617841459,"company":"P15","price":70,"original_id":67},{"type":"bid","entity":488,"entity_type":"player","id":62,"created_at":1617841465,"company":"P6","price":80,"original_id":68},{"type":"pass","entity":4035,"entity_type":"player","id":63,"created_at":1617841502,"original_id":69},{"type":"bid","entity":3714,"entity_type":"player","id":64,"created_at":1617841592,"company":"P4","price":105,"original_id":70},{"type":"pass","entity":3714,"entity_type":"player","id":65,"created_at":1617841598,"original_id":71},{"type":"bid","entity":488,"entity_type":"player","id":66,"created_at":1617841614,"company":"P4","price":110,"original_id":72},{"type":"pass","entity":488,"entity_type":"player","id":67,"created_at":1617841677,"original_id":73},{"type":"bid","entity":4035,"entity_type":"player","id":68,"created_at":1617841705,"company":"P4","price":115,"original_id":74},{"type":"bid","entity":4035,"entity_type":"player","id":69,"created_at":1617841709,"company":"C2","price":100,"original_id":75},{"type":"pass","entity":4035,"entity_type":"player","id":70,"created_at":1617841722,"original_id":76},{"type":"pass","entity":3714,"entity_type":"player","id":71,"created_at":1617841750,"original_id":77},{"type":"pass","entity":488,"entity_type":"player","id":72,"created_at":1617841760,"original_id":78},{"type":"pass","entity":4035,"entity_type":"player","id":73,"created_at":1617841807,"original_id":79},{"type":"pass","entity":"21","entity_type":"corporation","id":74,"created_at":1617841819,"original_id":80},{"type":"run_routes","entity":"21","entity_type":"corporation","id":75,"created_at":1617841821,"routes":[{"train":"L-1","connections":[["local","E34"]],"hexes":["E34"],"revenue":30,"revenue_str":"E34"}],"original_id":81},{"type":"pass","entity":"21","entity_type":"corporation","id":76,"created_at":1617841824,"original_id":82},{"type":"pass","entity":"24","entity_type":"corporation","id":77,"created_at":1617841827,"original_id":83},{"type":"run_routes","entity":"24","entity_type":"corporation","id":78,"created_at":1617841830,"routes":[{"train":"L-2","connections":[["D35"]],"hexes":["D35","D35"],"revenue":30,"revenue_str":"D35-D35"}],"original_id":84},{"type":"pass","entity":"24","entity_type":"corporation","id":79,"created_at":1617841831,"original_id":85},{"type":"buy_train","entity":"2","entity_type":"corporation","id":80,"created_at":1617841846,"train":"L-0","price":60,"variant":"L","original_id":86},{"type":"lay_tile","entity":"2","entity_type":"corporation","id":81,"created_at":1617841911,"hex":"F3","tile":"58-0","rotation":2,"original_id":89},{"type":"run_routes","entity":"2","entity_type":"corporation","id":82,"created_at":1617841938,"routes":[{"train":"L-7","connections":[["E2","F3"]],"hexes":["F3","E2"],"revenue":20,"revenue_str":"F3-E2"}],"original_id":90},{"type":"pass","entity":"2","entity_type":"corporation","id":83,"created_at":1617841971,"original_id":91},{"type":"buy_train","entity":"16","entity_type":"corporation","id":84,"created_at":1617841983,"train":"L-0","price":60,"variant":"L","original_id":92},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":85,"created_at":1617841986,"hex":"M38","tile":"X20-0","rotation":0,"original_id":93},{"type":"run_routes","entity":"16","entity_type":"corporation","id":86,"created_at":1617842036,"routes":[{"train":"L-8","connections":[["local","M38"]],"hexes":["M38"],"revenue":40,"revenue_str":"M38"}],"original_id":94},{"type":"pass","entity":"16","entity_type":"corporation","id":87,"created_at":1617842043,"original_id":95},{"type":"lay_tile","entity":"18","entity_type":"corporation","id":88,"created_at":1617842089,"hex":"H41","tile":"8-1","rotation":5,"original_id":96},{"type":"run_routes","entity":"18","entity_type":"corporation","id":89,"created_at":1617842102,"routes":[{"train":"L-3","connections":[["local","I42"]],"hexes":["I42"],"revenue":20,"revenue_str":"I42"}],"original_id":97},{"type":"pass","entity":"18","entity_type":"corporation","id":90,"created_at":1617842110,"original_id":98},{"type":"bid","entity":3714,"entity_type":"player","id":91,"created_at":1617842160,"company":"P9","price":40,"original_id":99},{"type":"bid","entity":3714,"entity_type":"player","id":92,"created_at":1617842177,"company":"P11","price":20,"original_id":102},{"type":"bid","entity":3714,"entity_type":"player","id":93,"created_at":1617842181,"company":"P17","price":20,"original_id":103},{"type":"bid","entity":488,"entity_type":"player","id":94,"created_at":1617842303,"company":"P17","price":25,"original_id":104},{"type":"bid","entity":488,"entity_type":"player","id":95,"created_at":1617842307,"company":"P9","price":45,"original_id":105},{"type":"bid","entity":488,"entity_type":"player","id":96,"created_at":1617842310,"company":"P11","price":25,"original_id":106},{"type":"pass","entity":4035,"entity_type":"player","id":97,"created_at":1617842319,"original_id":107},{"type":"bid","entity":3714,"entity_type":"player","id":98,"created_at":1617842327,"company":"P9","price":50,"original_id":108},{"type":"bid","entity":3714,"entity_type":"player","id":99,"created_at":1617842336,"company":"P11","price":30,"original_id":109},{"type":"bid","entity":3714,"entity_type":"player","id":100,"created_at":1617842344,"company":"P17","price":30,"original_id":110},{"type":"pass","entity":488,"entity_type":"player","id":101,"created_at":1617842362,"original_id":111},{"type":"pass","entity":4035,"entity_type":"player","id":102,"created_at":1617842369,"original_id":112},{"type":"bid","entity":3714,"entity_type":"player","id":103,"created_at":1617842373,"company":"C3","price":100,"original_id":113},{"type":"pass","entity":3714,"entity_type":"player","id":104,"created_at":1617842378,"original_id":114},{"type":"pass","entity":488,"entity_type":"player","id":105,"created_at":1617842384,"original_id":115},{"type":"pass","entity":4035,"entity_type":"player","id":106,"created_at":1617842391,"original_id":116},{"type":"pass","entity":3714,"entity_type":"player","id":107,"created_at":1617842394,"original_id":117},{"type":"choose","entity":3714,"entity_type":"player","id":108,"created_at":1617842411,"choice":"double","original_id":118},{"type":"pass","entity":"21","entity_type":"corporation","id":109,"created_at":1617842444,"original_id":119},{"type":"run_routes","entity":"21","entity_type":"corporation","id":110,"created_at":1617842446,"routes":[{"train":"L-1","connections":[["local","E34"]],"hexes":["E34"],"revenue":30,"revenue_str":"E34"}],"original_id":120},{"type":"buy_train","entity":"21","entity_type":"corporation","id":111,"created_at":1617842449,"train":"L-1","price":80,"variant":"2","exchange":"L-1","original_id":121},{"type":"pass","entity":"21","entity_type":"corporation","id":112,"created_at":1617842450,"original_id":122},{"type":"pass","entity":"24","entity_type":"corporation","id":113,"created_at":1617842453,"original_id":123},{"type":"pass","entity":"24","entity_type":"corporation","id":114,"created_at":1617842459,"original_id":124},{"type":"run_routes","entity":"24","entity_type":"corporation","id":115,"created_at":1617842461,"routes":[{"train":"L-2","connections":[["D35"]],"hexes":["D35","D35"],"revenue":30,"revenue_str":"D35-D35"}],"original_id":125},{"type":"buy_train","entity":"24","entity_type":"corporation","id":116,"created_at":1617842463,"train":"L-2","price":80,"variant":"2","exchange":"L-2","original_id":126},{"type":"pass","entity":"24","entity_type":"corporation","id":117,"created_at":1617842466,"original_id":127},{"type":"pass","entity":"2","entity_type":"corporation","id":118,"created_at":1617842472,"original_id":128},{"type":"lay_tile","entity":"2","entity_type":"corporation","id":119,"created_at":1617842527,"hex":"F7","tile":"55-0","rotation":1,"original_id":129},{"type":"run_routes","entity":"2","entity_type":"corporation","id":120,"created_at":1617842532,"routes":[{"train":"L-7","connections":[["E2","F3"]],"hexes":["E2","F3"],"revenue":20,"revenue_str":"E2-F3"}],"original_id":130},{"type":"pass","entity":"2","entity_type":"corporation","id":121,"created_at":1617842548,"original_id":131},{"type":"pass","entity":"16","entity_type":"corporation","id":122,"created_at":1617842553,"original_id":132},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":123,"created_at":1617842590,"hex":"L37","tile":"8-2","rotation":3,"original_id":135},{"type":"run_routes","entity":"16","entity_type":"corporation","id":124,"created_at":1617842594,"routes":[{"train":"L-8","connections":[["local","M38"]],"hexes":["M38"],"revenue":40,"revenue_str":"M38"}],"original_id":136},{"type":"pass","entity":"16","entity_type":"corporation","id":125,"created_at":1617842600,"original_id":137},{"type":"pass","entity":"18","entity_type":"corporation","id":126,"created_at":1617842613,"original_id":138},{"type":"lay_tile","entity":"18","entity_type":"corporation","id":127,"created_at":1617842625,"hex":"G42","tile":"3-0","rotation":3,"original_id":139},{"type":"run_routes","entity":"18","entity_type":"corporation","id":128,"created_at":1617842640,"routes":[{"train":"L-3","connections":[["I42","H41","G42"]],"hexes":["G42","I42"],"revenue":30,"revenue_str":"G42-I42"}],"original_id":140},{"type":"pass","entity":"18","entity_type":"corporation","id":129,"created_at":1617842658,"original_id":141},{"type":"par","entity":3714,"entity_type":"player","id":130,"created_at":1617842781,"corporation":"CR","share_price":"90,5,4","original_id":144},{"type":"par","entity":488,"entity_type":"player","id":131,"created_at":1617842981,"corporation":"MR","share_price":"60,8,4","original_id":145},{"type":"bid","entity":4035,"entity_type":"player","id":132,"created_at":1617843027,"company":"M17","price":100,"original_id":146},{"type":"pass","entity":4035,"entity_type":"player","id":133,"created_at":1617843030,"original_id":147},{"type":"bid","entity":3714,"entity_type":"player","id":134,"created_at":1617843053,"company":"P16","price":10,"original_id":148},{"type":"bid","entity":3714,"entity_type":"player","id":135,"created_at":1617843058,"company":"P2","price":20,"original_id":149},{"type":"bid","entity":3714,"entity_type":"player","id":136,"created_at":1617843065,"company":"P7","price":40,"original_id":150},{"type":"bid","entity":488,"entity_type":"player","id":137,"created_at":1617843146,"company":"M10","price":120,"original_id":151},{"type":"bid","entity":488,"entity_type":"player","id":138,"created_at":1617843158,"company":"P7","price":45,"original_id":152},{"type":"pass","entity":488,"entity_type":"player","id":139,"created_at":1617843164,"original_id":153},{"type":"pass","entity":4035,"entity_type":"player","id":140,"created_at":1617843186,"original_id":154},{"type":"bid","entity":3714,"entity_type":"player","id":141,"created_at":1617843192,"company":"P7","price":50,"original_id":155},{"type":"bid","entity":3714,"entity_type":"player","id":142,"created_at":1617843210,"company":"M17","price":105,"original_id":156},{"type":"pass","entity":3714,"entity_type":"player","id":143,"created_at":1617843215,"original_id":157},{"type":"bid","entity":488,"entity_type":"player","id":144,"created_at":1617843236,"company":"P7","price":55,"original_id":158},{"type":"pass","entity":488,"entity_type":"player","id":145,"created_at":1617843242,"original_id":159},{"type":"bid","entity":4035,"entity_type":"player","id":146,"created_at":1617843250,"company":"M17","price":110,"original_id":160},{"type":"bid","entity":4035,"entity_type":"player","id":147,"created_at":1617843272,"company":"P2","price":25,"original_id":161},{"type":"pass","entity":4035,"entity_type":"player","id":148,"created_at":1617843275,"original_id":162},{"type":"bid","entity":3714,"entity_type":"player","id":149,"created_at":1617843300,"company":"P7","price":60,"original_id":163},{"type":"bid","entity":3714,"entity_type":"player","id":150,"created_at":1617843302,"company":"M17","price":115,"original_id":164},{"type":"pass","entity":3714,"entity_type":"player","id":151,"created_at":1617843307,"original_id":165},{"type":"bid","entity":488,"entity_type":"player","id":152,"created_at":1617843318,"company":"P7","price":65,"original_id":166},{"type":"pass","entity":488,"entity_type":"player","id":153,"created_at":1617843348,"original_id":167},{"type":"bid","entity":4035,"entity_type":"player","id":154,"created_at":1617843366,"company":"M17","price":120,"original_id":168},{"type":"pass","entity":4035,"entity_type":"player","id":155,"created_at":1617843370,"original_id":169},{"type":"bid","entity":3714,"entity_type":"player","id":156,"created_at":1617843393,"company":"P2","price":30,"original_id":170},{"type":"bid","entity":3714,"entity_type":"player","id":157,"created_at":1617843395,"company":"P7","price":70,"original_id":171},{"type":"pass","entity":3714,"entity_type":"player","id":158,"created_at":1617843403,"original_id":172},{"type":"bid","entity":488,"entity_type":"player","id":159,"created_at":1617843478,"company":"C7","price":100,"original_id":173},{"type":"pass","entity":488,"entity_type":"player","id":160,"created_at":1617843484,"original_id":174},{"type":"pass","entity":4035,"entity_type":"player","id":161,"created_at":1617843500,"original_id":175},{"type":"pass","entity":3714,"entity_type":"player","id":162,"created_at":1617843510,"original_id":176},{"type":"pass","entity":488,"entity_type":"player","id":163,"created_at":1617843524,"original_id":177},{"type":"choose","entity":3714,"entity_type":"player","id":164,"created_at":1617843528,"choice":"double","original_id":178},{"type":"pass","entity":"21","entity_type":"corporation","id":165,"created_at":1617843538,"original_id":179},{"type":"pass","entity":"21","entity_type":"corporation","id":166,"created_at":1617843543,"original_id":180},{"type":"run_routes","entity":"21","entity_type":"corporation","id":167,"created_at":1617843554,"routes":[{"train":"L-1","connections":[["E34","F35"]],"hexes":["F35","E34"],"revenue":60,"revenue_str":"F35-E34"}],"original_id":181},{"type":"pass","entity":"21","entity_type":"corporation","id":168,"created_at":1617843558,"original_id":182},{"type":"pass","entity":"24","entity_type":"corporation","id":169,"created_at":1617843561,"original_id":183},{"type":"lay_tile","entity":"24","entity_type":"corporation","id":170,"created_at":1617843569,"hex":"D35","tile":"57-0","rotation":2,"original_id":184},{"type":"run_routes","entity":"24","entity_type":"corporation","id":171,"created_at":1617843577,"routes":[{"train":"L-2","connections":[["D35","E36","F35"]],"hexes":["F35","D35"],"revenue":50,"revenue_str":"F35-D35"}],"original_id":185},{"type":"pass","entity":"24","entity_type":"corporation","id":172,"created_at":1617843579,"original_id":186},{"type":"pass","entity":"2","entity_type":"corporation","id":173,"created_at":1617843584,"original_id":187},{"type":"lay_tile","entity":"2","entity_type":"corporation","id":174,"created_at":1617843590,"hex":"G2","tile":"9-0","rotation":1,"original_id":188},{"type":"run_routes","entity":"2","entity_type":"corporation","id":175,"created_at":1617843592,"routes":[{"train":"L-7","connections":[["E2","F3"]],"hexes":["E2","F3"],"revenue":20,"revenue_str":"E2-F3"}],"original_id":189},{"type":"pass","entity":"2","entity_type":"corporation","id":176,"created_at":1617843631,"original_id":190},{"type":"pass","entity":"16","entity_type":"corporation","id":177,"created_at":1617843744,"original_id":191},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":178,"created_at":1617843751,"hex":"L35","tile":"9-1","rotation":0,"original_id":192},{"type":"run_routes","entity":"16","entity_type":"corporation","id":179,"created_at":1617843755,"routes":[{"train":"L-8","connections":[["local","M38"]],"hexes":["M38"],"revenue":40,"revenue_str":"M38"}],"original_id":193},{"type":"buy_train","entity":"16","entity_type":"corporation","id":180,"created_at":1617843757,"train":"L-8","price":80,"variant":"2","exchange":"L-8","original_id":194},{"type":"pass","entity":"18","entity_type":"corporation","id":181,"created_at":1617843781,"original_id":195},{"type":"lay_tile","entity":"18","entity_type":"corporation","id":182,"created_at":1617843807,"hex":"J41","tile":"57-1","rotation":1,"original_id":196},{"type":"run_routes","entity":"18","entity_type":"corporation","id":183,"created_at":1617843823,"routes":[{"train":"L-3","connections":[["I42","H41","G42"]],"hexes":["I42","G42"],"revenue":30,"revenue_str":"I42-G42"}],"original_id":197},{"type":"buy_train","entity":"18","entity_type":"corporation","id":184,"created_at":1617843838,"train":"L-3","price":80,"variant":"2","exchange":"L-3","original_id":198},{"type":"buy_train","entity":"10","entity_type":"corporation","id":185,"created_at":1617843911,"train":"L-0","price":60,"variant":"L","original_id":199},{"type":"pass","entity":"10","entity_type":"corporation","id":186,"created_at":1617843916,"original_id":200},{"type":"lay_tile","entity":"10","entity_type":"corporation","id":187,"created_at":1617843928,"hex":"J29","tile":"5-0","rotation":1,"original_id":201},{"type":"run_routes","entity":"10","entity_type":"corporation","id":188,"created_at":1617843938,"routes":[{"train":"L-16","connections":[["local","I30"]],"hexes":["I30"],"revenue":40,"revenue_str":"I30"}],"original_id":202},{"type":"buy_train","entity":"10","entity_type":"corporation","id":189,"created_at":1617843943,"train":"L-16","price":80,"variant":"2","exchange":"L-16","original_id":203},{"type":"buy_train","entity":"17","entity_type":"corporation","id":190,"created_at":1617843965,"train":"L-0","price":60,"variant":"L","original_id":204},{"type":"pass","entity":"17","entity_type":"corporation","id":191,"created_at":1617843970,"original_id":205},{"type":"lay_tile","entity":"17","entity_type":"corporation","id":192,"created_at":1617843996,"hex":"K40","tile":"9-2","rotation":1,"original_id":206},{"type":"run_routes","entity":"17","entity_type":"corporation","id":193,"created_at":1617844009,"routes":[{"train":"L-17","connections":[["local","J41"]],"hexes":["J41"],"revenue":20,"revenue_str":"J41"}],"original_id":207},{"type":"pass","entity":"17","entity_type":"corporation","id":194,"created_at":1617844018,"original_id":208},{"type":"pass","entity":"CR","entity_type":"corporation","id":195,"created_at":1617844028,"original_id":209},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":196,"created_at":1617844043,"hex":"G8","tile":"8-3","rotation":0,"original_id":210},{"type":"pass","entity":"CR","entity_type":"corporation","id":197,"created_at":1617844064,"original_id":211},{"type":"pass","entity":"CR","entity_type":"corporation","id":198,"created_at":1617844067,"original_id":212},{"type":"buy_train","entity":"CR","entity_type":"corporation","id":199,"created_at":1617844070,"train":"L-18","price":120,"variant":"2","original_id":213},{"type":"pass","entity":"MR","entity_type":"corporation","id":200,"created_at":1617844270,"original_id":217},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":201,"created_at":1617844278,"hex":"H29","tile":"7-0","rotation":5,"original_id":218},{"type":"pass","entity":"MR","entity_type":"corporation","id":202,"created_at":1617844282,"original_id":219},{"type":"pass","entity":"MR","entity_type":"corporation","id":203,"created_at":1617844290,"original_id":220},{"type":"buy_train","entity":"MR","entity_type":"corporation","id":204,"created_at":1617844293,"train":"L-19","price":120,"variant":"2","original_id":221},{"type":"pass","entity":"21","entity_type":"corporation","id":205,"created_at":1617844303,"original_id":222},{"type":"lay_tile","entity":"21","entity_type":"corporation","id":206,"created_at":1617844314,"hex":"G34","tile":"58-1","rotation":1,"original_id":223},{"type":"run_routes","entity":"21","entity_type":"corporation","id":207,"created_at":1617844325,"routes":[{"train":"L-1","connections":[["E34","F35"]],"hexes":["E34","F35"],"revenue":60,"revenue_str":"E34-F35"}],"original_id":224},{"type":"pass","entity":"21","entity_type":"corporation","id":208,"created_at":1617844329,"original_id":225},{"type":"pass","entity":"24","entity_type":"corporation","id":209,"created_at":1617844332,"original_id":226},{"type":"lay_tile","entity":"24","entity_type":"corporation","id":210,"created_at":1617844340,"hex":"G32","tile":"58-2","rotation":4,"original_id":227},{"type":"run_routes","entity":"24","entity_type":"corporation","id":211,"created_at":1617844344,"routes":[{"train":"L-2","connections":[["D35","E36","F35"]],"hexes":["D35","F35"],"revenue":50,"revenue_str":"D35-F35"}],"original_id":228},{"type":"pass","entity":"24","entity_type":"corporation","id":212,"created_at":1617844347,"original_id":229},{"type":"pass","entity":"2","entity_type":"corporation","id":213,"created_at":1617844351,"original_id":230},{"type":"lay_tile","entity":"2","entity_type":"corporation","id":214,"created_at":1617844418,"hex":"G10","tile":"8-4","rotation":3,"original_id":235},{"type":"run_routes","entity":"2","entity_type":"corporation","id":215,"created_at":1617844422,"routes":[{"train":"L-7","connections":[["E2","F3"]],"hexes":["E2","F3"],"revenue":20,"revenue_str":"E2-F3"}],"original_id":236},{"type":"buy_train","entity":"2","entity_type":"corporation","id":216,"created_at":1617844423,"train":"L-7","price":80,"variant":"2","exchange":"L-7","original_id":237},{"type":"pass","entity":"16","entity_type":"corporation","id":217,"created_at":1617844479,"original_id":238},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":218,"created_at":1617844494,"hex":"L33","tile":"6-1","rotation":0,"original_id":239},{"type":"run_routes","entity":"16","entity_type":"corporation","id":219,"created_at":1617844510,"routes":[{"train":"L-8","connections":[["M38","L37","L35","L33"]],"hexes":["L33","M38"],"revenue":60,"revenue_str":"L33-M38"}],"original_id":240},{"type":"pass","entity":"16","entity_type":"corporation","id":220,"created_at":1617844519,"original_id":241},{"type":"pass","entity":"18","entity_type":"corporation","id":221,"created_at":1617844524,"original_id":242},{"type":"lay_tile","entity":"18","entity_type":"corporation","id":222,"created_at":1617844537,"hex":"G40","tile":"9-3","rotation":0,"original_id":243},{"type":"run_routes","entity":"18","entity_type":"corporation","id":223,"created_at":1617844555,"routes":[{"train":"L-3","connections":[["I42","J41"]],"hexes":["J41","I42"],"revenue":40,"revenue_str":"J41-I42"}],"original_id":244},{"type":"pass","entity":"18","entity_type":"corporation","id":224,"created_at":1617844564,"original_id":245},{"type":"pass","entity":"10","entity_type":"corporation","id":225,"created_at":1617844589,"original_id":246},{"type":"lay_tile","entity":"10","entity_type":"corporation","id":226,"created_at":1617844597,"hex":"H31","tile":"8-5","rotation":1,"original_id":247},{"type":"run_routes","entity":"10","entity_type":"corporation","id":227,"created_at":1617844614,"routes":[{"train":"L-16","connections":[["I30","J29"]],"hexes":["J29","I30"],"revenue":60,"revenue_str":"J29-I30"}],"original_id":248},{"type":"pass","entity":"10","entity_type":"corporation","id":228,"created_at":1617844628,"original_id":249},{"type":"pass","entity":"17","entity_type":"corporation","id":229,"created_at":1617844632,"original_id":250},{"type":"lay_tile","entity":"17","entity_type":"corporation","id":230,"created_at":1617844640,"hex":"L39","tile":"9-4","rotation":1,"original_id":251},{"type":"run_routes","entity":"17","entity_type":"corporation","id":231,"created_at":1617844662,"routes":[{"train":"L-17","connections":[["local","J41"]],"hexes":["J41"],"revenue":20,"revenue_str":"J41"}],"original_id":252},{"type":"buy_train","entity":"17","entity_type":"corporation","id":232,"created_at":1617844665,"train":"L-17","price":80,"variant":"2","exchange":"L-17","original_id":253},{"type":"pass","entity":"CR","entity_type":"corporation","id":233,"created_at":1617844729,"original_id":256},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":234,"created_at":1617844733,"hex":"H11","tile":"7-1","rotation":1,"original_id":257},{"type":"pass","entity":"CR","entity_type":"corporation","id":235,"created_at":1617844738,"original_id":258},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":236,"created_at":1617844748,"routes":[{"train":"L-18","connections":[["E6","F7"]],"hexes":["F7","E6"],"revenue":50,"revenue_str":"F7-E6"}],"original_id":259},{"type":"dividend","entity":"CR","entity_type":"corporation","id":237,"created_at":1617844758,"kind":"payout","original_id":260},{"type":"pass","entity":"CR","entity_type":"corporation","id":238,"created_at":1617844765,"original_id":261},{"type":"merge","entity":"CR","entity_type":"corporation","id":239,"created_at":1617844770,"corporation":"2","original_id":262},{"type":"choose","entity":"CR","entity_type":"corporation","id":240,"created_at":1617844775,"choice":"two_shares","original_id":263},{"type":"choose","entity":"CR","entity_type":"corporation","id":241,"created_at":1617844799,"choice":"exchange","original_id":264},{"type":"pass","entity":"CR","entity_type":"corporation","id":242,"created_at":1617844825,"original_id":265},{"type":"pass","entity":"MR","entity_type":"corporation","id":243,"created_at":1617844831,"original_id":266},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":244,"created_at":1617844851,"hex":"I28","tile":"8-6","rotation":5,"original_id":267},{"type":"pass","entity":"MR","entity_type":"corporation","id":245,"created_at":1617844859,"original_id":268},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":246,"created_at":1617844869,"routes":[{"train":"L-19","connections":[["J29","I30"]],"hexes":["I30","J29"],"revenue":60,"revenue_str":"I30-J29"}],"original_id":269},{"type":"dividend","entity":"MR","entity_type":"corporation","id":247,"created_at":1617844872,"kind":"payout","original_id":270},{"type":"pass","entity":"MR","entity_type":"corporation","id":248,"created_at":1617844876,"original_id":271},{"type":"merge","entity":"MR","entity_type":"corporation","id":249,"created_at":1617844879,"corporation":"10","original_id":272},{"type":"choose","entity":"MR","entity_type":"corporation","id":250,"created_at":1617844885,"choice":"two_shares","original_id":273},{"type":"choose","entity":"MR","entity_type":"corporation","id":251,"created_at":1617844887,"choice":"replace","original_id":274},{"type":"pass","entity":"MR","entity_type":"corporation","id":252,"created_at":1617844901,"original_id":275},{"type":"bid","entity":3714,"entity_type":"player","id":253,"created_at":1617844928,"company":"P12","price":20,"original_id":276},{"type":"bid","entity":3714,"entity_type":"player","id":254,"created_at":1617844934,"company":"P8","price":20,"original_id":277},{"type":"bid","entity":3714,"entity_type":"player","id":255,"created_at":1617844963,"company":"P18","price":20,"original_id":278},{"type":"buy_shares","entity":488,"entity_type":"player","id":256,"created_at":1617845066,"shares":["MR_3"],"percent":10,"original_id":279},{"type":"bid","entity":4035,"entity_type":"player","id":257,"created_at":1617845247,"company":"P18","price":25,"original_id":280},{"type":"pass","entity":4035,"entity_type":"player","id":258,"created_at":1617845251,"original_id":281},{"type":"buy_shares","entity":3714,"entity_type":"player","id":259,"created_at":1617845269,"shares":["CR_3"],"percent":10,"original_id":282},{"type":"buy_shares","entity":488,"entity_type":"player","id":260,"created_at":1617845424,"shares":["MR_4"],"percent":10,"original_id":283},{"type":"par","entity":4035,"entity_type":"player","id":261,"created_at":1617845520,"corporation":"GWR","share_price":"100,4,4","original_id":284},{"type":"buy_shares","entity":3714,"entity_type":"player","id":262,"created_at":1617845530,"shares":["CR_4"],"percent":10,"original_id":285},{"type":"par","entity":488,"entity_type":"player","id":263,"created_at":1617845557,"corporation":"LYR","share_price":"60,8,4","original_id":286},{"type":"pass","entity":4035,"entity_type":"player","id":264,"created_at":1617845603,"original_id":287},{"type":"bid","entity":3714,"entity_type":"player","id":265,"created_at":1617845606,"company":"P18","price":30,"original_id":288},{"type":"pass","entity":3714,"entity_type":"player","id":266,"created_at":1617845662,"original_id":289},{"type":"buy_shares","entity":488,"entity_type":"player","id":267,"created_at":1617845696,"shares":["LYR_1"],"percent":10,"original_id":290},{"type":"bid","entity":4035,"entity_type":"player","id":268,"created_at":1617845713,"company":"P12","price":25,"original_id":291},{"type":"pass","entity":4035,"entity_type":"player","id":269,"created_at":1617845720,"original_id":292},{"type":"par","entity":3714,"entity_type":"player","id":270,"created_at":1617845752,"corporation":"LBSCR","share_price":"100,4,4","original_id":295},{"type":"buy_shares","entity":488,"entity_type":"player","id":271,"created_at":1617845764,"shares":["LYR_2"],"percent":10,"original_id":296},{"type":"pass","entity":4035,"entity_type":"player","id":272,"created_at":1617845785,"original_id":297},{"type":"bid","entity":3714,"entity_type":"player","id":273,"created_at":1617845789,"company":"P12","price":30,"original_id":298},{"type":"pass","entity":3714,"entity_type":"player","id":274,"created_at":1617845798,"original_id":299},{"type":"buy_shares","entity":488,"entity_type":"player","id":275,"created_at":1617845810,"shares":["LYR_3"],"percent":10,"original_id":300},{"type":"bid","entity":4035,"entity_type":"player","id":276,"created_at":1617845832,"company":"P8","price":25,"original_id":301},{"type":"pass","entity":4035,"entity_type":"player","id":277,"created_at":1617845835,"original_id":302},{"type":"bid","entity":3714,"entity_type":"player","id":278,"created_at":1617845870,"company":"P8","price":30,"original_id":303},{"type":"pass","entity":3714,"entity_type":"player","id":279,"created_at":1617845873,"original_id":304},{"type":"buy_shares","entity":488,"entity_type":"player","id":280,"created_at":1617845881,"shares":["LYR_4"],"percent":10,"original_id":305},{"type":"pass","entity":4035,"entity_type":"player","id":281,"created_at":1617845888,"original_id":306},{"type":"pass","entity":3714,"entity_type":"player","id":282,"created_at":1617845907,"original_id":307},{"type":"pass","entity":488,"entity_type":"player","id":283,"created_at":1617845911,"original_id":308},{"type":"choose","entity":3714,"entity_type":"player","id":284,"created_at":1617845916,"choice":"double","original_id":309},{"type":"pass","entity":"21","entity_type":"corporation","id":285,"created_at":1617845927,"original_id":310},{"type":"lay_tile","entity":"21","entity_type":"corporation","id":286,"created_at":1617845943,"hex":"I30","tile":"X2-0","rotation":0,"original_id":311},{"type":"run_routes","entity":"21","entity_type":"corporation","id":287,"created_at":1617845978,"routes":[{"train":"L-1","connections":[["F33","E34"]],"hexes":["E34","F33"],"revenue":80,"revenue_str":"E34-F33"}],"original_id":312},{"type":"pass","entity":"21","entity_type":"corporation","id":288,"created_at":1617845984,"original_id":313},{"type":"pass","entity":"24","entity_type":"corporation","id":289,"created_at":1617846023,"original_id":317},{"type":"lay_tile","entity":"24","entity_type":"corporation","id":290,"created_at":1617846028,"hex":"D35","tile":"X3-0","rotation":1,"original_id":318},{"type":"run_routes","entity":"24","entity_type":"corporation","id":291,"created_at":1617846033,"routes":[{"train":"L-2","connections":[["D35","E36","F35"]],"hexes":["D35","F35"],"revenue":60,"revenue_str":"D35-F35"}],"original_id":319},{"type":"pass","entity":"24","entity_type":"corporation","id":292,"created_at":1617846035,"original_id":320},{"type":"pass","entity":"16","entity_type":"corporation","id":293,"created_at":1617846040,"original_id":321},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":294,"created_at":1617846048,"hex":"M38","tile":"X21-0","rotation":0,"original_id":322},{"type":"run_routes","entity":"16","entity_type":"corporation","id":295,"created_at":1617846052,"routes":[{"train":"L-8","connections":[["M38","L37","L35","L33"]],"hexes":["M38","L33"],"revenue":80,"revenue_str":"M38-L33"}],"original_id":323},{"type":"pass","entity":"16","entity_type":"corporation","id":296,"created_at":1617846054,"original_id":324},{"type":"pass","entity":"18","entity_type":"corporation","id":297,"created_at":1617846062,"original_id":325},{"type":"lay_tile","entity":"18","entity_type":"corporation","id":298,"created_at":1617846120,"hex":"J41","tile":"14-0","rotation":1,"original_id":328},{"type":"run_routes","entity":"18","entity_type":"corporation","id":299,"created_at":1617846131,"routes":[{"train":"L-3","connections":[["I42","J41"]],"hexes":["I42","J41"],"revenue":50,"revenue_str":"I42-J41"}],"original_id":329},{"type":"pass","entity":"18","entity_type":"corporation","id":300,"created_at":1617846141,"original_id":330},{"type":"pass","entity":"17","entity_type":"corporation","id":301,"created_at":1617846146,"original_id":331},{"type":"lay_tile","entity":"17","entity_type":"corporation","id":302,"created_at":1617846162,"hex":"I42","tile":"15-0","rotation":2,"original_id":332},{"type":"run_routes","entity":"17","entity_type":"corporation","id":303,"created_at":1617846183,"routes":[{"train":"L-17","connections":[["J41","K40","L39","M38"]],"hexes":["M38","J41"],"revenue":90,"revenue_str":"M38-J41"}],"original_id":333},{"type":"pass","entity":"17","entity_type":"corporation","id":304,"created_at":1617846187,"original_id":334},{"type":"acquire_company","entity":"GWR","entity_type":"corporation","id":305,"created_at":1617846227,"company":"P3","original_id":335},{"type":"pass","entity":"GWR","entity_type":"corporation","id":306,"created_at":1617846248,"original_id":336},{"type":"lay_tile","entity":"GWR","entity_type":"corporation","id":307,"created_at":1617846264,"hex":"G38","tile":"9-5","rotation":0,"original_id":337},{"type":"pass","entity":"GWR","entity_type":"corporation","id":308,"created_at":1617846272,"original_id":338},{"type":"hex_token","entity":"GWR","entity_type":"corporation","id":309,"created_at":1617846281,"hex":"G36","token_type":"destination","original_id":339},{"type":"pass","entity":"GWR","entity_type":"corporation","id":310,"created_at":1617846289,"original_id":340},{"type":"run_routes","entity":"GWR","entity_type":"corporation","id":311,"created_at":1617846303,"routes":[{"train":"2P-0","connections":[["M38","L39","K40","J41"]],"hexes":["J41","M38"],"revenue":90,"revenue_str":"J41-M38"}],"original_id":341},{"type":"dividend","entity":"GWR","entity_type":"corporation","id":312,"created_at":1617846310,"kind":"payout","original_id":342},{"type":"buy_train","entity":"GWR","entity_type":"corporation","id":313,"created_at":1617846313,"train":"3-1","price":200,"variant":"3","original_id":343},{"type":"pass","entity":"GWR","entity_type":"corporation","id":314,"created_at":1617846411,"original_id":348},{"type":"acquire_company","entity":"LBSCR","entity_type":"corporation","id":315,"created_at":1617846430,"company":"P7","original_id":349},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":316,"created_at":1617846437,"original_id":350},{"type":"lay_tile","entity":"LBSCR","entity_type":"corporation","id":317,"created_at":1617846442,"hex":"M40","tile":"9-6","rotation":0,"original_id":351},{"type":"lay_tile","entity":"LBSCR","entity_type":"corporation","id":318,"created_at":1617846454,"hex":"M42","tile":"5-1","rotation":2,"original_id":352},{"type":"hex_token","entity":"LBSCR","entity_type":"corporation","id":319,"created_at":1617846464,"hex":"M42","token_type":"destination","original_id":353},{"type":"buy_train","entity":"LBSCR","entity_type":"corporation","id":320,"created_at":1617846494,"train":"3-2","price":200,"variant":"3","original_id":354},{"type":"acquire_company","entity":"CR","entity_type":"corporation","id":321,"created_at":1617846509,"company":"P9","original_id":355},{"type":"pass","entity":"CR","entity_type":"corporation","id":322,"created_at":1617846518,"original_id":356},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":323,"created_at":1617846562,"hex":"G12","tile":"5-2","rotation":4,"original_id":357},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":324,"created_at":1617846652,"hex":"F5","tile":"4-0","rotation":1,"original_id":358},{"type":"hex_token","entity":"CR","entity_type":"corporation","id":325,"created_at":1617846682,"hex":"G12","token_type":"destination","original_id":359},{"type":"pass","entity":"CR","entity_type":"corporation","id":326,"created_at":1617846687,"original_id":360},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":327,"created_at":1617846698,"routes":[{"train":"L-18","connections":[["E6","F7"]],"hexes":["E6","F7"],"revenue":60,"revenue_str":"E6-F7"},{"train":"L-7","connections":[["E6","F5"]],"hexes":["F5","E6"],"revenue":60,"revenue_str":"F5-E6"}],"original_id":361},{"type":"dividend","entity":"CR","entity_type":"corporation","id":328,"created_at":1617846701,"kind":"payout","original_id":362},{"type":"buy_train","entity":"CR","entity_type":"corporation","id":329,"created_at":1617846703,"train":"3-3","price":200,"variant":"3","original_id":363},{"type":"pass","entity":"CR","entity_type":"corporation","id":330,"created_at":1617846705,"original_id":364},{"type":"pass","entity":"CR","entity_type":"corporation","id":331,"created_at":1617846710,"original_id":365},{"type":"pass","entity":"CR","entity_type":"corporation","id":332,"created_at":1617846714,"original_id":366},{"type":"acquire_company","entity":"MR","entity_type":"corporation","id":333,"created_at":1617846731,"company":"P6","original_id":367},{"type":"pass","entity":"MR","entity_type":"corporation","id":334,"created_at":1617846737,"original_id":368},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":335,"created_at":1617846751,"hex":"J29","tile":"14-1","rotation":1,"original_id":369},{"type":"pass","entity":"MR","entity_type":"corporation","id":336,"created_at":1617846758,"original_id":370},{"type":"pass","entity":"MR","entity_type":"corporation","id":337,"created_at":1617846761,"original_id":371},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":338,"created_at":1617846780,"routes":[{"train":"L-19","connections":[["J29","I30"]],"hexes":["J29","I30"],"revenue":80,"revenue_str":"J29-I30"},{"train":"L-16","connections":[["I30","H29","H31","G32"]],"hexes":["G32","I30"],"revenue":60,"revenue_str":"G32-I30"}],"original_id":372},{"type":"dividend","entity":"MR","entity_type":"corporation","id":339,"created_at":1617846781,"kind":"payout","original_id":373},{"type":"buy_train","entity":"MR","entity_type":"corporation","id":340,"created_at":1617846786,"train":"3-4","price":200,"variant":"3","original_id":374},{"type":"pass","entity":"MR","entity_type":"corporation","id":341,"created_at":1617846793,"original_id":375},{"type":"pass","entity":"MR","entity_type":"corporation","id":342,"created_at":1617846823,"original_id":376},{"type":"pass","entity":"MR","entity_type":"corporation","id":343,"created_at":1617846826,"original_id":377},{"type":"pass","entity":"LYR","entity_type":"corporation","id":344,"created_at":1617846833,"original_id":378},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":345,"created_at":1617846842,"hex":"H23","tile":"6-2","rotation":2,"original_id":379},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":346,"created_at":1617846848,"hex":"G20","tile":"3-1","rotation":5,"original_id":380},{"type":"hex_token","entity":"LYR","entity_type":"corporation","id":347,"created_at":1617846857,"hex":"I22","token_type":"destination","original_id":381},{"type":"buy_train","entity":"LYR","entity_type":"corporation","id":348,"created_at":1617846863,"train":"3-5","price":200,"variant":"3","original_id":382},{"type":"pass","entity":"LYR","entity_type":"corporation","id":349,"created_at":1617846868,"original_id":383},{"type":"pass","entity":"21","entity_type":"corporation","id":350,"created_at":1617846873,"original_id":384},{"type":"lay_tile","entity":"21","entity_type":"corporation","id":351,"created_at":1617846884,"hex":"H29","tile":"80-0","rotation":4,"original_id":385},{"type":"run_routes","entity":"21","entity_type":"corporation","id":352,"created_at":1617846893,"routes":[{"train":"L-1","connections":[["F33","E34"]],"hexes":["F33","E34"],"revenue":80,"revenue_str":"F33-E34"}],"original_id":386},{"type":"pass","entity":"21","entity_type":"corporation","id":353,"created_at":1617846897,"original_id":387},{"type":"pass","entity":"24","entity_type":"corporation","id":354,"created_at":1617846900,"original_id":388},{"type":"lay_tile","entity":"24","entity_type":"corporation","id":355,"created_at":1617846910,"hex":"I28","tile":"83-0","rotation":2,"original_id":389},{"type":"run_routes","entity":"24","entity_type":"corporation","id":356,"created_at":1617846915,"routes":[{"train":"L-2","connections":[["D35","E36","F35"]],"hexes":["D35","F35"],"revenue":60,"revenue_str":"D35-F35"}],"original_id":390},{"type":"pass","entity":"24","entity_type":"corporation","id":357,"created_at":1617846917,"original_id":391},{"type":"pass","entity":"16","entity_type":"corporation","id":358,"created_at":1617846922,"original_id":392},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":359,"created_at":1617846932,"hex":"L33","tile":"15-1","rotation":0,"original_id":393},{"type":"run_routes","entity":"16","entity_type":"corporation","id":360,"created_at":1617846936,"routes":[{"train":"L-8","connections":[["M38","L37","L35","L33"]],"hexes":["M38","L33"],"revenue":90,"revenue_str":"M38-L33"}],"original_id":394},{"type":"pass","entity":"16","entity_type":"corporation","id":361,"created_at":1617846941,"original_id":395},{"type":"pass","entity":"18","entity_type":"corporation","id":362,"created_at":1617846948,"original_id":396},{"type":"lay_tile","entity":"18","entity_type":"corporation","id":363,"created_at":1617847011,"hex":"H35","tile":"9-7","rotation":1,"original_id":397},{"type":"run_routes","entity":"18","entity_type":"corporation","id":364,"created_at":1617847024,"routes":[{"train":"L-3","connections":[["I42","J41"]],"hexes":["I42","J41"],"revenue":60,"revenue_str":"I42-J41"}],"original_id":398},{"type":"pass","entity":"18","entity_type":"corporation","id":365,"created_at":1617847032,"original_id":399},{"type":"pass","entity":"17","entity_type":"corporation","id":366,"created_at":1617847081,"original_id":400},{"type":"lay_tile","entity":"17","entity_type":"corporation","id":367,"created_at":1617847155,"hex":"L39","tile":"83-1","rotation":4,"original_id":401},{"type":"run_routes","entity":"17","entity_type":"corporation","id":368,"created_at":1617847177,"routes":[{"train":"L-17","connections":[["J41","K40","L39","M38"]],"hexes":["J41","M38"],"revenue":90,"revenue_str":"J41-M38"}],"original_id":402},{"type":"pass","entity":"17","entity_type":"corporation","id":369,"created_at":1617847182,"original_id":403},{"type":"pass","entity":"GWR","entity_type":"corporation","id":370,"created_at":1617847189,"original_id":404},{"type":"lay_tile","entity":"GWR","entity_type":"corporation","id":371,"created_at":1617847206,"hex":"I34","tile":"8-7","rotation":1,"original_id":405},{"type":"lay_tile","entity":"GWR","entity_type":"corporation","id":372,"created_at":1617847211,"hex":"I32","tile":"9-8","rotation":0,"original_id":406},{"type":"run_routes","entity":"GWR","entity_type":"corporation","id":373,"created_at":1617847314,"routes":[{"train":"2P-0","connections":[["J41","K40","L39","M38"]],"hexes":["M38","J41"],"revenue":90,"revenue_str":"M38-J41"},{"train":"3-1","connections":[["I30","H29","I28","J29"],["G36","H35","I34","I32","I30"]],"hexes":["J29","I30","G36"],"revenue":110,"revenue_str":"J29-I30-G36"}],"original_id":407},{"type":"dividend","entity":"GWR","entity_type":"corporation","id":374,"created_at":1617847324,"kind":"payout","original_id":408},{"type":"pass","entity":"GWR","entity_type":"corporation","id":375,"created_at":1617847332,"original_id":409},{"type":"merge","entity":"GWR","entity_type":"corporation","id":376,"created_at":1617847367,"corporation":"17","original_id":410},{"type":"choose","entity":"GWR","entity_type":"corporation","id":377,"created_at":1617847376,"choice":"two_shares","original_id":411},{"type":"choose","entity":"GWR","entity_type":"corporation","id":378,"created_at":1617847402,"choice":"exchange","original_id":412},{"type":"pass","entity":"GWR","entity_type":"corporation","id":379,"created_at":1617847406,"original_id":413},{"type":"pass","entity":"CR","entity_type":"corporation","id":380,"created_at":1617847515,"original_id":414},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":381,"created_at":1617847520,"hex":"G12","tile":"15-2","rotation":3,"original_id":415},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":382,"created_at":1617847581,"routes":[{"train":"L-18","connections":[["E6","E4","E2"]],"hexes":["E2","E6"],"revenue":60,"revenue_str":"E2-E6"},{"train":"L-7","connections":[["E6","F5"]],"hexes":["E6","F5"],"revenue":60,"revenue_str":"E6-F5"},{"train":"3-3","connections":[["F7","G8","G10","H11","G12"],["E6","F7"]],"hexes":["G12","F7","E6"],"revenue":120,"revenue_str":"G12-F7-E6 (£30)"}],"original_id":416},{"type":"dividend","entity":"CR","entity_type":"corporation","id":383,"created_at":1617847607,"kind":"payout","original_id":419},{"type":"pass","entity":"CR","entity_type":"corporation","id":384,"created_at":1617847609,"original_id":420},{"type":"pass","entity":"CR","entity_type":"corporation","id":385,"created_at":1617847613,"original_id":421},{"type":"pass","entity":"CR","entity_type":"corporation","id":386,"created_at":1617847617,"original_id":422},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":387,"created_at":1617847704,"original_id":429},{"type":"lay_tile","entity":"LBSCR","entity_type":"corporation","id":388,"created_at":1617847710,"hex":"L41","tile":"8-6","rotation":5,"original_id":430},{"type":"lay_tile","entity":"LBSCR","entity_type":"corporation","id":389,"created_at":1617847713,"hex":"K42","tile":"6-3","rotation":2,"original_id":431},{"type":"run_routes","entity":"LBSCR","entity_type":"corporation","id":390,"created_at":1617847748,"routes":[{"train":"3-2","connections":[["M42","L41","K42"],["M38","M40","M42"]],"hexes":["K42","M42","M38"],"revenue":120,"revenue_str":"K42-M42-M38 (£20)"}],"original_id":432},{"type":"dividend","entity":"LBSCR","entity_type":"corporation","id":391,"created_at":1617847752,"kind":"payout","original_id":433},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":392,"created_at":1617847755,"original_id":434},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":393,"created_at":1617847757,"original_id":435},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":394,"created_at":1617847761,"original_id":436},{"type":"pass","entity":"MR","entity_type":"corporation","id":395,"created_at":1617847804,"original_id":437},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":396,"created_at":1617847815,"hex":"K30","tile":"57-2","rotation":2,"original_id":438},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":397,"created_at":1617847819,"hex":"L31","tile":"8-8","rotation":0,"original_id":439},{"type":"pass","entity":"MR","entity_type":"corporation","id":398,"created_at":1617847831,"original_id":440},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":399,"created_at":1617847886,"routes":[{"train":"L-19","connections":[["J29","I30"]],"hexes":["I30","J29"],"revenue":80,"revenue_str":"I30-J29"},{"train":"L-16","connections":[["I30","H29","I28","J29"]],"hexes":["J29","I30"],"revenue":80,"revenue_str":"J29-I30"},{"train":"3-4","connections":[["G36","G38","G40","G42"],["I30","I32","I34","H35","G36"]],"hexes":["G42","G36","I30"],"revenue":90,"revenue_str":"G42-G36-I30"}],"original_id":441},{"type":"dividend","entity":"MR","entity_type":"corporation","id":400,"created_at":1617847888,"kind":"payout","original_id":442},{"type":"pass","entity":"MR","entity_type":"corporation","id":401,"created_at":1617847897,"original_id":443},{"type":"merge","entity":"MR","entity_type":"corporation","id":402,"created_at":1617847966,"corporation":"16","original_id":448},{"type":"choose","entity":"MR","entity_type":"corporation","id":403,"created_at":1617847968,"choice":"two_shares","original_id":449},{"type":"choose","entity":"MR","entity_type":"corporation","id":404,"created_at":1617847970,"choice":"replace","original_id":450},{"type":"pass","entity":"MR","entity_type":"corporation","id":405,"created_at":1617847974,"original_id":451},{"type":"pass","entity":"LYR","entity_type":"corporation","id":406,"created_at":1617847979,"original_id":452},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":407,"created_at":1617847985,"hex":"H23","tile":"619-0","rotation":0,"original_id":453},{"type":"pass","entity":"LYR","entity_type":"corporation","id":408,"created_at":1617847991,"original_id":454},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":409,"created_at":1617848004,"routes":[{"train":"3-5","connections":[["H23","I22"],["G22","H23"]],"hexes":["I22","H23","G22"],"revenue":140,"revenue_str":"I22-H23-G22 (£40)"}],"original_id":455},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":410,"created_at":1617848006,"kind":"payout","original_id":456},{"type":"pass","entity":"LYR","entity_type":"corporation","id":411,"created_at":1617848010,"original_id":457},{"type":"pass","entity":"LYR","entity_type":"corporation","id":412,"created_at":1617848013,"original_id":458},{"type":"pass","entity":"LYR","entity_type":"corporation","id":413,"created_at":1617848019,"original_id":459},{"type":"buy_shares","entity":488,"entity_type":"player","id":414,"created_at":1617848118,"shares":["GWR_3"],"percent":10,"original_id":460},{"type":"par","entity":4035,"entity_type":"player","id":415,"created_at":1617848360,"corporation":"LNWR","share_price":"100,4,4","original_id":461},{"type":"buy_shares","entity":3714,"entity_type":"player","id":416,"created_at":1617848368,"shares":["LBSCR_1"],"percent":10,"original_id":462},{"type":"buy_shares","entity":488,"entity_type":"player","id":417,"created_at":1617848390,"shares":["GWR_4"],"percent":10,"original_id":463},{"type":"buy_shares","entity":4035,"entity_type":"player","id":418,"created_at":1617848412,"shares":["LNWR_1"],"percent":10,"original_id":464},{"type":"buy_shares","entity":3714,"entity_type":"player","id":419,"created_at":1617848457,"shares":["LBSCR_2"],"percent":10,"original_id":465},{"type":"buy_shares","entity":488,"entity_type":"player","id":420,"created_at":1617848476,"shares":["GWR_5"],"percent":10,"original_id":466},{"type":"pass","entity":4035,"entity_type":"player","id":421,"created_at":1617848531,"original_id":467},{"type":"bid","entity":3714,"entity_type":"player","id":422,"created_at":1617848542,"company":"C8","price":100,"original_id":468},{"type":"bid","entity":3714,"entity_type":"player","id":423,"created_at":1617848562,"company":"P14","price":20,"original_id":469},{"type":"bid","entity":3714,"entity_type":"player","id":424,"created_at":1617848570,"company":"P10","price":10,"original_id":470},{"type":"buy_shares","entity":488,"entity_type":"player","id":425,"created_at":1617848603,"shares":["GWR_6"],"percent":10,"original_id":471},{"type":"buy_shares","entity":4035,"entity_type":"player","id":426,"created_at":1617848614,"shares":["GWR_7"],"percent":10,"original_id":472},{"type":"bid","entity":3714,"entity_type":"player","id":427,"created_at":1617848635,"company":"P13","price":20,"original_id":473},{"type":"pass","entity":3714,"entity_type":"player","id":428,"created_at":1617848637,"original_id":474},{"type":"buy_shares","entity":488,"entity_type":"player","id":429,"created_at":1617848648,"shares":["GWR_8"],"percent":10,"original_id":475},{"type":"pass","entity":4035,"entity_type":"player","id":430,"created_at":1617848670,"original_id":476},{"type":"pass","entity":3714,"entity_type":"player","id":431,"created_at":1617848678,"original_id":477},{"type":"bid","entity":488,"entity_type":"player","id":432,"created_at":1617848701,"company":"P13","price":25,"original_id":478},{"type":"bid","entity":488,"entity_type":"player","id":433,"created_at":1617848706,"company":"P10","price":15,"original_id":479},{"type":"pass","entity":488,"entity_type":"player","id":434,"created_at":1617848725,"original_id":480},{"type":"pass","entity":4035,"entity_type":"player","id":435,"created_at":1617848730,"original_id":481},{"type":"bid","entity":3714,"entity_type":"player","id":436,"created_at":1617848735,"company":"P13","price":30,"original_id":482},{"type":"bid","entity":3714,"entity_type":"player","id":437,"created_at":1617848748,"company":"P10","price":20,"original_id":483},{"type":"pass","entity":3714,"entity_type":"player","id":438,"created_at":1617848751,"original_id":484},{"type":"bid","entity":488,"entity_type":"player","id":439,"created_at":1617848803,"company":"P10","price":25,"original_id":485},{"type":"bid","entity":488,"entity_type":"player","id":440,"created_at":1617848806,"company":"P14","price":25,"original_id":486},{"type":"pass","entity":488,"entity_type":"player","id":441,"created_at":1617848841,"original_id":487},{"type":"pass","entity":4035,"entity_type":"player","id":442,"created_at":1617848844,"original_id":488},{"type":"bid","entity":3714,"entity_type":"player","id":443,"created_at":1617848856,"company":"P10","price":30,"original_id":489},{"type":"pass","entity":3714,"entity_type":"player","id":444,"created_at":1617848865,"original_id":490},{"type":"pass","entity":488,"entity_type":"player","id":445,"created_at":1617848876,"original_id":491},{"type":"pass","entity":4035,"entity_type":"player","id":446,"created_at":1617848882,"original_id":492},{"type":"pass","entity":3714,"entity_type":"player","id":447,"created_at":1617848885,"original_id":493},{"type":"pass","entity":"21","entity_type":"corporation","id":448,"created_at":1617848893,"original_id":494},{"type":"lay_tile","entity":"21","entity_type":"corporation","id":449,"created_at":1617848902,"hex":"H27","tile":"8-9","rotation":3,"original_id":495},{"type":"run_routes","entity":"21","entity_type":"corporation","id":450,"created_at":1617848908,"routes":[{"train":"L-1","connections":[["F33","E34"]],"hexes":["F33","E34"],"revenue":80,"revenue_str":"F33-E34"}],"original_id":496},{"type":"pass","entity":"21","entity_type":"corporation","id":451,"created_at":1617848910,"original_id":497},{"type":"pass","entity":"24","entity_type":"corporation","id":452,"created_at":1617848913,"original_id":498},{"type":"lay_tile","entity":"24","entity_type":"corporation","id":453,"created_at":1617848919,"hex":"H25","tile":"4-1","rotation":0,"original_id":499},{"type":"run_routes","entity":"24","entity_type":"corporation","id":454,"created_at":1617848924,"routes":[{"train":"L-2","connections":[["D35","E36","F35"]],"hexes":["D35","F35"],"revenue":60,"revenue_str":"D35-F35"}],"original_id":500},{"type":"pass","entity":"24","entity_type":"corporation","id":455,"created_at":1617848927,"original_id":501},{"type":"pass","entity":"18","entity_type":"corporation","id":456,"created_at":1617848935,"original_id":502},{"type":"lay_tile","entity":"18","entity_type":"corporation","id":457,"created_at":1617848984,"hex":"L37","tile":"83-2","rotation":0,"original_id":503},{"type":"run_routes","entity":"18","entity_type":"corporation","id":458,"created_at":1617849002,"routes":[{"train":"L-3","connections":[["I42","J41"]],"hexes":["I42","J41"],"revenue":60,"revenue_str":"I42-J41"}],"original_id":504},{"type":"pass","entity":"18","entity_type":"corporation","id":459,"created_at":1617849009,"original_id":505},{"type":"pass","entity":"GWR","entity_type":"corporation","id":460,"created_at":1617849015,"original_id":506},{"type":"lay_tile","entity":"GWR","entity_type":"corporation","id":461,"created_at":1617849036,"hex":"L35","tile":"83-3","rotation":0,"original_id":507},{"type":"place_token","entity":"GWR","entity_type":"corporation","id":462,"created_at":1617849178,"city":"15-1-0","slot":0,"original_id":510},{"type":"run_routes","entity":"GWR","entity_type":"corporation","id":463,"created_at":1617849219,"routes":[{"train":"2P-0","connections":[["J41","K40","L39","M38"]],"hexes":["J41","M38"],"revenue":90,"revenue_str":"J41-M38"},{"train":"3-1","connections":[["I30","H29","I28","J29"],["G36","H35","I34","I32","I30"]],"hexes":["J29","I30","G36"],"revenue":110,"revenue_str":"J29-I30-G36"},{"train":"L-17","connections":[["L33","L35","L37","M38"]],"hexes":["M38","L33"],"revenue":90,"revenue_str":"M38-L33"}],"original_id":511},{"type":"dividend","entity":"GWR","entity_type":"corporation","id":464,"created_at":1617849229,"kind":"payout","original_id":512},{"type":"pass","entity":"GWR","entity_type":"corporation","id":465,"created_at":1617849258,"original_id":513},{"type":"merge","entity":"GWR","entity_type":"corporation","id":466,"created_at":1617849396,"corporation":"18","original_id":516},{"type":"choose","entity":"GWR","entity_type":"corporation","id":467,"created_at":1617849404,"choice":"money","original_id":517},{"type":"choose","entity":"GWR","entity_type":"corporation","id":468,"created_at":1617849422,"choice":"replace","original_id":518},{"type":"pass","entity":"CR","entity_type":"corporation","id":469,"created_at":1617849522,"original_id":519},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":470,"created_at":1617849529,"hex":"G4","tile":"6-4","rotation":5,"original_id":520},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":471,"created_at":1617849545,"hex":"G6","tile":"9-4","rotation":1,"original_id":521},{"type":"pass","entity":"CR","entity_type":"corporation","id":472,"created_at":1617849556,"original_id":522},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":473,"created_at":1617849576,"routes":[{"train":"L-18","connections":[["E6","E4","E2"]],"hexes":["E6","E2"],"revenue":60,"revenue_str":"E6-E2"},{"train":"L-7","connections":[["E6","F5"]],"hexes":["E6","F5"],"revenue":60,"revenue_str":"E6-F5"},{"train":"3-3","connections":[["F7","G8","G10","H11","G12"],["E6","F7"]],"hexes":["G12","F7","E6"],"revenue":120,"revenue_str":"G12-F7-E6 (£30)"}],"original_id":523},{"type":"dividend","entity":"CR","entity_type":"corporation","id":474,"created_at":1617849582,"kind":"payout","original_id":524},{"type":"pass","entity":"CR","entity_type":"corporation","id":475,"created_at":1617849588,"original_id":525},{"type":"pass","entity":"CR","entity_type":"corporation","id":476,"created_at":1617849591,"original_id":526},{"type":"pass","entity":"CR","entity_type":"corporation","id":477,"created_at":1617849592,"original_id":527},{"type":"pass","entity":"MR","entity_type":"corporation","id":478,"created_at":1617849651,"original_id":528},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":479,"created_at":1617849665,"hex":"K28","tile":"6-5","rotation":1,"original_id":529},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":480,"created_at":1617849671,"hex":"K26","tile":"8-10","rotation":4,"original_id":530},{"type":"pass","entity":"MR","entity_type":"corporation","id":481,"created_at":1617849678,"original_id":531},{"type":"pass","entity":"MR","entity_type":"corporation","id":482,"created_at":1617849682,"original_id":532},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":483,"created_at":1617849753,"routes":[{"train":"L-19","connections":[["I30","J29"]],"hexes":["J29","I30"],"revenue":80,"revenue_str":"J29-I30"},{"train":"L-16","connections":[["I30","H29","I28","J29"]],"hexes":["J29","I30"],"revenue":80,"revenue_str":"J29-I30"},{"train":"3-4","connections":[["L33","L31","K30"],["M38","L37","L35","L33"]],"hexes":["K30","L33","M38"],"revenue":110,"revenue_str":"K30-L33-M38"},{"train":"L-8","connections":[["I30","I32","I34","H35","G36"]],"hexes":["G36","I30"],"revenue":80,"revenue_str":"G36-I30"}],"original_id":533},{"type":"dividend","entity":"MR","entity_type":"corporation","id":484,"created_at":1617849756,"kind":"payout","original_id":534},{"type":"merge","entity":"MR","entity_type":"corporation","id":485,"created_at":1617849848,"corporation":"24","original_id":535},{"type":"choose","entity":"MR","entity_type":"corporation","id":486,"created_at":1617849851,"choice":"two_shares","original_id":536},{"type":"choose","entity":"MR","entity_type":"corporation","id":487,"created_at":1617849860,"choice":"exchange","original_id":537},{"type":"discard_train","entity":"MR","entity_type":"corporation","id":488,"created_at":1617849863,"train":"L-2","original_id":538},{"type":"acquire_company","entity":"LBSCR","entity_type":"corporation","id":489,"created_at":1617849935,"company":"P12","original_id":539},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":490,"created_at":1617849944,"original_id":540},{"type":"lay_tile","entity":"LBSCR","entity_type":"corporation","id":491,"created_at":1617849952,"hex":"M42","tile":"405-0","rotation":3,"original_id":541},{"type":"lay_tile","entity":"P12","entity_type":"company","id":492,"created_at":1617849965,"hex":"K42","tile":"405-1","rotation":3,"original_id":542},{"type":"place_token","entity":"LBSCR","entity_type":"corporation","id":493,"created_at":1617849976,"city":"X2-0-0","slot":1,"original_id":543},{"type":"run_routes","entity":"LBSCR","entity_type":"corporation","id":494,"created_at":1617850002,"routes":[{"train":"3-2","connections":[["M42","L41","K42"],["M38","M40","M42"]],"hexes":["K42","M42","M38"],"revenue":180,"revenue_str":"K42-M42-M38 (£40)"}],"original_id":544},{"type":"dividend","entity":"LBSCR","entity_type":"corporation","id":495,"created_at":1617850008,"kind":"payout","original_id":545},{"type":"buy_train","entity":"LBSCR","entity_type":"corporation","id":496,"created_at":1617850023,"train":"3-7","price":200,"variant":"3","original_id":546},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":497,"created_at":1617850027,"original_id":547},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":498,"created_at":1617850030,"original_id":548},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":499,"created_at":1617850031,"original_id":549},{"type":"acquire_company","entity":"LNWR","entity_type":"corporation","id":500,"created_at":1617850059,"company":"P4","original_id":550},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":501,"created_at":1617850063,"original_id":551},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":502,"created_at":1617850072,"hex":"M36","tile":"58-3","rotation":0,"original_id":552},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":503,"created_at":1617850105,"original_id":553},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":504,"created_at":1617850125,"original_id":554},{"type":"run_routes","entity":"LNWR","entity_type":"corporation","id":505,"created_at":1617850147,"routes":[{"train":"2P-1","connections":[["I22","H23"]],"hexes":["H23","I22"],"revenue":70,"revenue_str":"H23-I22"}],"original_id":555},{"type":"dividend","entity":"LNWR","entity_type":"corporation","id":506,"created_at":1617850155,"kind":"payout","original_id":556},{"type":"buy_train","entity":"LNWR","entity_type":"corporation","id":507,"created_at":1617850164,"train":"3-8","price":200,"variant":"3","original_id":557},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":508,"created_at":1617850208,"original_id":558},{"type":"pass","entity":"LYR","entity_type":"corporation","id":509,"created_at":1617850213,"original_id":559},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":510,"created_at":1617850221,"hex":"G22","tile":"207-0","rotation":3,"original_id":560},{"type":"pass","entity":"LYR","entity_type":"corporation","id":511,"created_at":1617850227,"original_id":561},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":512,"created_at":1617850230,"routes":[{"train":"3-5","connections":[["H23","I22"],["G22","H23"]],"hexes":["I22","H23","G22"],"revenue":150,"revenue_str":"I22-H23-G22 (£40)"}],"original_id":562},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":513,"created_at":1617850232,"kind":"payout","original_id":563},{"type":"pass","entity":"LYR","entity_type":"corporation","id":514,"created_at":1617850245,"original_id":564},{"type":"merge","entity":"LYR","entity_type":"corporation","id":515,"created_at":1617850247,"corporation":"21","original_id":565},{"type":"choose","entity":"LYR","entity_type":"corporation","id":516,"created_at":1617850249,"choice":"two_shares","original_id":566},{"type":"choose","entity":"LYR","entity_type":"corporation","id":517,"created_at":1617850254,"choice":"exchange","original_id":567},{"type":"pass","entity":"LYR","entity_type":"corporation","id":518,"created_at":1617850255,"original_id":568},{"type":"pass","entity":"GWR","entity_type":"corporation","id":519,"created_at":1617850266,"original_id":569},{"type":"lay_tile","entity":"GWR","entity_type":"corporation","id":520,"created_at":1617850299,"hex":"I22","tile":"X2-1","rotation":0,"original_id":570},{"type":"place_token","entity":"GWR","entity_type":"corporation","id":521,"created_at":1617850374,"city":"X2-0-0","slot":2,"original_id":571},{"type":"run_routes","entity":"GWR","entity_type":"corporation","id":522,"created_at":1617850413,"routes":[{"train":"2P-0","connections":[["J41","K40","L39","M38"]],"hexes":["J41","M38"],"revenue":90,"revenue_str":"J41-M38"},{"train":"3-1","connections":[["I30","H29","I28","J29"],["G36","H35","I34","I32","I30"]],"hexes":["J29","I30","G36"],"revenue":110,"revenue_str":"J29-I30-G36"},{"train":"L-17","connections":[["L33","L35","L37","M38"]],"hexes":["L33","M38"],"revenue":90,"revenue_str":"L33-M38"},{"train":"L-3","connections":[["I30","J29"]],"hexes":["J29","I30"],"revenue":80,"revenue_str":"J29-I30"}],"original_id":572},{"type":"dividend","entity":"GWR","entity_type":"corporation","id":523,"created_at":1617850424,"kind":"payout","original_id":573},{"type":"buy_train","entity":"GWR","entity_type":"corporation","id":524,"created_at":1617850435,"train":"4-0","price":300,"variant":"4","original_id":574},{"type":"buy_train","entity":"GWR","entity_type":"corporation","id":525,"created_at":1617850444,"train":"4-1","price":300,"variant":"4","original_id":575},{"type":"pass","entity":"CR","entity_type":"corporation","id":526,"created_at":1617850593,"original_id":590},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":527,"created_at":1617850597,"hex":"H5","tile":"207-1","rotation":5,"original_id":591},{"type":"pass","entity":"CR","entity_type":"corporation","id":528,"created_at":1617850612,"original_id":592},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":529,"created_at":1617850622,"routes":[{"train":"3-3","connections":[["F7","G8","G10","H11","G12"],["E6","F7"]],"hexes":["G12","F7","E6"],"revenue":120,"revenue_str":"G12-F7-E6 (£30)"}],"original_id":593},{"type":"dividend","entity":"CR","entity_type":"corporation","id":530,"created_at":1617850627,"kind":"half","original_id":594},{"type":"buy_train","entity":"CR","entity_type":"corporation","id":531,"created_at":1617850629,"train":"4-2","price":300,"variant":"4","original_id":595},{"type":"pass","entity":"CR","entity_type":"corporation","id":532,"created_at":1617850631,"original_id":596},{"type":"pass","entity":"CR","entity_type":"corporation","id":533,"created_at":1617850632,"original_id":597},{"type":"pass","entity":"MR","entity_type":"corporation","id":534,"created_at":1617850649,"original_id":598},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":535,"created_at":1617850656,"hex":"L25","tile":"8-11","rotation":1,"original_id":599},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":536,"created_at":1617850660,"hex":"L23","tile":"9-9","rotation":0,"original_id":600},{"type":"pass","entity":"MR","entity_type":"corporation","id":537,"created_at":1617850671,"original_id":601},{"type":"place_token","entity":"MR","entity_type":"corporation","id":538,"created_at":1617850685,"city":"15-1-0","slot":1,"original_id":602},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":539,"created_at":1617850707,"routes":[{"train":"3-4","connections":[["J41","K42"],["M38","L37","L39","K40","J41"]],"hexes":["K42","J41","M38"],"revenue":130,"revenue_str":"K42-J41-M38"}],"original_id":603},{"type":"dividend","entity":"MR","entity_type":"corporation","id":540,"created_at":1617850709,"kind":"payout","original_id":604},{"type":"buy_train","entity":"MR","entity_type":"corporation","id":541,"created_at":1617850713,"train":"4-3","price":300,"variant":"4","original_id":605},{"type":"pass","entity":"MR","entity_type":"corporation","id":542,"created_at":1617850717,"original_id":606},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":543,"created_at":1617850818,"original_id":607},{"type":"lay_tile","entity":"LBSCR","entity_type":"corporation","id":544,"created_at":1617850860,"hex":"K30","tile":"15-3","rotation":5,"original_id":608},{"type":"run_routes","entity":"LBSCR","entity_type":"corporation","id":545,"created_at":1617850899,"routes":[{"train":"3-2","connections":[["M42","L41","K42"],["M38","M40","M42"]],"hexes":["K42","M42","M38"],"revenue":180,"revenue_str":"K42-M42-M38 (£40)"},{"train":"3-7","connections":[["J29","K30"],["I30","H29","I28","J29"]],"hexes":["K30","J29","I30"],"revenue":110,"revenue_str":"K30-J29-I30"}],"original_id":609},{"type":"dividend","entity":"LBSCR","entity_type":"corporation","id":546,"created_at":1617850902,"kind":"payout","original_id":610},{"type":"buy_train","entity":"LBSCR","entity_type":"corporation","id":547,"created_at":1617850905,"train":"4-4","price":300,"variant":"4","original_id":611},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":548,"created_at":1617850906,"original_id":612},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":549,"created_at":1617850911,"original_id":613},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":550,"created_at":1617850940,"hex":"H41","tile":"83-4","rotation":2,"original_id":614},{"type":"run_routes","entity":"LNWR","entity_type":"corporation","id":551,"created_at":1617850973,"routes":[{"train":"2P-1","connections":[["I22","H23"]],"hexes":["I22","H23"],"revenue":80,"revenue_str":"I22-H23"},{"train":"3-8","connections":[["M36","L35","L33"],["M38","M36"]],"hexes":["L33","M36","M38"],"revenue":100,"revenue_str":"L33-M36-M38"}],"original_id":615},{"type":"dividend","entity":"LNWR","entity_type":"corporation","id":552,"created_at":1617851015,"kind":"payout","original_id":618},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":553,"created_at":1617851024,"original_id":619},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":554,"created_at":1617851026,"original_id":620},{"type":"pass","entity":"LYR","entity_type":"corporation","id":555,"created_at":1617851035,"original_id":621},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":556,"created_at":1617851050,"hex":"H21","tile":"2-0","rotation":5,"original_id":622},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":557,"created_at":1617851090,"hex":"J31","tile":"58-4","rotation":2,"original_id":625},{"type":"pass","entity":"LYR","entity_type":"corporation","id":558,"created_at":1617851098,"original_id":626},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":559,"created_at":1617851101,"routes":[{"train":"3-5","connections":[["H23","I22"],["G22","H23"]],"hexes":["I22","H23","G22"],"revenue":170,"revenue_str":"I22-H23-G22 (£50)"}],"original_id":627},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":560,"created_at":1617851103,"kind":"payout","original_id":628},{"type":"buy_train","entity":"LYR","entity_type":"corporation","id":561,"created_at":1617851105,"train":"4-5","price":300,"variant":"4","original_id":629},{"type":"pass","entity":"LYR","entity_type":"corporation","id":562,"created_at":1617851149,"original_id":630},{"type":"pass","entity":"LYR","entity_type":"corporation","id":563,"created_at":1617851151,"original_id":631},{"type":"buy_shares","entity":488,"entity_type":"player","id":564,"created_at":1617851162,"shares":["LNWR_2"],"percent":10,"original_id":632},{"type":"bid","entity":3714,"entity_type":"player","id":565,"created_at":1617851199,"company":"M1","price":100,"original_id":633},{"type":"pass","entity":3714,"entity_type":"player","id":566,"created_at":1617851207,"original_id":634},{"type":"buy_shares","entity":4035,"entity_type":"player","id":567,"created_at":1617851212,"shares":["LNWR_3"],"percent":10,"original_id":635},{"type":"bid","entity":488,"entity_type":"player","id":568,"created_at":1617851314,"company":"M8","price":1205,"original_id":636},{"type":"pass","entity":488,"entity_type":"player","id":569,"created_at":1617851319,"original_id":637},{"type":"par","entity":3714,"entity_type":"player","id":570,"created_at":1617851335,"corporation":"NBR","share_price":"100,4,4","original_id":638},{"type":"buy_shares","entity":4035,"entity_type":"player","id":571,"created_at":1617851345,"shares":["LNWR_4"],"percent":10,"original_id":639},{"type":"pass","entity":488,"entity_type":"player","id":572,"created_at":1617851364,"original_id":640},{"type":"buy_shares","entity":3714,"entity_type":"player","id":573,"created_at":1617851373,"shares":["NBR_1"],"percent":10,"original_id":641},{"type":"buy_shares","entity":4035,"entity_type":"player","id":574,"created_at":1617851398,"shares":["LNWR_5"],"percent":10,"original_id":642},{"type":"pass","entity":488,"entity_type":"player","id":575,"created_at":1617851402,"original_id":643},{"type":"buy_shares","entity":3714,"entity_type":"player","id":576,"created_at":1617851406,"shares":["NBR_2"],"percent":10,"original_id":644},{"type":"buy_shares","entity":4035,"entity_type":"player","id":577,"created_at":1617851498,"shares":["LNWR_6"],"percent":10,"original_id":645},{"type":"pass","entity":488,"entity_type":"player","id":578,"created_at":1617851505,"original_id":646},{"type":"buy_shares","entity":3714,"entity_type":"player","id":579,"created_at":1617851556,"shares":["NBR_3"],"percent":10,"original_id":647},{"type":"buy_shares","entity":4035,"entity_type":"player","id":580,"created_at":1617851631,"shares":["LBSCR_3"],"percent":10,"original_id":648},{"type":"pass","entity":488,"entity_type":"player","id":581,"created_at":1617851634,"original_id":649},{"type":"pass","entity":3714,"entity_type":"player","id":582,"created_at":1617851645,"original_id":650},{"type":"pass","entity":4035,"entity_type":"player","id":583,"created_at":1617851650,"original_id":651},{"type":"pass","entity":"8","entity_type":"corporation","id":584,"created_at":1617851693,"original_id":654},{"type":"discard_train","entity":"GWR","entity_type":"corporation","id":585,"created_at":1617851745,"train":"3-1","original_id":655},{"type":"discard_train","entity":"LBSCR","entity_type":"corporation","id":586,"created_at":1617851747,"train":"3-2","original_id":656},{"type":"lay_tile","entity":"8","entity_type":"corporation","id":587,"created_at":1617851768,"hex":"K24","tile":"5-3","rotation":5,"original_id":657},{"type":"buy_train","entity":"8","entity_type":"corporation","id":588,"created_at":1617851795,"train":"3-4","price":1204,"original_id":658},{"type":"pass","entity":"1","entity_type":"corporation","id":589,"created_at":1617851996,"original_id":673},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":590,"created_at":1617852015,"hex":"G2","tile":"83-5","rotation":1,"original_id":674},{"type":"buy_train","entity":"1","entity_type":"corporation","id":591,"created_at":1617852027,"train":"3-3","price":100,"original_id":675},{"type":"pass","entity":"GWR","entity_type":"corporation","id":592,"created_at":1617852070,"original_id":676},{"type":"lay_tile","entity":"GWR","entity_type":"corporation","id":593,"created_at":1617852081,"hex":"G40","tile":"83-6","rotation":0,"original_id":677},{"type":"run_routes","entity":"GWR","entity_type":"corporation","id":594,"created_at":1617852136,"routes":[{"train":"2P-0","connections":[["I30","H29","I28","J29"]],"hexes":["J29","I30"],"revenue":80,"revenue_str":"J29-I30"},{"train":"4-0","connections":[["I42","H41","G40","G38","G36"],["J41","I42"],["M38","L39","K40","J41"]],"hexes":["G36","I42","J41","M38"],"revenue":180,"revenue_str":"G36-I42-J41-M38 (£30)"},{"train":"4-1","connections":[["L33","L35","L37","M38"],["K30","L31","L33"],["J29","K30"]],"hexes":["M38","L33","K30","J29"],"revenue":150,"revenue_str":"M38-L33-K30-J29"}],"original_id":678},{"type":"dividend","entity":"GWR","entity_type":"corporation","id":595,"created_at":1617852144,"kind":"payout","original_id":679},{"type":"pass","entity":"MR","entity_type":"corporation","id":596,"created_at":1617852193,"original_id":680},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":597,"created_at":1617852252,"hex":"M38","tile":"X22-0","rotation":0,"original_id":681},{"type":"pass","entity":"MR","entity_type":"corporation","id":598,"created_at":1617852258,"original_id":682},{"type":"place_token","entity":"MR","entity_type":"corporation","id":599,"created_at":1617852282,"city":"15-3-0","slot":1,"original_id":683},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":600,"created_at":1617852301,"routes":[{"train":"4-3","connections":[["K42","L41","M42"],["J41","K42"],["M38","L37","L39","K40","J41"]],"hexes":["M42","K42","J41","M38"],"revenue":190,"revenue_str":"M42-K42-J41-M38"}],"original_id":684},{"type":"dividend","entity":"MR","entity_type":"corporation","id":601,"created_at":1617852303,"kind":"payout","original_id":685},{"type":"buy_train","entity":"MR","entity_type":"corporation","id":602,"created_at":1617852306,"train":"5-1","price":500,"variant":"5","original_id":686},{"type":"pass","entity":"MR","entity_type":"corporation","id":603,"created_at":1617852315,"original_id":687},{"type":"acquire_company","entity":"CR","entity_type":"corporation","id":604,"created_at":1617852400,"company":"P13","original_id":688},{"type":"pass","entity":"CR","entity_type":"corporation","id":605,"created_at":1617852407,"original_id":689},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":606,"created_at":1617852565,"hex":"G4","tile":"619-1","rotation":3,"original_id":704},{"type":"pass","entity":"CR","entity_type":"corporation","id":607,"created_at":1617852573,"original_id":705},{"type":"choose","entity":"CR","entity_type":"corporation","id":608,"created_at":1617852580,"choice":"0","original_id":706},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":609,"created_at":1617852588,"routes":[{"train":"4-2","connections":[["F7","G8","G10","H11","G12"],["E6","F7"],["F5","E6"],["G4","F5"],["H5","G4"]],"hexes":["G12","F7","E6","F5","G4","H5"],"revenue":210,"revenue_str":"G12-F7-E6-F5-G4-H5 (£30)"}],"original_id":707},{"type":"dividend","entity":"CR","entity_type":"corporation","id":610,"created_at":1617852590,"kind":"half","original_id":708},{"type":"pass","entity":"CR","entity_type":"corporation","id":611,"created_at":1617852594,"original_id":709},{"type":"pass","entity":"CR","entity_type":"corporation","id":612,"created_at":1617852597,"original_id":710},{"type":"pass","entity":"CR","entity_type":"corporation","id":613,"created_at":1617852600,"original_id":711},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":614,"created_at":1617852609,"original_id":712},{"type":"lay_tile","entity":"LBSCR","entity_type":"corporation","id":615,"created_at":1617852623,"hex":"M42","tile":"X10-0","rotation":3,"original_id":713},{"type":"run_routes","entity":"LBSCR","entity_type":"corporation","id":616,"created_at":1617852798,"routes":[{"train":"3-7","connections":[["M38","M40","M42"]],"hexes":["M42","M38"],"revenue":180,"revenue_str":"M42-M38 (£50)"},{"train":"4-4","connections":[["J41","K40","L39","M38"],["K42","J41"],["M42","L41","K42"]],"hexes":["M38","J41","K42","M42"],"revenue":200,"revenue_str":"M38-J41-K42-M42"}],"original_id":714},{"type":"dividend","entity":"LBSCR","entity_type":"corporation","id":617,"created_at":1617852801,"kind":"payout","original_id":715},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":618,"created_at":1617852808,"original_id":716},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":619,"created_at":1617852811,"original_id":717},{"type":"acquire_company","entity":"LNWR","entity_type":"corporation","id":620,"created_at":1617852832,"company":"P1","original_id":718},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":621,"created_at":1617852835,"original_id":719},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":622,"created_at":1617852848,"hex":"K32","tile":"9-1","rotation":0,"original_id":720},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":623,"created_at":1617852868,"hex":"K34","tile":"8-2","rotation":3,"original_id":721},{"type":"place_token","entity":"LNWR","entity_type":"corporation","id":624,"created_at":1617852881,"city":"15-3-0","slot":1,"original_id":722},{"type":"run_routes","entity":"LNWR","entity_type":"corporation","id":625,"created_at":1617852986,"routes":[{"train":"2P-1","connections":[["I22","H23"]],"hexes":["I22","H23"],"revenue":80,"revenue_str":"I22-H23"},{"train":"3-8","connections":[["J29","I30"],["K30","J29"]],"hexes":["I30","J29","K30"],"revenue":110,"revenue_str":"I30-J29-K30"},{"train":"5P-0","connections":[["M36","M38"],["J41","K40","L39","L37","L35","M36"],["I42","J41"],["G36","G38","G40","H41","I42"]],"hexes":["M38","M36","J41","I42","G36"],"revenue":180,"revenue_str":"M38-M36-J41-I42-G36"}],"original_id":723},{"type":"dividend","entity":"LNWR","entity_type":"corporation","id":626,"created_at":1617852996,"kind":"payout","original_id":724},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":627,"created_at":1617853078,"original_id":725},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":628,"created_at":1617853083,"original_id":726},{"type":"acquire_company","entity":"LYR","entity_type":"corporation","id":629,"created_at":1617853135,"company":"P14","original_id":731},{"type":"pass","entity":"LYR","entity_type":"corporation","id":630,"created_at":1617853141,"original_id":732},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":631,"created_at":1617853168,"hex":"I22","tile":"X7-0","rotation":0,"original_id":733},{"type":"choose","entity":"LYR","entity_type":"corporation","id":632,"created_at":1617853177,"choice":"1","original_id":734},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":633,"created_at":1617853207,"routes":[{"train":"3-5","connections":[["H23","I22"],["G22","H23"]],"hexes":["I22","H23","G22"],"revenue":130,"revenue_str":"I22-H23-G22"},{"train":"4-5","connections":[["G34","F35"],["G32","G34"],["H25","H27","I28","H29","H31","G32"],["H23","H25"],["H21","H23"],["G22","H21"],["G20","G22"],["H21","G20"],["I22","H21"]],"hexes":["F35","G34","G32","H25","H23","H21","G22","G20","H21","I22"],"revenue":280,"revenue_str":"F35-G34-G32-H25-H23-H21-G22-G20-H21-I22 (£60)"}],"original_id":735},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":634,"created_at":1617853209,"kind":"payout","original_id":736},{"type":"pass","entity":"LYR","entity_type":"corporation","id":635,"created_at":1617853214,"original_id":737},{"type":"pass","entity":"NBR","entity_type":"corporation","id":636,"created_at":1617853245,"original_id":738},{"type":"lay_tile","entity":"NBR","entity_type":"corporation","id":637,"created_at":1617853249,"hex":"E8","tile":"7-2","rotation":3,"original_id":739},{"type":"lay_tile","entity":"NBR","entity_type":"corporation","id":638,"created_at":1617853268,"hex":"H13","tile":"58-5","rotation":0,"original_id":740},{"type":"hex_token","entity":"NBR","entity_type":"corporation","id":639,"created_at":1617853274,"hex":"H1","token_type":"destination","original_id":741},{"type":"pass","entity":"NBR","entity_type":"corporation","id":640,"created_at":1617853277,"original_id":742},{"type":"buy_train","entity":"NBR","entity_type":"corporation","id":641,"created_at":1617853281,"train":"5-2","price":500,"variant":"5","original_id":743},{"type":"pass","entity":"8","entity_type":"corporation","id":642,"created_at":1617853289,"original_id":744},{"type":"lay_tile","entity":"8","entity_type":"corporation","id":643,"created_at":1617853298,"hex":"K26","tile":"82-0","rotation":3,"original_id":745},{"type":"run_routes","entity":"8","entity_type":"corporation","id":644,"created_at":1617853312,"routes":[{"train":"3-4","connections":[["K28","J29"],["K24","K26","K28"]],"hexes":["J29","K28","K24"],"revenue":70,"revenue_str":"J29-K28-K24"}],"original_id":746},{"type":"pass","entity":"1","entity_type":"corporation","id":645,"created_at":1617853329,"original_id":747},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":646,"created_at":1617853363,"hex":"G6","tile":"83-7","rotation":4,"original_id":748},{"type":"run_routes","entity":"1","entity_type":"corporation","id":647,"created_at":1617853374,"routes":[{"train":"3-3","connections":[["G4","H5"],["H1","G2","G4"]],"hexes":["H5","G4","H1"],"revenue":120,"revenue_str":"H5-G4-H1"}],"original_id":749},{"type":"pass","entity":"GWR","entity_type":"corporation","id":648,"created_at":1617853379,"original_id":750},{"type":"lay_tile","entity":"GWR","entity_type":"corporation","id":649,"created_at":1617853401,"hex":"L35","tile":"544-0","rotation":2,"original_id":751},{"type":"run_routes","entity":"GWR","entity_type":"corporation","id":650,"created_at":1617853494,"routes":[{"train":"2P-0","connections":[["I30","H29","I28","J29"]],"hexes":["I30","J29"],"revenue":80,"revenue_str":"I30-J29"},{"train":"4-0","connections":[["I42","H41","G40","G38","G36"],["J41","I42"],["M38","L39","K40","J41"]],"hexes":["G36","I42","J41","M38"],"revenue":200,"revenue_str":"G36-I42-J41-M38 (£30)"},{"train":"4-1","connections":[["M36","M38"],["L33","L35","M36"],["K30","L31","L33"]],"hexes":["M38","M36","L33","K30"],"revenue":150,"revenue_str":"M38-M36-L33-K30"}],"original_id":752},{"type":"dividend","entity":"GWR","entity_type":"corporation","id":651,"created_at":1617853505,"kind":"payout","original_id":753},{"type":"pass","entity":"MR","entity_type":"corporation","id":652,"created_at":1617853566,"original_id":754},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":653,"created_at":1617853584,"hex":"I30","tile":"X7-1","rotation":0,"original_id":755},{"type":"pass","entity":"MR","entity_type":"corporation","id":654,"created_at":1617853612,"original_id":756},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":655,"created_at":1617853636,"routes":[{"train":"4-3","connections":[["K42","L41","M42"],["J41","K42"],["M38","L37","L39","K40","J41"]],"hexes":["M42","K42","J41","M38"],"revenue":200,"revenue_str":"M42-K42-J41-M38"},{"train":"5-1","connections":[["I30","I32","I34","H35","G36"],["J29","I30"],["K30","J29"],["L33","L35","K34","K32","K30"]],"hexes":["G36","I30","J29","K30","L33"],"revenue":180,"revenue_str":"G36-I30-J29-K30-L33"}],"original_id":757},{"type":"dividend","entity":"MR","entity_type":"corporation","id":656,"created_at":1617853638,"kind":"payout","original_id":758},{"type":"pass","entity":"MR","entity_type":"corporation","id":657,"created_at":1617853649,"original_id":759},{"type":"acquire_company","entity":"LBSCR","entity_type":"corporation","id":658,"created_at":1617853677,"company":"P2","original_id":760},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":659,"created_at":1617853682,"original_id":761},{"type":"lay_tile","entity":"LBSCR","entity_type":"corporation","id":660,"created_at":1617853813,"hex":"J29","tile":"63-0","rotation":0,"original_id":764},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":661,"created_at":1617853826,"original_id":765},{"type":"run_routes","entity":"LBSCR","entity_type":"corporation","id":662,"created_at":1617853855,"routes":[{"train":"3-7","connections":[["M42","L41","K42"],["M38","M40","M42"]],"hexes":["K42","M42","M38"],"revenue":220,"revenue_str":"K42-M42-M38 (£50)"},{"train":"4-4","connections":[["I30","I32","I34","H35","G36"],["J29","I30"],["K30","J29"]],"hexes":["G36","I30","J29","K30"],"revenue":160,"revenue_str":"G36-I30-J29-K30"}],"original_id":766},{"type":"dividend","entity":"LBSCR","entity_type":"corporation","id":663,"created_at":1617853863,"kind":"payout","original_id":767},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":664,"created_at":1617853865,"original_id":768},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":665,"created_at":1617853867,"original_id":769},{"type":"acquire_company","entity":"CR","entity_type":"corporation","id":666,"created_at":1617853882,"company":"P10","original_id":770},{"type":"pass","entity":"CR","entity_type":"corporation","id":667,"created_at":1617853961,"original_id":773},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":668,"created_at":1617853994,"hex":"G4","tile":"611-0","rotation":5,"original_id":774},{"type":"pass","entity":"CR","entity_type":"corporation","id":669,"created_at":1617853996,"original_id":775},{"type":"pass","entity":"CR","entity_type":"corporation","id":670,"created_at":1617854002,"original_id":776},{"type":"choose","entity":"CR","entity_type":"corporation","id":671,"created_at":1617854012,"choice":"0","original_id":777},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":672,"created_at":1617854048,"routes":[{"train":"4-2","connections":[["F7","G8","G10","H11","G12"],["E6","F7"],["F5","E6"],["G4","F5"],["H5","G4"],["F7","G6","H5"]],"hexes":["G12","F7","E6","F5","G4","H5","F7"],"revenue":230,"revenue_str":"G12-F7-E6-F5-G4-H5-F7 (£30)"}],"original_id":778},{"type":"dividend","entity":"CR","entity_type":"corporation","id":673,"created_at":1617854103,"kind":"payout","original_id":789},{"type":"pass","entity":"CR","entity_type":"corporation","id":674,"created_at":1617854106,"original_id":790},{"type":"merge","entity":"CR","entity_type":"corporation","id":675,"created_at":1617854107,"corporation":"1","original_id":791},{"type":"choose","entity":"CR","entity_type":"corporation","id":676,"created_at":1617854109,"choice":"two_shares","original_id":792},{"type":"choose","entity":"CR","entity_type":"corporation","id":677,"created_at":1617854114,"choice":"replace","original_id":793},{"type":"pass","entity":"CR","entity_type":"corporation","id":678,"created_at":1617854117,"original_id":794},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":679,"created_at":1617854124,"original_id":795},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":680,"created_at":1617854256,"hex":"K34","tile":"80-1","rotation":3,"original_id":796},{"type":"run_routes","entity":"LNWR","entity_type":"corporation","id":681,"created_at":1617854286,"routes":[{"train":"2P-1","connections":[["I22","H23"]],"hexes":["I22","H23"],"revenue":90,"revenue_str":"I22-H23"},{"train":"3-8","connections":[["J29","I30"],["K30","J29"]],"hexes":["I30","J29","K30"],"revenue":130,"revenue_str":"I30-J29-K30"},{"train":"5P-0","connections":[["M36","M38"],["J41","K40","L39","L37","L35","M36"],["I42","J41"],["G36","G38","G40","H41","I42"]],"hexes":["M38","M36","J41","I42","G36"],"revenue":180,"revenue_str":"M38-M36-J41-I42-G36"}],"original_id":797},{"type":"dividend","entity":"LNWR","entity_type":"corporation","id":682,"created_at":1617854295,"kind":"payout","original_id":798},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":683,"created_at":1617854304,"original_id":799},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":684,"created_at":1617854307,"original_id":800},{"type":"acquire_company","entity":"LYR","entity_type":"corporation","id":685,"created_at":1617854316,"company":"P5","original_id":801},{"type":"acquire_company","entity":"LYR","entity_type":"corporation","id":686,"created_at":1617854320,"company":"P15","original_id":802},{"type":"pass","entity":"LYR","entity_type":"corporation","id":687,"created_at":1617854322,"original_id":803},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":688,"created_at":1617854338,"hex":"G22","tile":"X5-0","rotation":2,"original_id":804},{"type":"place_token","entity":"LYR","entity_type":"corporation","id":689,"created_at":1617854349,"city":"X7-1-0","slot":3,"original_id":805},{"type":"choose","entity":"LYR","entity_type":"corporation","id":690,"created_at":1617854356,"choice":"1","original_id":806},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":691,"created_at":1617854363,"routes":[{"train":"3-5","connections":[["H23","I22"],["G22","H23"]],"hexes":["I22","H23","G22"],"revenue":140,"revenue_str":"I22-H23-G22"},{"train":"4-5","connections":[["G34","F35"],["G32","G34"],["H25","H27","I28","H29","H31","G32"],["H23","H25"],["H21","H23"],["G22","H21"],["G20","G22"],["H21","G20"],["I22","H21"]],"hexes":["F35","G34","G32","H25","H23","H21","G22","G20","H21","I22"],"revenue":290,"revenue_str":"F35-G34-G32-H25-H23-H21-G22-G20-H21-I22 (£60)"}],"original_id":807},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":692,"created_at":1617854365,"kind":"payout","original_id":808},{"type":"merge","entity":"LYR","entity_type":"corporation","id":693,"created_at":1617854368,"corporation":"8","original_id":809},{"type":"choose","entity":"LYR","entity_type":"corporation","id":694,"created_at":1617854371,"choice":"two_shares","original_id":810},{"type":"choose","entity":"LYR","entity_type":"corporation","id":695,"created_at":1617854377,"choice":"replace","original_id":811},{"type":"discard_train","entity":"LYR","entity_type":"corporation","id":696,"created_at":1617854379,"train":"3-4","original_id":812},{"type":"pass","entity":"NBR","entity_type":"corporation","id":697,"created_at":1617854386,"original_id":813},{"type":"pass","entity":"NBR","entity_type":"corporation","id":698,"created_at":1617854468,"original_id":814},{"type":"run_routes","entity":"NBR","entity_type":"corporation","id":699,"created_at":1617854478,"routes":[{"train":"5-2","connections":[["F7","E8","E6"],["H5","G6","F7"],["G4","H5"],["H1","G2","G4"]],"hexes":["E6","F7","H5","G4","H1"],"revenue":250,"revenue_str":"E6-F7-H5-G4-H1 (£50)"}],"original_id":815},{"type":"dividend","entity":"NBR","entity_type":"corporation","id":700,"created_at":1617854480,"kind":"payout","original_id":816},{"type":"pass","entity":"NBR","entity_type":"corporation","id":701,"created_at":1617854484,"original_id":817},{"type":"pass","entity":"NBR","entity_type":"corporation","id":702,"created_at":1617854485,"original_id":818},{"type":"buy_shares","entity":3714,"entity_type":"player","id":703,"created_at":1617854519,"shares":["LBSCR_4"],"percent":10,"original_id":819},{"type":"buy_shares","entity":4035,"entity_type":"player","id":704,"created_at":1617854586,"shares":["CR_7"],"percent":10,"original_id":820},{"type":"buy_shares","entity":488,"entity_type":"player","id":705,"created_at":1617862170,"shares":["LNWR_7"],"percent":10,"original_id":821},{"type":"choose_ability","entity":"P16","entity_type":"company","id":706,"created_at":1617888314,"choice":"CR_ipo","original_id":822},{"type":"buy_shares","entity":4035,"entity_type":"player","id":707,"created_at":1617907567,"shares":["LBSCR_5"],"percent":10,"original_id":823},{"type":"bid","entity":488,"entity_type":"player","id":708,"created_at":1617907773,"company":"M7","price":1640,"original_id":824},{"type":"program_share_pass","entity":488,"entity_type":"player","id":709,"created_at":1617907792,"auto_actions":[{"type":"pass","entity":488,"entity_type":"player","created_at":1617907793}],"original_id":825},{"type":"message","entity":488,"entity_type":"player","id":710,"created_at":1617907812,"message":"I am on AP.","original_id":826},{"type":"buy_shares","entity":3714,"entity_type":"player","id":711,"created_at":1617922654,"shares":["LBSCR_6"],"percent":10,"original_id":827},{"type":"buy_shares","entity":4035,"entity_type":"player","id":712,"created_at":1617928876,"auto_actions":[{"type":"pass","entity":488,"entity_type":"player","created_at":1617928874}],"shares":["LBSCR_7"],"percent":10,"original_id":828},{"type":"buy_shares","entity":3714,"entity_type":"player","id":713,"created_at":1617929827,"shares":["NBR_4"],"percent":10,"original_id":829},{"type":"buy_shares","entity":4035,"entity_type":"player","id":714,"created_at":1617930268,"auto_actions":[{"type":"pass","entity":488,"entity_type":"player","created_at":1617930266}],"shares":["NBR_5"],"percent":10,"original_id":830},{"type":"pass","entity":3714,"entity_type":"player","id":715,"created_at":1617931846,"original_id":831},{"type":"buy_shares","entity":4035,"entity_type":"player","id":716,"created_at":1617931861,"auto_actions":[{"type":"pass","entity":488,"entity_type":"player","created_at":1617931859}],"shares":["NBR_6"],"percent":10,"original_id":832},{"type":"pass","entity":3714,"entity_type":"player","id":717,"created_at":1617931866,"original_id":833},{"type":"buy_shares","entity":4035,"entity_type":"player","id":718,"created_at":1617931875,"auto_actions":[{"type":"pass","entity":488,"entity_type":"player","created_at":1617931873}],"shares":["NBR_7"],"percent":10,"original_id":834},{"type":"pass","entity":3714,"entity_type":"player","id":719,"created_at":1617931877,"original_id":835},{"type":"buy_shares","entity":4035,"entity_type":"player","id":720,"created_at":1617931890,"auto_actions":[{"type":"pass","entity":488,"entity_type":"player","created_at":1617931888}],"shares":["NBR_8"],"percent":10,"original_id":836},{"type":"pass","entity":3714,"entity_type":"player","id":721,"created_at":1617931892,"original_id":837},{"type":"pass","entity":4035,"entity_type":"player","id":722,"created_at":1617931902,"original_id":838},{"type":"pass","entity":"7","entity_type":"corporation","id":723,"created_at":1617932042,"original_id":839},{"type":"lay_tile","entity":"7","entity_type":"corporation","id":724,"created_at":1617932063,"hex":"K24","tile":"14-2","rotation":2,"original_id":840},{"type":"buy_train","entity":"7","entity_type":"corporation","id":725,"created_at":1617932070,"train":"6-1","price":600,"variant":"6","original_id":841},{"type":"pass","entity":"GWR","entity_type":"corporation","id":726,"created_at":1617932083,"original_id":842},{"type":"lay_tile","entity":"GWR","entity_type":"corporation","id":727,"created_at":1617932132,"hex":"K34","tile":"546-0","rotation":1,"original_id":843},{"type":"run_routes","entity":"GWR","entity_type":"corporation","id":728,"created_at":1617932213,"routes":[{"train":"2P-0","connections":[["I30","H29","I28","J29"]],"hexes":["I30","J29"],"revenue":100,"revenue_str":"I30-J29"},{"train":"4-0","connections":[["I42","H41","G40","G38","G36"],["J41","I42"],["M38","L39","K40","J41"]],"hexes":["G36","I42","J41","M38"],"revenue":200,"revenue_str":"G36-I42-J41-M38 (£30)"},{"train":"4-1","connections":[["J29","K30"],["I30","J29"],["G36","H35","I34","I32","I30"]],"hexes":["K30","J29","I30","G36"],"revenue":160,"revenue_str":"K30-J29-I30-G36"}],"original_id":844},{"type":"dividend","entity":"GWR","entity_type":"corporation","id":729,"created_at":1617932226,"kind":"payout","original_id":845},{"type":"pass","entity":"MR","entity_type":"corporation","id":730,"created_at":1617932558,"original_id":846},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":731,"created_at":1617932568,"hex":"L21","tile":"9-10","rotation":0,"original_id":847},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":732,"created_at":1617932573,"hex":"L19","tile":"5-4","rotation":0,"original_id":848},{"type":"hex_token","entity":"MR","entity_type":"corporation","id":733,"created_at":1617932581,"hex":"L19","token_type":"destination","original_id":849},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":734,"created_at":1617932617,"routes":[{"train":"4-3","connections":[["K42","L41","M42"],["J41","K42"],["M38","L37","L39","K40","J41"]],"hexes":["M42","K42","J41","M38"],"revenue":200,"revenue_str":"M42-K42-J41-M38"},{"train":"5-1","connections":[["I30","I32","I34","H35","G36"],["J29","I30"],["K30","J29"],["L33","L35","K34","K32","K30"]],"hexes":["G36","I30","J29","K30","L33"],"revenue":190,"revenue_str":"G36-I30-J29-K30-L33"}],"original_id":850},{"type":"dividend","entity":"MR","entity_type":"corporation","id":735,"created_at":1617932628,"kind":"payout","original_id":851},{"type":"pass","entity":"MR","entity_type":"corporation","id":736,"created_at":1617932637,"original_id":852},{"type":"message","entity":4035,"entity_type":"player","id":737,"created_at":1617932669,"message":"hi guys.....i'm finishing a movie with the kids....will check back before bed","original_id":853},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":738,"created_at":1617934571,"original_id":854},{"type":"lay_tile","entity":"LBSCR","entity_type":"corporation","id":739,"created_at":1617935186,"hex":"K42","tile":"X10-1","rotation":3,"original_id":857},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":740,"created_at":1617935199,"original_id":858},{"type":"run_routes","entity":"LBSCR","entity_type":"corporation","id":741,"created_at":1617935231,"routes":[{"train":"4-4","connections":[["K42","J41"],["M42","L41","K42"],["M38","M40","M42"]],"hexes":["J41","K42","M42","M38"],"revenue":260,"revenue_str":"J41-K42-M42-M38 (£50)"}],"original_id":859},{"type":"dividend","entity":"LBSCR","entity_type":"corporation","id":742,"created_at":1617935234,"kind":"payout","original_id":860},{"type":"buy_train","entity":"LBSCR","entity_type":"corporation","id":743,"created_at":1617935241,"train":"6-2","price":600,"variant":"6","original_id":861},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":744,"created_at":1617935262,"original_id":862},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":745,"created_at":1617935266,"original_id":863},{"type":"pass","entity":"LYR","entity_type":"corporation","id":746,"created_at":1617935655,"original_id":864},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":747,"created_at":1617935681,"hex":"H23","tile":"63-1","rotation":0,"original_id":865},{"type":"pass","entity":"LYR","entity_type":"corporation","id":748,"created_at":1617935690,"original_id":866},{"type":"choose","entity":"LYR","entity_type":"corporation","id":749,"created_at":1617935696,"choice":"0","original_id":867},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":750,"created_at":1617935736,"routes":[{"train":"4-5","connections":[["I30","J31"],["H25","H27","I28","H29","I30"],["H23","H25"],["H21","H23"],["G22","H21"],["G20","G22"],["H21","G20"],["I22","H21"]],"hexes":["J31","I30","H25","H23","H21","G22","G20","H21","I22"],"revenue":320,"revenue_str":"J31-I30-H25-H23-H21-G22-G20-H21-I22 (£60)"}],"original_id":868},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":751,"created_at":1617935739,"kind":"payout","original_id":869},{"type":"buy_train","entity":"LYR","entity_type":"corporation","id":752,"created_at":1617935756,"train":"6-1","price":1,"original_id":870},{"type":"pass","entity":"LYR","entity_type":"corporation","id":753,"created_at":1617935765,"original_id":871},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":754,"created_at":1617938984,"original_id":872},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":755,"created_at":1617939519,"hex":"K30","tile":"63-2","rotation":0,"original_id":877},{"type":"run_routes","entity":"LNWR","entity_type":"corporation","id":756,"created_at":1617939572,"routes":[{"train":"2P-1","connections":[["I22","H23"]],"hexes":["I22","H23"],"revenue":100,"revenue_str":"I22-H23"},{"train":"5P-0","connections":[["M36","M38"],["K30","K32","K34","L35","M36"],["J29","K30"],["I30","H29","I28","J29"]],"hexes":["M38","M36","K30","J29","I30"],"revenue":230,"revenue_str":"M38-M36-K30-J29-I30"}],"original_id":878},{"type":"dividend","entity":"LNWR","entity_type":"corporation","id":757,"created_at":1617939578,"kind":"payout","original_id":879},{"type":"buy_train","entity":"LNWR","entity_type":"corporation","id":758,"created_at":1617939646,"train":"4-0","price":1032,"original_id":880},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":759,"created_at":1617939667,"original_id":881},{"type":"pass","entity":"CR","entity_type":"corporation","id":760,"created_at":1617940855,"original_id":882},{"type":"lay_tile","entity":"P10","entity_type":"company","id":761,"created_at":1617940876,"hex":"H5","tile":"X5-1","rotation":5,"original_id":883},{"type":"pass","entity":"CR","entity_type":"corporation","id":762,"created_at":1617940923,"original_id":884},{"type":"place_token","entity":"CR","entity_type":"corporation","id":763,"created_at":1617941277,"city":"X5-1-0","slot":2,"original_id":907},{"type":"choose","entity":"CR","entity_type":"corporation","id":764,"created_at":1617941280,"choice":"0","original_id":908},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":765,"created_at":1617941331,"routes":[{"train":"4-2","connections":[["G12","H13"],["F7","G8","G10","H11","G12"],["E6","F7"],["F5","E6"],["G4","F5"],["H5","G4"],["F7","G6","H5"]],"hexes":["H13","G12","F7","E6","F5","G4","H5","F7"],"revenue":250,"revenue_str":"H13-G12-F7-E6-F5-G4-H5-F7 (£30)"}],"original_id":909},{"type":"dividend","entity":"CR","entity_type":"corporation","id":766,"created_at":1617941344,"kind":"half","original_id":910},{"type":"buy_train","entity":"CR","entity_type":"corporation","id":767,"created_at":1617941367,"train":"7-0","price":1000,"variant":"E","original_id":911},{"type":"pass","entity":"CR","entity_type":"corporation","id":768,"created_at":1617941420,"original_id":914},{"type":"pass","entity":"NBR","entity_type":"corporation","id":769,"created_at":1617941432,"original_id":915},{"type":"lay_tile","entity":"NBR","entity_type":"corporation","id":770,"created_at":1617941513,"hex":"H5","tile":"X11-0","rotation":5,"original_id":916},{"type":"pass","entity":"NBR","entity_type":"corporation","id":771,"created_at":1617941526,"original_id":917},{"type":"run_routes","entity":"NBR","entity_type":"corporation","id":772,"created_at":1617941534,"routes":[{"train":"5-2","connections":[["F7","E8","E6"],["H5","G6","F7"],["G4","H5"],["H1","G2","G4"]],"hexes":["E6","F7","H5","G4","H1"],"revenue":300,"revenue_str":"E6-F7-H5-G4-H1 (£60)"}],"original_id":918},{"type":"dividend","entity":"NBR","entity_type":"corporation","id":773,"created_at":1617941560,"kind":"half","original_id":919},{"type":"buy_train","entity":"NBR","entity_type":"corporation","id":774,"created_at":1617941565,"train":"7-1","price":750,"variant":"7","original_id":920},{"type":"pass","entity":"7","entity_type":"corporation","id":775,"created_at":1617949083,"original_id":921},{"type":"lay_tile","entity":"7","entity_type":"corporation","id":776,"created_at":1617949097,"hex":"L19","tile":"15-4","rotation":0,"original_id":922},{"type":"buy_train","entity":"7","entity_type":"corporation","id":777,"created_at":1617949120,"train":"7-2","price":1000,"variant":"E","original_id":923},{"type":"pass","entity":"GWR","entity_type":"corporation","id":778,"created_at":1617963657,"original_id":924},{"type":"lay_tile","entity":"GWR","entity_type":"corporation","id":779,"created_at":1617963824,"hex":"J35","tile":"7-0","rotation":3,"original_id":925},{"type":"lay_tile","entity":"GWR","entity_type":"corporation","id":780,"created_at":1617963918,"hex":"J33","tile":"9-11","rotation":0,"original_id":926},{"type":"run_routes","entity":"GWR","entity_type":"corporation","id":781,"created_at":1617964027,"routes":[{"train":"2P-0","connections":[["J41","K40","L39","M38"]],"hexes":["M38","J41"],"revenue":110,"revenue_str":"M38-J41"}],"original_id":927},{"type":"dividend","entity":"GWR","entity_type":"corporation","id":782,"created_at":1617964036,"kind":"payout","original_id":928},{"type":"buy_train","entity":"GWR","entity_type":"corporation","id":783,"created_at":1617964042,"train":"7-3","price":1000,"variant":"E","original_id":929},{"type":"pass","entity":"GWR","entity_type":"corporation","id":784,"created_at":1617964052,"original_id":930},{"type":"pass","entity":"MR","entity_type":"corporation","id":785,"created_at":1617975605,"original_id":931},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":786,"created_at":1617975627,"hex":"I30","tile":"X13-0","rotation":0,"original_id":932},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":787,"created_at":1617975743,"routes":[{"train":"5-1","connections":[["J29","I30"],["K30","J29"],["L33","L31","K30"],["M38","L37","L35","K34","L33"]],"hexes":["I30","J29","K30","L33","M38"],"revenue":270,"revenue_str":"I30-J29-K30-L33-M38"}],"original_id":933},{"type":"dividend","entity":"MR","entity_type":"corporation","id":788,"created_at":1617975749,"kind":"half","original_id":934},{"type":"buy_train","entity":"MR","entity_type":"corporation","id":789,"created_at":1617975752,"train":"7-4","price":1000,"variant":"E","original_id":935},{"type":"acquire_company","entity":"LBSCR","entity_type":"corporation","id":790,"created_at":1617976485,"company":"P18","original_id":936},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":791,"created_at":1617976496,"original_id":937},{"type":"choose_ability","entity":"P18","entity_type":"company","id":792,"created_at":1617976507,"choice":"exchange","original_id":938},{"type":"lay_tile","entity":"LBSCR","entity_type":"corporation","id":793,"created_at":1617976693,"hex":"K18","tile":"9-0","rotation":2,"original_id":943},{"type":"lay_tile","entity":"LBSCR","entity_type":"corporation","id":794,"created_at":1617976697,"hex":"J17","tile":"9-3","rotation":2,"original_id":944},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":795,"created_at":1617976746,"original_id":945},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":796,"created_at":1617976751,"original_id":946},{"type":"run_routes","entity":"LBSCR","entity_type":"corporation","id":797,"created_at":1617976796,"routes":[{"train":"6-2","connections":[["I42","H41","G40","G38","G36"],["J41","I42"],["K42","J41"],["M42","L41","K42"],["M38","M40","M42"]],"hexes":["G36","I42","J41","K42","M42","M38"],"revenue":320,"revenue_str":"G36-I42-J41-K42-M42-M38 (£50)"}],"original_id":947},{"type":"dividend","entity":"LBSCR","entity_type":"corporation","id":798,"created_at":1617976804,"kind":"payout","original_id":948},{"type":"buy_train","entity":"LBSCR","entity_type":"corporation","id":799,"created_at":1617976810,"train":"7-5","price":1000,"variant":"E","original_id":949},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":800,"created_at":1617976812,"original_id":950},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":801,"created_at":1617976815,"original_id":951},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":802,"created_at":1617976944,"original_id":952},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":803,"created_at":1617977012,"hex":"K26","tile":"545-0","rotation":3,"original_id":953},{"type":"run_routes","entity":"LNWR","entity_type":"corporation","id":804,"created_at":1617977110,"routes":[{"train":"2P-1","connections":[["I22","H23"]],"hexes":["I22","H23"],"revenue":100,"revenue_str":"I22-H23"},{"train":"5P-0","connections":[["M36","M38"],["K30","K32","K34","L35","M36"],["J29","K30"],["I30","H29","I28","J29"]],"hexes":["M38","M36","K30","J29","I30"],"revenue":250,"revenue_str":"M38-M36-K30-J29-I30"}],"original_id":954},{"type":"dividend","entity":"LNWR","entity_type":"corporation","id":805,"created_at":1617977119,"kind":"payout","original_id":955},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":806,"created_at":1617977141,"original_id":956},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":807,"created_at":1617977189,"original_id":957},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":808,"created_at":1617977192,"original_id":958},{"type":"pass","entity":"LYR","entity_type":"corporation","id":809,"created_at":1617977424,"original_id":959},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":810,"created_at":1617977454,"hex":"I22","tile":"X13-1","rotation":0,"original_id":960},{"type":"pass","entity":"LYR","entity_type":"corporation","id":811,"created_at":1617977489,"original_id":961},{"type":"choose","entity":"LYR","entity_type":"corporation","id":812,"created_at":1617977492,"choice":"0","original_id":962},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":813,"created_at":1617977528,"routes":[{"train":"6-1","connections":[["J29","K30"],["I30","J29"],["H25","H27","I28","H29","I30"],["H23","H25"],["H21","H23"],["G22","H21"],["G20","G22"],["H21","G20"],["I22","H21"]],"hexes":["K30","J29","I30","H25","H23","H21","G22","G20","H21","I22"],"revenue":450,"revenue_str":"K30-J29-I30-H25-H23-H21-G22-G20-H21-I22 (£80)"}],"original_id":963},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":814,"created_at":1617977530,"kind":"payout","original_id":964},{"type":"pass","entity":"LYR","entity_type":"corporation","id":815,"created_at":1617977536,"original_id":965},{"type":"merge","entity":"LYR","entity_type":"corporation","id":816,"created_at":1617977556,"corporation":"7","original_id":966},{"type":"choose","entity":"LYR","entity_type":"corporation","id":817,"created_at":1617977562,"choice":"money","original_id":967},{"type":"choose","entity":"LYR","entity_type":"corporation","id":818,"created_at":1617977565,"choice":"replace","original_id":968},{"type":"acquire_company","entity":"CR","entity_type":"corporation","id":819,"created_at":1617979181,"company":"P8","original_id":969},{"type":"pass","entity":"CR","entity_type":"corporation","id":820,"created_at":1617979184,"original_id":970},{"type":"choose","entity":"CR","entity_type":"corporation","id":821,"created_at":1617979232,"choice":"token","original_id":975},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":822,"created_at":1617979282,"hex":"H15","tile":"8-12","rotation":3,"original_id":978},{"type":"lay_tile","entity":"P8","entity_type":"company","id":823,"created_at":1617979288,"hex":"I16","tile":"9-12","rotation":2,"original_id":979},{"type":"pass","entity":"CR","entity_type":"corporation","id":824,"created_at":1617979300,"original_id":980},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":825,"created_at":1617979367,"routes":[{"train":"7-0","connections":[["G12","H13"],["F7","G8","G10","H11","G12"],["E6","F7"],["F7","E8","E6"],["H5","G6","F7"],["G4","H5"],["H1","G2","G4"]],"hexes":["H13","G12","F7","E6","F7","H5","G4","H1"],"revenue":500,"revenue_str":"H13-G12-F7-E6-F7-H5-G4-H1 (£60)"}],"original_id":981},{"type":"dividend","entity":"CR","entity_type":"corporation","id":826,"created_at":1617979375,"kind":"payout","original_id":982},{"type":"pass","entity":"CR","entity_type":"corporation","id":827,"created_at":1617979379,"original_id":983},{"type":"pass","entity":"NBR","entity_type":"corporation","id":828,"created_at":1617979392,"original_id":984},{"type":"lay_tile","entity":"NBR","entity_type":"corporation","id":829,"created_at":1617979466,"hex":"H3","tile":"4-2","rotation":0,"original_id":987},{"type":"pass","entity":"NBR","entity_type":"corporation","id":830,"created_at":1617979477,"original_id":988},{"type":"run_routes","entity":"NBR","entity_type":"corporation","id":831,"created_at":1617979608,"routes":[{"train":"5-2","connections":[["E6","E4","E2"],["F5","E6"],["G4","F5"],["H1","G2","G4"]],"hexes":["E2","E6","F5","G4","H1"],"revenue":200,"revenue_str":"E2-E6-F5-G4-H1"},{"train":"7-1","connections":[["E6","F7"],["F7","E8","E6"],["G4","G6","F7"],["H5","G4"],["H3","H5"],["H1","H3"]],"hexes":["F7","E6","F7","G4","H5","H3","H1"],"revenue":320,"revenue_str":"F7-E6-F7-G4-H5-H3-H1 (£60)"}],"original_id":989},{"type":"dividend","entity":"NBR","entity_type":"corporation","id":832,"created_at":1617979615,"kind":"payout","original_id":990},{"type":"buy_shares","entity":4035,"entity_type":"player","id":833,"created_at":1617979643,"shares":["LBSCR_8"],"percent":10,"original_id":991},{"type":"buy_shares","entity":3714,"entity_type":"player","id":834,"created_at":1617979668,"shares":["LNWR_8"],"percent":10,"original_id":992},{"type":"buy_shares","entity":488,"entity_type":"player","id":835,"created_at":1617979878,"shares":["LNWR_9"],"percent":10,"original_id":993},{"type":"pass","entity":4035,"entity_type":"player","id":836,"created_at":1617979894,"original_id":994},{"type":"program_share_pass","entity":488,"entity_type":"player","id":837,"created_at":1617979907,"original_id":995},{"type":"pass","entity":3714,"entity_type":"player","id":838,"created_at":1617981322,"auto_actions":[{"type":"pass","entity":488,"entity_type":"player","created_at":1617981321}],"original_id":996},{"type":"pass","entity":"GWR","entity_type":"corporation","id":839,"created_at":1617981352,"original_id":997},{"type":"lay_tile","entity":"GWR","entity_type":"corporation","id":840,"created_at":1617981371,"hex":"J31","tile":"144-0","rotation":0,"original_id":998},{"type":"run_routes","entity":"GWR","entity_type":"corporation","id":841,"created_at":1617981461,"routes":[{"train":"2P-0","connections":[["M38","L39","L37","L35","K34","K32","K30"]],"hexes":["K30","M38"],"revenue":120,"revenue_str":"K30-M38"},{"train":"7-3","connections":[["J41","K40","L39","M38"],["I42","J41"],["G36","G38","G40","H41","I42"],["I30","I32","I34","H35","G36"],["J31","I30"],["L33","L35","K34","J35","J33","J31"]],"hexes":["M38","J41","I42","G36","I30","J31","L33"],"revenue":560,"revenue_str":"M38-J41-I42-G36-I30-J31-L33 (£60)"}],"original_id":999},{"type":"dividend","entity":"GWR","entity_type":"corporation","id":842,"created_at":1617981470,"kind":"payout","original_id":1000},{"type":"pass","entity":"GWR","entity_type":"corporation","id":843,"created_at":1617981473,"original_id":1001},{"type":"pass","entity":"MR","entity_type":"corporation","id":844,"created_at":1617982581,"original_id":1002},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":845,"created_at":1617982596,"hex":"L19","tile":"63-3","rotation":0,"original_id":1003},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":846,"created_at":1617982646,"routes":[{"train":"5-1","connections":[["J29","I30"],["K30","J29"],["L33","L31","K30"],["M38","L37","L35","K34","L33"]],"hexes":["I30","J29","K30","L33","M38"],"revenue":270,"revenue_str":"I30-J29-K30-L33-M38"},{"train":"7-4","connections":[["K28","K26","L25","L23","L21","L19"],["J29","K28"],["I30","H29","I28","J29"],["J31","I30"],["K30","K32","K34","J35","J33","J31"],["L33","L31","K30"],["M38","L37","L35","K34","L33"]],"hexes":["L19","K28","J29","I30","J31","K30","L33","M38"],"revenue":700,"revenue_str":"L19-K28-J29-I30-J31-K30-L33-M38 (£80)"}],"original_id":1004},{"type":"dividend","entity":"MR","entity_type":"corporation","id":847,"created_at":1617982648,"kind":"payout","original_id":1005},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":848,"created_at":1617982713,"original_id":1006},{"type":"lay_tile","entity":"LBSCR","entity_type":"corporation","id":849,"created_at":1617983007,"hex":"M42","tile":"X16-0","rotation":3,"original_id":1011},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":850,"created_at":1617983010,"original_id":1012},{"type":"place_token","entity":"LBSCR","entity_type":"corporation","id":851,"created_at":1617983018,"city":"X13-1-0","slot":2,"original_id":1013},{"type":"run_routes","entity":"LBSCR","entity_type":"corporation","id":852,"created_at":1617983049,"routes":[{"train":"6-2","connections":[["I42","H41","G40","G38","G36"],["J41","I42"],["K42","J41"],["M42","L41","K42"],["M38","M40","M42"]],"hexes":["G36","I42","J41","K42","M42","M38"],"revenue":280,"revenue_str":"G36-I42-J41-K42-M42-M38"},{"train":"7-5","connections":[["H23","I22"],["H25","H23"],["I30","H29","I28","H27","H25"],["G36","H35","I34","I32","I30"],["I42","H41","G40","G38","G36"],["J41","I42"],["K42","J41"],["M42","L41","K42"],["M38","M40","M42"]],"hexes":["I22","H23","H25","I30","G36","I42","J41","K42","M42","M38"],"revenue":720,"revenue_str":"I22-H23-H25-I30-G36-I42-J41-K42-M42-M38 (£120)"}],"original_id":1014},{"type":"dividend","entity":"LBSCR","entity_type":"corporation","id":853,"created_at":1617983052,"kind":"payout","original_id":1015},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":854,"created_at":1617983058,"original_id":1016},{"type":"pass","entity":"LYR","entity_type":"corporation","id":855,"created_at":1617983778,"original_id":1017},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":856,"created_at":1617983811,"hex":"J29","tile":"X19-0","rotation":0,"original_id":1018},{"type":"place_token","entity":"LYR","entity_type":"corporation","id":857,"created_at":1617983820,"city":"X19-0-0","slot":2,"original_id":1019},{"type":"choose","entity":"LYR","entity_type":"corporation","id":858,"created_at":1617983825,"choice":"0","original_id":1020},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":859,"created_at":1617983857,"routes":[{"train":"6-1","connections":[["J29","K30"],["I30","J29"],["H25","H27","I28","H29","I30"],["H23","H25"],["H21","H23"],["G22","H21"],["G20","G22"],["H21","G20"],["I22","H21"]],"hexes":["K30","J29","I30","H25","H23","H21","G22","G20","H21","I22"],"revenue":380,"revenue_str":"K30-J29-I30-H25-H23-H21-G22-G20-H21-I22"},{"train":"7-2","connections":[["K28","K26","K24"],["J29","K28"],["I30","J29"],["H25","H27","I28","H29","I30"],["H23","H25"],["H21","H23"],["G22","H21"],["G20","G22"],["H21","G20"],["I22","H21"]],"hexes":["K24","K28","J29","I30","H25","H23","H21","G22","G20","H21","I22"],"revenue":820,"revenue_str":"K24-K28-J29-I30-H25-H23-H21-G22-G20-H21-I22 (£160)"}],"original_id":1021},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":860,"created_at":1617983860,"kind":"payout","original_id":1022},{"type":"pass","entity":"LYR","entity_type":"corporation","id":861,"created_at":1617983865,"original_id":1023},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":862,"created_at":1617985506,"original_id":1024},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":863,"created_at":1617985528,"hex":"L29","tile":"8-13","rotation":1,"original_id":1025},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":864,"created_at":1617985532,"hex":"L27","tile":"8-1","rotation":0,"original_id":1026},{"type":"run_routes","entity":"LNWR","entity_type":"corporation","id":865,"created_at":1617985630,"routes":[{"train":"2P-1","connections":[["I22","H23"]],"hexes":["I22","H23"],"revenue":120,"revenue_str":"I22-H23"},{"train":"5P-0","connections":[["M36","M38"],["K30","K32","K34","L35","M36"],["J29","K30"],["I30","H29","I28","J29"]],"hexes":["M38","M36","K30","J29","I30"],"revenue":260,"revenue_str":"M38-M36-K30-J29-I30"}],"original_id":1027},{"type":"dividend","entity":"LNWR","entity_type":"corporation","id":866,"created_at":1617985887,"kind":"half","original_id":1028},{"type":"buy_train","entity":"LNWR","entity_type":"corporation","id":867,"created_at":1617985893,"train":"7-7","price":750,"variant":"7","original_id":1029},{"type":"pass","entity":"CR","entity_type":"corporation","id":868,"created_at":1617986546,"original_id":1030},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":869,"created_at":1617986690,"hex":"G4","tile":"X18-0","rotation":5,"original_id":1035},{"type":"pass","entity":"CR","entity_type":"corporation","id":870,"created_at":1617986693,"original_id":1036},{"type":"place_token","entity":"CR","entity_type":"corporation","id":871,"created_at":1617986697,"city":"X13-1-0","slot":3,"original_id":1037},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":872,"created_at":1617986742,"routes":[{"train":"7-0","connections":[["H23","I22"],["H25","H23"],["J29","I28","H27","H25"],["K28","J29"],["L19","L21","L23","L25","K26","K28"],["H13","H15","I16","J17","K18","L19"],["G12","H13"],["F7","G8","G10","H11","G12"],["E6","F7"],["F7","E8","E6"],["H5","G6","F7"],["G4","H5"],["H1","G2","G4"]],"hexes":["I22","H23","H25","J29","K28","L19","H13","G12","F7","E6","F7","H5","G4","H1"],"revenue":660,"revenue_str":"I22-H23-H25-J29-K28-L19-H13-G12-F7-E6-F7-H5-G4-H1 (£60)"}],"original_id":1038},{"type":"dividend","entity":"CR","entity_type":"corporation","id":873,"created_at":1617986744,"kind":"payout","original_id":1039},{"type":"pass","entity":"CR","entity_type":"corporation","id":874,"created_at":1617986750,"original_id":1040},{"type":"pass","entity":"NBR","entity_type":"corporation","id":875,"created_at":1617986758,"original_id":1041},{"type":"lay_tile","entity":"NBR","entity_type":"corporation","id":876,"created_at":1617987034,"hex":"K20","tile":"57-3","rotation":1,"original_id":1054},{"type":"pass","entity":"NBR","entity_type":"corporation","id":877,"created_at":1617987042,"original_id":1055},{"type":"run_routes","entity":"NBR","entity_type":"corporation","id":878,"created_at":1617987054,"routes":[{"train":"5-2","connections":[["E6","E4","E2"],["F5","E6"],["G4","F5"],["H1","G2","G4"]],"hexes":["E2","E6","F5","G4","H1"],"revenue":210,"revenue_str":"E2-E6-F5-G4-H1"},{"train":"7-1","connections":[["E6","F7"],["F7","E8","E6"],["G4","G6","F7"],["H5","G4"],["H3","H5"],["H1","H3"]],"hexes":["F7","E6","F7","G4","H5","H3","H1"],"revenue":330,"revenue_str":"F7-E6-F7-G4-H5-H3-H1 (£60)"}],"original_id":1056},{"type":"dividend","entity":"NBR","entity_type":"corporation","id":879,"created_at":1617987056,"kind":"payout","original_id":1057},{"type":"pass","entity":"GWR","entity_type":"corporation","id":880,"created_at":1617987672,"original_id":1058},{"type":"lay_tile","entity":"GWR","entity_type":"corporation","id":881,"created_at":1617987773,"hex":"J23","tile":"9-4","rotation":2,"original_id":1059},{"type":"pass","entity":"GWR","entity_type":"corporation","id":882,"created_at":1617987817,"original_id":1060},{"type":"run_routes","entity":"GWR","entity_type":"corporation","id":883,"created_at":1617987920,"routes":[{"train":"2P-0","connections":[["I30","H29","I28","J29"]],"hexes":["J29","I30"],"revenue":130,"revenue_str":"J29-I30"},{"train":"7-3","connections":[["J41","K40","L39","M38"],["I42","J41"],["G36","G38","G40","H41","I42"],["I30","I32","I34","H35","G36"],["J31","I30"],["L33","L35","K34","J35","J33","J31"]],"hexes":["M38","J41","I42","G36","I30","J31","L33"],"revenue":560,"revenue_str":"M38-J41-I42-G36-I30-J31-L33 (£60)"}],"original_id":1061},{"type":"dividend","entity":"GWR","entity_type":"corporation","id":884,"created_at":1617987951,"kind":"payout","original_id":1062},{"type":"pass","entity":"GWR","entity_type":"corporation","id":885,"created_at":1617987955,"original_id":1063},{"type":"pass","entity":"MR","entity_type":"corporation","id":886,"created_at":1617988279,"original_id":1064},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":887,"created_at":1617988306,"hex":"L19","tile":"X19-1","rotation":0,"original_id":1065},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":888,"created_at":1617988314,"routes":[{"train":"5-1","connections":[["J29","I30"],["K30","J29"],["L33","L31","K30"],["M38","L37","L35","K34","L33"]],"hexes":["I30","J29","K30","L33","M38"],"revenue":280,"revenue_str":"I30-J29-K30-L33-M38"},{"train":"7-4","connections":[["K28","K26","L25","L23","L21","L19"],["J29","K28"],["I30","H29","I28","J29"],["J31","I30"],["K30","K32","K34","J35","J33","J31"],["L33","L31","K30"],["M38","L37","L35","K34","L33"]],"hexes":["L19","K28","J29","I30","J31","K30","L33","M38"],"revenue":760,"revenue_str":"L19-K28-J29-I30-J31-K30-L33-M38 (£100)"}],"original_id":1066},{"type":"dividend","entity":"MR","entity_type":"corporation","id":889,"created_at":1617988319,"kind":"payout","original_id":1067},{"type":"pass","entity":"MR","entity_type":"corporation","id":890,"created_at":1617988330,"original_id":1068},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":891,"created_at":1617988516,"original_id":1069},{"type":"lay_tile","entity":"LBSCR","entity_type":"corporation","id":892,"created_at":1617988548,"hex":"M38","tile":"X23-0","rotation":0,"original_id":1072},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":893,"created_at":1617988554,"original_id":1073},{"type":"run_routes","entity":"LBSCR","entity_type":"corporation","id":894,"created_at":1617988613,"routes":[{"train":"6-2","connections":[["I42","H41","G40","G38","G36"],["J41","I42"],["K42","J41"],["M42","L41","K42"],["M38","M40","M42"]],"hexes":["G36","I42","J41","K42","M42","M38"],"revenue":300,"revenue_str":"G36-I42-J41-K42-M42-M38"},{"train":"7-5","connections":[["H23","I22"],["H25","H23"],["I30","H29","I28","H27","H25"],["G36","H35","I34","I32","I30"],["I42","H41","G40","G38","G36"],["J41","I42"],["K42","J41"],["M42","L41","K42"],["M38","M40","M42"]],"hexes":["I22","H23","H25","I30","G36","I42","J41","K42","M42","M38"],"revenue":760,"revenue_str":"I22-H23-H25-I30-G36-I42-J41-K42-M42-M38 (£120)"}],"original_id":1074},{"type":"dividend","entity":"LBSCR","entity_type":"corporation","id":895,"created_at":1617988617,"kind":"payout","original_id":1075},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":896,"created_at":1617988621,"original_id":1076},{"type":"message","entity":4035,"entity_type":"player","id":897,"created_at":1617988922,"message":"hi guys...i am heading out with cy for a few hours bike ride....will be back to computer after 530 today....I think we can finish tonight. Lou is coming on strong!","original_id":1077},{"type":"message","entity":4035,"entity_type":"player","id":898,"created_at":1617989143,"message":"don't think i'll be able to overcome 2 E trains....:(","original_id":1078},{"type":"pass","entity":"LYR","entity_type":"corporation","id":899,"created_at":1617989147,"original_id":1079},{"type":"message","entity":4035,"entity_type":"player","id":900,"created_at":1617989157,"message":"well played lou","original_id":1080},{"type":"message","entity":4035,"entity_type":"player","id":901,"created_at":1617989163,"message":"and bruce of course!","original_id":1081},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":902,"created_at":1617989168,"hex":"G22","tile":"X11-1","rotation":2,"original_id":1082},{"type":"choose","entity":"LYR","entity_type":"corporation","id":903,"created_at":1617989182,"choice":"0","original_id":1084},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":904,"created_at":1617989196,"routes":[{"train":"6-1","connections":[["J29","K30"],["I30","J29"],["H25","H27","I28","H29","I30"],["H23","H25"],["H21","H23"],["G22","H21"],["G20","G22"],["H21","G20"],["I22","H21"]],"hexes":["K30","J29","I30","H25","H23","H21","G22","G20","H21","I22"],"revenue":390,"revenue_str":"K30-J29-I30-H25-H23-H21-G22-G20-H21-I22"},{"train":"7-2","connections":[["K28","K26","K24"],["J29","K28"],["I30","J29"],["H25","H27","I28","H29","I30"],["H23","H25"],["H21","H23"],["G22","H21"],["G20","G22"],["H21","G20"],["I22","H21"]],"hexes":["K24","K28","J29","I30","H25","H23","H21","G22","G20","H21","I22"],"revenue":840,"revenue_str":"K24-K28-J29-I30-H25-H23-H21-G22-G20-H21-I22 (£160)"}],"original_id":1085},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":905,"created_at":1617989200,"kind":"payout","original_id":1086},{"type":"pass","entity":"LYR","entity_type":"corporation","id":906,"created_at":1617989206,"original_id":1087},{"type":"pass","entity":"CR","entity_type":"corporation","id":907,"created_at":1617989496,"original_id":1088},{"type":"pass","entity":"CR","entity_type":"corporation","id":908,"created_at":1617989535,"original_id":1091},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":909,"created_at":1617989546,"routes":[{"train":"7-0","connections":[["H23","I22"],["H25","H23"],["J29","I28","H27","H25"],["K28","J29"],["L19","L21","L23","L25","K26","K28"],["H13","H15","I16","J17","K18","L19"],["G12","H13"],["F7","G8","G10","H11","G12"],["E6","F7"],["F7","E8","E6"],["H5","G6","F7"],["G4","H5"],["H1","G2","G4"]],"hexes":["I22","H23","H25","J29","K28","L19","H13","G12","F7","E6","F7","H5","G4","H1"],"revenue":660,"revenue_str":"I22-H23-H25-J29-K28-L19-H13-G12-F7-E6-F7-H5-G4-H1 (£60)"}],"original_id":1092},{"type":"dividend","entity":"CR","entity_type":"corporation","id":910,"created_at":1617989547,"kind":"payout","original_id":1093},{"type":"pass","entity":"CR","entity_type":"corporation","id":911,"created_at":1617989555,"original_id":1094},{"type":"message","entity":3714,"entity_type":"player","id":912,"created_at":1617989585,"message":"Kurt, run the NBR for the same as last round for me. thanks","original_id":1095},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":913,"created_at":1618005292,"original_id":1096},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":914,"created_at":1618006435,"hex":"L25","tile":"80-2","rotation":1,"original_id":1101},{"type":"run_routes","entity":"LNWR","entity_type":"corporation","id":915,"created_at":1618006744,"routes":[{"train":"2P-1","connections":[["I22","H21"]],"hexes":["H21","I22"],"revenue":90,"revenue_str":"H21-I22"},{"train":"5P-0","connections":[["K30","L31","L33"],["J29","K30"],["K28","J29"],["L19","L21","L23","L25","K26","K28"]],"hexes":["L33","K30","J29","K28","L19"],"revenue":190,"revenue_str":"L33-K30-J29-K28-L19"},{"train":"7-7","connections":[["H23","G22"],["I22","H23"],["K24","J23","I22"],["K30","L29","L27","K26","K24"],["M36","L35","K34","K32","K30"],["M38","M36"]],"hexes":["G22","H23","I22","K24","K30","M36","M38"],"revenue":440,"revenue_str":"G22-H23-I22-K24-K30-M36-M38 (£80)"}],"original_id":1102},{"type":"dividend","entity":"LNWR","entity_type":"corporation","id":916,"created_at":1618006751,"kind":"payout","original_id":1103},{"type":"pass","entity":"NBR","entity_type":"corporation","id":917,"user":4035,"created_at":1618006783,"original_id":1104},{"type":"pass","entity":"NBR","entity_type":"corporation","id":918,"user":4035,"created_at":1618006869,"original_id":1105},{"type":"run_routes","entity":"NBR","entity_type":"corporation","id":919,"user":4035,"created_at":1618006873,"routes":[{"train":"5-2","connections":[["E6","E4","E2"],["F5","E6"],["G4","F5"],["H1","G2","G4"]],"hexes":["E2","E6","F5","G4","H1"],"revenue":210,"revenue_str":"E2-E6-F5-G4-H1"},{"train":"7-1","connections":[["E6","F7"],["F7","E8","E6"],["G4","G6","F7"],["H5","G4"],["H3","H5"],["H1","H3"]],"hexes":["F7","E6","F7","G4","H5","H3","H1"],"revenue":330,"revenue_str":"F7-E6-F7-G4-H5-H3-H1 (£60)"}],"original_id":1106},{"type":"dividend","entity":"NBR","entity_type":"corporation","id":920,"user":4035,"created_at":1618006875,"kind":"payout","original_id":1107},{"type":"message","entity":4035,"entity_type":"player","id":921,"created_at":1618006999,"message":"good game guys!","original_id":1108},{"type":"message","entity":488,"entity_type":"player","id":922,"created_at":1618007478,"message":"see you Wednesday. OF course, we can play async whenever you like.","original_id":1109}],"loaded":true,"created_at":1617839842,"updated_at":1618007478} \ No newline at end of file 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/public/fixtures/1822MX/123055.json b/public/fixtures/1822MX/123055.json new file mode 100644 index 0000000000..2e8cf56eaf --- /dev/null +++ b/public/fixtures/1822MX/123055.json @@ -0,0 +1 @@ +{"id":123055,"description":"Fast learning game, EU area","user":{"id":10041,"name":"Player 1"},"players":[{"id":10041,"name":"Player 1"},{"id":14244,"name":"Player 2"},{"id":14765,"name":"Player 3"}],"min_players":3,"max_players":4,"title":"1822MX","settings":{"seed":75402679,"is_async":true,"unlisted":false,"auto_routing":false,"player_order":null,"optional_rules":[]},"user_settings":null,"status":"finished","turn":9,"round":"Operating Round","acting":[10041,14244,14765],"result":{"10041":3681,"14244":11461,"14765":8290},"actions":[{"type":"bid","entity":10041,"entity_type":"player","id":1,"created_at":1684050537,"company":"M12","price":100,"original_id":1},{"type":"pass","entity":10041,"entity_type":"player","id":2,"created_at":1684050548,"original_id":2},{"type":"bid","entity":14244,"entity_type":"player","id":3,"created_at":1684050804,"company":"M19","price":100,"original_id":3},{"type":"bid","entity":14244,"entity_type":"player","id":4,"created_at":1684050818,"company":"P14","price":0,"original_id":4},{"type":"bid","entity":14244,"entity_type":"player","id":5,"created_at":1684050820,"company":"P5","price":0,"original_id":5},{"type":"bid","entity":14765,"entity_type":"player","id":6,"created_at":1684052566,"company":"M1","price":100,"original_id":6},{"type":"pass","entity":14765,"entity_type":"player","id":7,"created_at":1684052624,"original_id":7},{"type":"bid","entity":10041,"entity_type":"player","id":8,"created_at":1684053760,"company":"P5","price":5,"original_id":8},{"type":"bid","entity":10041,"entity_type":"player","id":9,"created_at":1684053764,"company":"P14","price":5,"original_id":9},{"type":"pass","entity":10041,"entity_type":"player","id":10,"created_at":1684053770,"original_id":10},{"type":"bid","entity":14244,"entity_type":"player","id":11,"created_at":1684064306,"company":"C1","price":200,"original_id":11},{"type":"bid","entity":14244,"entity_type":"player","id":12,"created_at":1684064312,"company":"P14","price":10,"original_id":12},{"type":"bid","entity":14244,"entity_type":"player","id":13,"created_at":1684064314,"company":"P5","price":10,"original_id":13},{"type":"bid","entity":14765,"entity_type":"player","id":14,"created_at":1684072124,"company":"C1","price":205,"original_id":14},{"type":"pass","entity":14765,"entity_type":"player","id":15,"created_at":1684072130,"original_id":15},{"type":"bid","entity":10041,"entity_type":"player","id":16,"created_at":1684072819,"company":"P5","price":15,"original_id":16},{"type":"pass","entity":10041,"entity_type":"player","id":17,"created_at":1684072827,"original_id":17},{"type":"bid","entity":14244,"entity_type":"player","id":18,"created_at":1684073720,"company":"C1","price":210,"original_id":18},{"type":"bid","entity":14244,"entity_type":"player","id":19,"created_at":1684073726,"company":"P1","price":0,"original_id":19},{"type":"pass","entity":14244,"entity_type":"player","id":20,"created_at":1684073759,"original_id":20},{"type":"bid","entity":14765,"entity_type":"player","id":21,"created_at":1684073966,"company":"C2","price":100,"original_id":21},{"type":"bid","entity":14765,"entity_type":"player","id":22,"created_at":1684073983,"company":"P14","price":15,"original_id":22},{"type":"pass","entity":14765,"entity_type":"player","id":23,"created_at":1684073986,"original_id":23},{"type":"bid","entity":10041,"entity_type":"player","id":24,"created_at":1684094045,"company":"P14","price":20,"original_id":24},{"type":"pass","entity":10041,"entity_type":"player","id":25,"created_at":1684094048,"original_id":25},{"type":"pass","entity":14244,"entity_type":"player","id":26,"created_at":1684101650,"original_id":26},{"type":"bid","entity":14765,"entity_type":"player","id":27,"created_at":1684102697,"company":"M11","price":100,"original_id":27},{"type":"pass","entity":14765,"entity_type":"player","id":28,"created_at":1684102704,"original_id":28},{"type":"pass","entity":10041,"entity_type":"player","id":29,"created_at":1684133072,"original_id":29},{"type":"pass","entity":14244,"entity_type":"player","id":30,"created_at":1684135164,"original_id":30},{"type":"pass","entity":14765,"entity_type":"player","id":31,"created_at":1684136341,"original_id":31},{"type":"buy_train","entity":"18","entity_type":"corporation","id":32,"created_at":1684137314,"train":"L-0","price":60,"variant":"L","original_id":32},{"type":"lay_tile","entity":"18","entity_type":"corporation","id":33,"created_at":1684137382,"hex":"N27","tile":"6-0","rotation":5,"original_id":33},{"type":"run_routes","entity":"18","entity_type":"corporation","id":34,"created_at":1684137390,"routes":[{"train":"L-0","connections":[["local","N25"]],"hexes":["N25"],"revenue":30,"revenue_str":"N25","nodes":[]}],"original_id":34},{"type":"buy_train","entity":"19","entity_type":"corporation","id":35,"created_at":1684137394,"train":"L-0","price":60,"variant":"L","original_id":35},{"type":"lay_tile","entity":"19","entity_type":"corporation","id":36,"created_at":1684137407,"hex":"O28","tile":"9-0","rotation":2,"original_id":36},{"type":"run_routes","entity":"19","entity_type":"corporation","id":37,"created_at":1684137411,"routes":[{"train":"L-1","connections":[["local","N27"]],"hexes":["N27"],"revenue":20,"revenue_str":"N27","nodes":[]}],"original_id":37},{"type":"pass","entity":"19","entity_type":"corporation","id":38,"created_at":1684137423,"original_id":38},{"type":"buy_train","entity":"12","entity_type":"corporation","id":39,"created_at":1684140918,"train":"L-0","price":60,"variant":"L","original_id":39},{"type":"lay_tile","entity":"12","entity_type":"corporation","id":40,"created_at":1684140927,"hex":"K20","tile":"57-0","rotation":0,"original_id":40},{"type":"run_routes","entity":"12","entity_type":"corporation","id":41,"created_at":1684140980,"routes":[{"train":"L-2","connections":[["local","L19"]],"hexes":["L19"],"revenue":30,"revenue_str":"L19","nodes":[]}],"original_id":41},{"type":"pass","entity":"12","entity_type":"corporation","id":42,"created_at":1684141008,"original_id":42},{"type":"buy_train","entity":"11","entity_type":"corporation","id":43,"created_at":1684141854,"train":"L-0","price":60,"variant":"L","original_id":43},{"type":"lay_tile","entity":"11","entity_type":"corporation","id":44,"created_at":1684143471,"hex":"M18","tile":"7-0","rotation":2,"original_id":44},{"type":"run_routes","entity":"11","entity_type":"corporation","id":45,"created_at":1684143520,"routes":[{"train":"L-3","connections":[["local","L17"]],"hexes":["L17"],"revenue":30,"revenue_str":"L17","nodes":[]}],"original_id":45},{"type":"pass","entity":"11","entity_type":"corporation","id":46,"created_at":1684143552,"original_id":46},{"type":"buy_train","entity":"1","entity_type":"corporation","id":47,"created_at":1684143574,"train":"L-0","price":60,"variant":"L","original_id":47},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":48,"created_at":1684143623,"hex":"B1","tile":"6-1","rotation":3,"original_id":48},{"type":"run_routes","entity":"1","entity_type":"corporation","id":49,"created_at":1684143654,"routes":[{"train":"L-4","connections":[["local","B1"]],"hexes":["B1"],"revenue":20,"revenue_str":"B1","nodes":[]}],"original_id":49},{"type":"pass","entity":"1","entity_type":"corporation","id":50,"created_at":1684143661,"original_id":50},{"type":"bid","entity":10041,"entity_type":"player","id":51,"created_at":1684145023,"company":"M22","price":100,"original_id":51},{"type":"pass","entity":10041,"entity_type":"player","id":52,"created_at":1684145035,"original_id":52},{"type":"bid","entity":14765,"entity_type":"player","id":53,"created_at":1684145405,"company":"M3","price":100,"original_id":53},{"type":"bid","entity":14765,"entity_type":"player","id":54,"created_at":1684145429,"company":"P13","price":5,"original_id":54},{"type":"bid","entity":14765,"entity_type":"player","id":55,"created_at":1684145431,"company":"P16","price":5,"original_id":55},{"type":"bid","entity":14244,"entity_type":"player","id":56,"created_at":1684146447,"company":"M23","price":100,"original_id":56},{"type":"bid","entity":14244,"entity_type":"player","id":57,"created_at":1684146448,"company":"P13","price":10,"original_id":57},{"type":"bid","entity":14244,"entity_type":"player","id":58,"created_at":1684146450,"company":"P16","price":10,"original_id":58},{"type":"pass","entity":10041,"entity_type":"player","id":59,"created_at":1684149652,"original_id":59},{"type":"bid","entity":14765,"entity_type":"player","id":60,"created_at":1684152339,"company":"P18","price":5,"original_id":60},{"type":"bid","entity":14765,"entity_type":"player","id":61,"created_at":1684152341,"company":"P13","price":15,"original_id":61},{"type":"pass","entity":14765,"entity_type":"player","id":62,"created_at":1684152366,"original_id":62},{"type":"bid","entity":14244,"entity_type":"player","id":63,"created_at":1684158971,"company":"P13","price":20,"original_id":63},{"type":"bid","entity":14244,"entity_type":"player","id":64,"created_at":1684158977,"company":"P18","price":10,"original_id":64},{"type":"pass","entity":14244,"entity_type":"player","id":65,"created_at":1684158988,"original_id":65},{"type":"bid","entity":10041,"entity_type":"player","id":66,"created_at":1684160310,"company":"P16","price":15,"original_id":66},{"type":"pass","entity":10041,"entity_type":"player","id":67,"created_at":1684160315,"original_id":67},{"type":"bid","entity":14765,"entity_type":"player","id":68,"created_at":1684160388,"company":"M16","price":100,"original_id":68},{"type":"bid","entity":14765,"entity_type":"player","id":69,"created_at":1684160398,"company":"P18","price":15,"original_id":69},{"type":"bid","entity":14765,"entity_type":"player","id":70,"created_at":1684160420,"company":"P16","price":20,"original_id":70},{"type":"bid","entity":14244,"entity_type":"player","id":71,"created_at":1684163729,"company":"P18","price":20,"original_id":71},{"type":"pass","entity":14244,"entity_type":"player","id":72,"created_at":1684163733,"original_id":72},{"type":"pass","entity":10041,"entity_type":"player","id":73,"created_at":1684165161,"original_id":73},{"type":"pass","entity":14765,"entity_type":"player","id":74,"created_at":1684166699,"original_id":74},{"type":"pass","entity":14244,"entity_type":"player","id":75,"created_at":1684167001,"original_id":75},{"type":"pass","entity":"18","entity_type":"corporation","id":76,"created_at":1684167017,"original_id":76},{"type":"lay_tile","entity":"18","entity_type":"corporation","id":77,"created_at":1684167032,"hex":"N23","tile":"X20-0","rotation":0,"original_id":77},{"type":"run_routes","entity":"18","entity_type":"corporation","id":78,"created_at":1684167042,"routes":[{"train":"L-0","connections":[["local","N25"]],"hexes":["N25"],"revenue":30,"revenue_str":"N25","nodes":[]}],"original_id":78},{"type":"pass","entity":"18","entity_type":"corporation","id":79,"created_at":1684167049,"original_id":79},{"type":"pass","entity":"19","entity_type":"corporation","id":80,"created_at":1684167060,"original_id":80},{"type":"lay_tile","entity":"19","entity_type":"corporation","id":81,"created_at":1684167072,"hex":"P29","tile":"8-0","rotation":2,"original_id":81},{"type":"run_routes","entity":"19","entity_type":"corporation","id":82,"created_at":1684167077,"routes":[{"train":"L-1","connections":[["local","N27"]],"hexes":["N27"],"revenue":20,"revenue_str":"N27","nodes":[]}],"original_id":82},{"type":"pass","entity":"19","entity_type":"corporation","id":83,"created_at":1684167080,"original_id":83},{"type":"pass","entity":"12","entity_type":"corporation","id":84,"created_at":1684174892,"original_id":84},{"type":"pass","entity":"12","entity_type":"corporation","id":85,"created_at":1684174908,"original_id":85},{"type":"run_routes","entity":"12","entity_type":"corporation","id":86,"created_at":1684174916,"routes":[{"train":"L-2","connections":[["local","L19"]],"hexes":["L19"],"revenue":30,"revenue_str":"L19","nodes":[]}],"original_id":86},{"type":"pass","entity":"12","entity_type":"corporation","id":87,"created_at":1684174926,"original_id":87},{"type":"pass","entity":"11","entity_type":"corporation","id":88,"created_at":1684175980,"original_id":88},{"type":"pass","entity":"11","entity_type":"corporation","id":89,"created_at":1684176135,"original_id":89},{"type":"run_routes","entity":"11","entity_type":"corporation","id":90,"created_at":1684176153,"routes":[{"train":"L-3","connections":[["local","L17"]],"hexes":["L17"],"revenue":30,"revenue_str":"L17","nodes":[]}],"original_id":90},{"type":"pass","entity":"11","entity_type":"corporation","id":91,"created_at":1684176173,"original_id":91},{"type":"pass","entity":"1","entity_type":"corporation","id":92,"created_at":1684176180,"original_id":92},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":93,"created_at":1684176194,"hex":"C2","tile":"4-0","rotation":2,"original_id":93},{"type":"run_routes","entity":"1","entity_type":"corporation","id":94,"created_at":1684176215,"routes":[{"train":"L-4","connections":[["B1","C2"]],"hexes":["C2","B1"],"revenue":30,"revenue_str":"C2-B1","nodes":["B1-0","C2-0"]}],"original_id":94},{"type":"pass","entity":"1","entity_type":"corporation","id":95,"created_at":1684176235,"original_id":95},{"type":"buy_train","entity":"22","entity_type":"corporation","id":96,"created_at":1684177445,"train":"L-0","price":60,"variant":"L","original_id":96},{"type":"pass","entity":"22","entity_type":"corporation","id":97,"created_at":1684177450,"original_id":97},{"type":"lay_tile","entity":"22","entity_type":"corporation","id":98,"created_at":1684177462,"hex":"O32","tile":"57-1","rotation":0,"original_id":98},{"type":"run_routes","entity":"22","entity_type":"corporation","id":99,"created_at":1684177514,"routes":[{"train":"L-5","connections":[["local","O32"]],"hexes":["O32"],"revenue":20,"revenue_str":"O32","nodes":[]}],"original_id":99},{"type":"pass","entity":"22","entity_type":"corporation","id":100,"created_at":1684177526,"original_id":100},{"type":"buy_train","entity":"16","entity_type":"corporation","id":101,"created_at":1684177714,"train":"L-0","price":60,"variant":"L","original_id":101},{"type":"pass","entity":"16","entity_type":"corporation","id":102,"created_at":1684177721,"original_id":102},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":103,"created_at":1684177766,"hex":"M26","tile":"56-0","rotation":5,"original_id":103},{"type":"run_routes","entity":"16","entity_type":"corporation","id":104,"created_at":1684177792,"routes":[{"train":"L-6","connections":[["N25","M26"]],"hexes":["M26","N25"],"revenue":40,"revenue_str":"M26-N25","nodes":["N25-2","M26-1"]}],"original_id":104},{"type":"pass","entity":"16","entity_type":"corporation","id":105,"created_at":1684177810,"original_id":105},{"type":"buy_train","entity":"3","entity_type":"corporation","id":106,"created_at":1684177820,"train":"L-0","price":60,"variant":"L","original_id":106},{"type":"pass","entity":"3","entity_type":"corporation","id":107,"created_at":1684177822,"original_id":107},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":108,"created_at":1684177884,"hex":"E8","tile":"6-2","rotation":0,"original_id":108},{"type":"run_routes","entity":"3","entity_type":"corporation","id":109,"created_at":1684177926,"routes":[{"train":"L-7","connections":[["local","E8"]],"hexes":["E8"],"revenue":20,"revenue_str":"E8","nodes":[]}],"original_id":109},{"type":"pass","entity":"3","entity_type":"corporation","id":110,"created_at":1684177935,"original_id":110},{"type":"buy_train","entity":"23","entity_type":"corporation","id":111,"created_at":1684178507,"train":"L-0","price":60,"variant":"L","original_id":111},{"type":"pass","entity":"23","entity_type":"corporation","id":112,"created_at":1684178514,"original_id":112},{"type":"lay_tile","entity":"23","entity_type":"corporation","id":113,"created_at":1684178519,"hex":"L37","tile":"6-3","rotation":4,"original_id":113},{"type":"run_routes","entity":"23","entity_type":"corporation","id":114,"created_at":1684178528,"routes":[{"train":"L-8","connections":[["local","L37"]],"hexes":["L37"],"revenue":20,"revenue_str":"L37","nodes":[]}],"original_id":114},{"type":"pass","entity":"23","entity_type":"corporation","id":115,"created_at":1684178533,"original_id":115},{"type":"bid","entity":10041,"entity_type":"player","id":116,"created_at":1684181081,"company":"P6","price":0,"original_id":116},{"type":"pass","entity":10041,"entity_type":"player","id":117,"created_at":1684181146,"original_id":117},{"type":"bid","entity":14244,"entity_type":"player","id":118,"created_at":1684182478,"company":"P3","price":0,"original_id":118},{"type":"bid","entity":14244,"entity_type":"player","id":119,"created_at":1684182480,"company":"P4","price":0,"original_id":119},{"type":"bid","entity":14244,"entity_type":"player","id":120,"created_at":1684182487,"company":"P6","price":5,"original_id":120},{"type":"bid","entity":14765,"entity_type":"player","id":121,"created_at":1684182518,"company":"P6","price":10,"original_id":121},{"type":"bid","entity":14765,"entity_type":"player","id":122,"created_at":1684182521,"company":"P4","price":10,"original_id":122},{"type":"bid","entity":14765,"entity_type":"player","id":123,"created_at":1684182523,"company":"P3","price":10,"original_id":123},{"type":"bid","entity":10041,"entity_type":"player","id":124,"created_at":1684212432,"company":"M5","price":100,"original_id":124},{"type":"bid","entity":10041,"entity_type":"player","id":125,"created_at":1684212437,"company":"P6","price":15,"original_id":125},{"type":"pass","entity":10041,"entity_type":"player","id":126,"created_at":1684212441,"original_id":126},{"type":"bid","entity":14244,"entity_type":"player","id":127,"created_at":1684218338,"company":"P4","price":15,"original_id":127},{"type":"bid","entity":14244,"entity_type":"player","id":128,"created_at":1684218340,"company":"P3","price":15,"original_id":128},{"type":"pass","entity":14244,"entity_type":"player","id":129,"created_at":1684218349,"original_id":129},{"type":"bid","entity":14765,"entity_type":"player","id":130,"created_at":1684222543,"company":"P4","price":20,"original_id":130},{"type":"bid","entity":14765,"entity_type":"player","id":131,"created_at":1684222545,"company":"P3","price":20,"original_id":131},{"type":"pass","entity":14765,"entity_type":"player","id":132,"created_at":1684222550,"original_id":132},{"type":"pass","entity":10041,"entity_type":"player","id":133,"created_at":1684223303,"original_id":133},{"type":"bid","entity":14244,"entity_type":"player","id":134,"created_at":1684226557,"company":"P4","price":25,"original_id":134},{"type":"bid","entity":14244,"entity_type":"player","id":135,"created_at":1684226573,"company":"P3","price":25,"original_id":135},{"type":"pass","entity":14244,"entity_type":"player","id":136,"created_at":1684226576,"original_id":136},{"type":"bid","entity":14765,"entity_type":"player","id":137,"created_at":1684226671,"company":"P3","price":30,"original_id":137},{"type":"bid","entity":14765,"entity_type":"player","id":138,"created_at":1684226677,"company":"P4","price":30,"original_id":138},{"type":"pass","entity":14765,"entity_type":"player","id":139,"created_at":1684226681,"original_id":139},{"type":"pass","entity":10041,"entity_type":"player","id":140,"created_at":1684227675,"original_id":140},{"type":"bid","entity":14244,"entity_type":"player","id":141,"created_at":1684229057,"company":"P6","price":20,"original_id":141},{"type":"pass","entity":14244,"entity_type":"player","id":142,"created_at":1684229064,"original_id":142},{"type":"pass","entity":14765,"entity_type":"player","id":143,"created_at":1684229867,"original_id":143},{"type":"bid","entity":10041,"entity_type":"player","id":144,"created_at":1684231898,"company":"P6","price":25,"original_id":144},{"type":"pass","entity":10041,"entity_type":"player","id":145,"created_at":1684231902,"original_id":145},{"type":"bid","entity":14244,"entity_type":"player","id":146,"created_at":1684233603,"company":"P4","price":35,"original_id":146},{"type":"pass","entity":14244,"entity_type":"player","id":147,"created_at":1684233610,"original_id":147},{"type":"pass","entity":14765,"entity_type":"player","id":148,"created_at":1684233831,"original_id":148},{"type":"pass","entity":10041,"entity_type":"player","id":149,"created_at":1684239505,"original_id":149},{"type":"pass","entity":14244,"entity_type":"player","id":150,"created_at":1684243671,"original_id":150},{"type":"pass","entity":"18","entity_type":"corporation","id":151,"created_at":1684243680,"original_id":151},{"type":"pass","entity":"18","entity_type":"corporation","id":152,"created_at":1684243693,"original_id":152},{"type":"run_routes","entity":"18","entity_type":"corporation","id":153,"created_at":1684243696,"routes":[{"train":"L-0","connections":[["local","N25"]],"hexes":["N25"],"revenue":30,"revenue_str":"N25","nodes":[]}],"original_id":153},{"type":"pass","entity":"18","entity_type":"corporation","id":154,"created_at":1684243702,"original_id":154},{"type":"pass","entity":"19","entity_type":"corporation","id":155,"created_at":1684243706,"original_id":155},{"type":"lay_tile","entity":"19","entity_type":"corporation","id":156,"created_at":1684243718,"hex":"P31","tile":"4-1","rotation":1,"original_id":156},{"type":"run_routes","entity":"19","entity_type":"corporation","id":157,"created_at":1684243748,"routes":[{"train":"L-1","connections":[["N27","O28","P29","P31"]],"hexes":["P31","N27"],"revenue":30,"revenue_str":"P31-N27","nodes":["N27-0","P31-0"]}],"original_id":157},{"type":"pass","entity":"19","entity_type":"corporation","id":158,"created_at":1684243752,"original_id":158},{"type":"pass","entity":"12","entity_type":"corporation","id":159,"created_at":1684251196,"original_id":159},{"type":"pass","entity":"12","entity_type":"corporation","id":160,"created_at":1684251209,"original_id":160},{"type":"run_routes","entity":"12","entity_type":"corporation","id":161,"created_at":1684251215,"routes":[{"train":"L-2","connections":[["local","L19"]],"hexes":["L19"],"revenue":30,"revenue_str":"L19","nodes":[]}],"original_id":161},{"type":"buy_train","entity":"12","entity_type":"corporation","id":162,"created_at":1684251222,"train":"L-2","price":80,"variant":"2","exchange":"L-2","original_id":162},{"type":"pass","entity":"12","entity_type":"corporation","id":163,"created_at":1684251226,"original_id":163},{"type":"pass","entity":"11","entity_type":"corporation","id":164,"created_at":1684252069,"original_id":164},{"type":"pass","entity":"11","entity_type":"corporation","id":165,"created_at":1684252118,"original_id":165},{"type":"run_routes","entity":"11","entity_type":"corporation","id":166,"created_at":1684252138,"routes":[{"train":"L-3","connections":[["local","L17"]],"hexes":["L17"],"revenue":30,"revenue_str":"L17","nodes":[]}],"original_id":166},{"type":"pass","entity":"11","entity_type":"corporation","id":167,"created_at":1684252145,"original_id":167},{"type":"acquire_company","entity":"1","entity_type":"corporation","id":168,"created_at":1684252166,"company":"P3","original_id":168},{"type":"pass","entity":"1","entity_type":"corporation","id":169,"created_at":1684252171,"original_id":169},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":170,"created_at":1684252196,"hex":"D3","tile":"4-2","rotation":2,"original_id":170},{"type":"run_routes","entity":"1","entity_type":"corporation","id":171,"created_at":1684252261,"routes":[{"train":"L-4","connections":[["local","B1"]],"hexes":["B1"],"revenue":20,"revenue_str":"B1","nodes":[]},{"train":"3/2P-0","connections":[["B1","C2"],["A2","B1"]],"hexes":["C2","B1","A2"],"revenue":30,"revenue_str":"C2-B1-A2","nodes":["B1-0","C2-0","A2-0"]}],"original_id":171},{"type":"buy_train","entity":"1","entity_type":"corporation","id":172,"created_at":1684252276,"train":"L-4","price":80,"variant":"2","exchange":"L-4","original_id":172},{"type":"pass","entity":"1","entity_type":"corporation","id":173,"created_at":1684252280,"original_id":173},{"type":"pass","entity":"22","entity_type":"corporation","id":174,"created_at":1684252651,"original_id":174},{"type":"lay_tile","entity":"22","entity_type":"corporation","id":175,"created_at":1684252667,"hex":"N33","tile":"BC-0","rotation":0,"original_id":175},{"type":"run_routes","entity":"22","entity_type":"corporation","id":176,"created_at":1684252677,"routes":[{"train":"L-5","connections":[["local","O32"]],"hexes":["O32"],"revenue":20,"revenue_str":"O32","nodes":[]}],"original_id":176},{"type":"pass","entity":"22","entity_type":"corporation","id":177,"created_at":1684252683,"original_id":177},{"type":"pass","entity":"16","entity_type":"corporation","id":178,"created_at":1684252829,"original_id":178},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":179,"created_at":1684252842,"hex":"L25","tile":"9-1","rotation":2,"original_id":179},{"type":"run_routes","entity":"16","entity_type":"corporation","id":180,"created_at":1684252869,"routes":[{"train":"L-6","connections":[["N25","M26"]],"hexes":["N25","M26"],"revenue":40,"revenue_str":"N25-M26","nodes":["N25-2","M26-1"]}],"original_id":180},{"type":"buy_train","entity":"16","entity_type":"corporation","id":181,"created_at":1684252887,"train":"L-6","price":80,"variant":"2","exchange":"L-6","original_id":181},{"type":"pass","entity":"3","entity_type":"corporation","id":182,"created_at":1684252891,"original_id":182},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":183,"created_at":1684252902,"hex":"D7","tile":"8-1","rotation":3,"original_id":183},{"type":"run_routes","entity":"3","entity_type":"corporation","id":184,"created_at":1684252917,"routes":[{"train":"L-7","connections":[["local","E8"]],"hexes":["E8"],"revenue":20,"revenue_str":"E8","nodes":[]}],"original_id":184},{"type":"pass","entity":"3","entity_type":"corporation","id":185,"created_at":1684252929,"original_id":185},{"type":"pass","entity":"23","entity_type":"corporation","id":186,"created_at":1684252957,"original_id":186},{"type":"lay_tile","entity":"23","entity_type":"corporation","id":187,"created_at":1684252969,"hex":"M36","tile":"4-3","rotation":0,"original_id":187},{"type":"run_routes","entity":"23","entity_type":"corporation","id":188,"created_at":1684252978,"routes":[{"train":"L-8","connections":[["M36","L37"]],"hexes":["L37","M36"],"revenue":30,"revenue_str":"L37-M36","nodes":["M36-0","L37-0"]}],"original_id":188},{"type":"pass","entity":"23","entity_type":"corporation","id":189,"created_at":1684252982,"original_id":189},{"type":"buy_train","entity":"5","entity_type":"corporation","id":190,"created_at":1684256236,"train":"L-0","price":60,"variant":"L","original_id":190},{"type":"pass","entity":"5","entity_type":"corporation","id":191,"created_at":1684256238,"original_id":191},{"type":"lay_tile","entity":"5","entity_type":"corporation","id":192,"created_at":1684256245,"hex":"G22","tile":"6-4","rotation":0,"original_id":192},{"type":"run_routes","entity":"5","entity_type":"corporation","id":193,"created_at":1684256259,"routes":[{"train":"L-13","connections":[["local","G22"]],"hexes":["G22"],"revenue":20,"revenue_str":"G22","nodes":[]}],"original_id":193},{"type":"pass","entity":"5","entity_type":"corporation","id":194,"created_at":1684256263,"original_id":194},{"type":"run_routes","entity":"NDEM","entity_type":"corporation","id":195,"created_at":1684256315,"routes":[{"train":"L-9","connections":[["local","N25"]],"hexes":["N25"],"revenue":30,"revenue_str":"N25","nodes":[]}],"original_id":195},{"type":"bid","entity":10041,"entity_type":"player","id":196,"created_at":1684256376,"company":"C5","price":100,"original_id":196},{"type":"pass","entity":10041,"entity_type":"player","id":197,"created_at":1684256389,"original_id":197},{"type":"par","entity":14244,"entity_type":"player","id":198,"created_at":1684256761,"corporation":"FCM","share_price":"100,0,14","original_id":198},{"type":"par","entity":14765,"entity_type":"player","id":199,"created_at":1684257701,"corporation":"MC","share_price":"80,0,12","original_id":199},{"type":"pass","entity":10041,"entity_type":"player","id":200,"created_at":1684265644,"original_id":200},{"type":"buy_shares","entity":14244,"entity_type":"player","id":201,"created_at":1684269977,"shares":["FCM_1"],"percent":10,"share_price":false,"original_id":201},{"type":"buy_shares","entity":14765,"entity_type":"player","id":202,"created_at":1684270502,"shares":["MC_1"],"percent":10,"share_price":false,"original_id":202},{"type":"buy_shares","entity":10041,"entity_type":"player","id":203,"created_at":1684299129,"shares":["MC_2"],"percent":10,"share_price":false,"original_id":203},{"type":"bid","entity":14244,"entity_type":"player","id":204,"created_at":1684305251,"company":"P12","price":5,"original_id":204},{"type":"bid","entity":14244,"entity_type":"player","id":205,"created_at":1684305256,"company":"P2","price":0,"original_id":205},{"type":"pass","entity":14244,"entity_type":"player","id":206,"created_at":1684305262,"original_id":206},{"type":"bid","entity":14765,"entity_type":"player","id":207,"created_at":1684310538,"company":"P2","price":5,"original_id":207},{"type":"bid","entity":14765,"entity_type":"player","id":208,"created_at":1684310539,"company":"P11","price":5,"original_id":208},{"type":"pass","entity":14765,"entity_type":"player","id":209,"created_at":1684310544,"original_id":209},{"type":"pass","entity":10041,"entity_type":"player","id":210,"created_at":1684316951,"original_id":210},{"type":"pass","entity":14244,"entity_type":"player","id":211,"created_at":1684317171,"original_id":211},{"type":"pass","entity":14765,"entity_type":"player","id":212,"created_at":1684317242,"original_id":212},{"type":"pass","entity":"18","entity_type":"corporation","id":213,"created_at":1684319257,"original_id":219},{"type":"pass","entity":"18","entity_type":"corporation","id":214,"created_at":1684319268,"original_id":220},{"type":"run_routes","entity":"18","entity_type":"corporation","id":215,"created_at":1684319269,"routes":[{"train":"L-0","connections":[["local","N25"]],"hexes":["N25"],"revenue":30,"revenue_str":"N25","nodes":[]}],"original_id":221},{"type":"buy_train","entity":"18","entity_type":"corporation","id":216,"created_at":1684319281,"train":"L-0","price":80,"variant":"2","exchange":"L-0","original_id":222},{"type":"pass","entity":"19","entity_type":"corporation","id":217,"created_at":1684319292,"original_id":223},{"type":"lay_tile","entity":"19","entity_type":"corporation","id":218,"created_at":1684319297,"hex":"P33","tile":"8-2","rotation":5,"original_id":224},{"type":"run_routes","entity":"19","entity_type":"corporation","id":219,"created_at":1684319301,"routes":[{"train":"L-1","connections":[["N27","O28","P29","P31"]],"hexes":["N27","P31"],"revenue":30,"revenue_str":"N27-P31","nodes":["N27-0","P31-0"]}],"original_id":225},{"type":"buy_train","entity":"19","entity_type":"corporation","id":220,"created_at":1684319309,"train":"L-1","price":80,"variant":"2","exchange":"L-1","original_id":226},{"type":"pass","entity":"19","entity_type":"corporation","id":221,"created_at":1684319314,"original_id":227},{"type":"pass","entity":"12","entity_type":"corporation","id":222,"created_at":1684330605,"original_id":228},{"type":"lay_tile","entity":"12","entity_type":"corporation","id":223,"created_at":1684330625,"hex":"L21","tile":"BC-0","rotation":0,"original_id":229},{"type":"run_routes","entity":"12","entity_type":"corporation","id":224,"created_at":1684330631,"routes":[{"train":"L-2","connections":[["L19","K20"]],"hexes":["K20","L19"],"revenue":50,"revenue_str":"K20-L19","nodes":["L19-1","K20-0"]}],"original_id":230},{"type":"pass","entity":"12","entity_type":"corporation","id":225,"created_at":1684330635,"original_id":231},{"type":"pass","entity":"11","entity_type":"corporation","id":226,"created_at":1684330736,"original_id":232},{"type":"lay_tile","entity":"11","entity_type":"corporation","id":227,"created_at":1684330752,"hex":"M20","tile":"BC-0","rotation":0,"original_id":233},{"type":"run_routes","entity":"11","entity_type":"corporation","id":228,"created_at":1684330769,"routes":[{"train":"L-3","connections":[["local","L17"]],"hexes":["L17"],"revenue":30,"revenue_str":"L17","nodes":[]}],"original_id":234},{"type":"buy_train","entity":"11","entity_type":"corporation","id":229,"created_at":1684330773,"train":"L-3","price":80,"variant":"2","exchange":"L-3","original_id":235},{"type":"pass","entity":"1","entity_type":"corporation","id":230,"created_at":1684330786,"original_id":236},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":231,"created_at":1684330794,"hex":"E4","tile":"9-2","rotation":2,"original_id":237},{"type":"run_routes","entity":"1","entity_type":"corporation","id":232,"created_at":1684330839,"routes":[{"train":"L-4","connections":[["B1","A2"]],"hexes":["A2","B1"],"revenue":50,"revenue_str":"A2-B1","nodes":["B1-0","A2-0"]},{"train":"3/2P-0","connections":[["C2","D3"],["B1","C2"]],"hexes":["D3","C2","B1"],"revenue":20,"revenue_str":"D3-C2-B1","nodes":["C2-0","D3-0","B1-0"]}],"original_id":238},{"type":"pass","entity":"1","entity_type":"corporation","id":233,"created_at":1684330848,"original_id":239},{"type":"pass","entity":"22","entity_type":"corporation","id":234,"created_at":1684332922,"original_id":240},{"type":"lay_tile","entity":"22","entity_type":"corporation","id":235,"created_at":1684332943,"hex":"N33","tile":"58-0","rotation":4,"original_id":241},{"type":"run_routes","entity":"22","entity_type":"corporation","id":236,"created_at":1684332950,"routes":[{"train":"L-5","connections":[["local","O32"]],"hexes":["O32"],"revenue":20,"revenue_str":"O32","nodes":[]}],"original_id":242},{"type":"pass","entity":"22","entity_type":"corporation","id":237,"created_at":1684332956,"original_id":243},{"type":"pass","entity":"16","entity_type":"corporation","id":238,"created_at":1684333064,"original_id":244},{"type":"pass","entity":"16","entity_type":"corporation","id":239,"created_at":1684333088,"original_id":245},{"type":"run_routes","entity":"16","entity_type":"corporation","id":240,"created_at":1684333107,"routes":[{"train":"L-6","connections":[["N25","M26"]],"hexes":["M26","N25"],"revenue":40,"revenue_str":"M26-N25","nodes":["N25-2","M26-1"]}],"original_id":246},{"type":"pass","entity":"16","entity_type":"corporation","id":241,"created_at":1684333113,"original_id":247},{"type":"pass","entity":"3","entity_type":"corporation","id":242,"created_at":1684333137,"original_id":248},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":243,"created_at":1684333150,"hex":"C6","tile":"8-3","rotation":2,"original_id":249},{"type":"run_routes","entity":"3","entity_type":"corporation","id":244,"created_at":1684333160,"routes":[{"train":"L-7","connections":[["local","E8"]],"hexes":["E8"],"revenue":20,"revenue_str":"E8","nodes":[]}],"original_id":250},{"type":"pass","entity":"3","entity_type":"corporation","id":245,"created_at":1684333174,"original_id":251},{"type":"pass","entity":"23","entity_type":"corporation","id":246,"created_at":1684333389,"original_id":252},{"type":"lay_tile","entity":"23","entity_type":"corporation","id":247,"created_at":1684333420,"hex":"L39","tile":"6-5","rotation":5,"original_id":255},{"type":"run_routes","entity":"23","entity_type":"corporation","id":248,"created_at":1684333424,"routes":[{"train":"L-8","connections":[["M36","L37"]],"hexes":["M36","L37"],"revenue":30,"revenue_str":"M36-L37","nodes":["M36-0","L37-0"]}],"original_id":256},{"type":"buy_train","entity":"23","entity_type":"corporation","id":249,"created_at":1684333428,"train":"L-8","price":80,"variant":"2","exchange":"L-8","original_id":257},{"type":"pass","entity":"5","entity_type":"corporation","id":250,"created_at":1684333471,"original_id":258},{"type":"lay_tile","entity":"5","entity_type":"corporation","id":251,"created_at":1684333493,"hex":"H21","tile":"8-4","rotation":3,"original_id":259},{"type":"run_routes","entity":"5","entity_type":"corporation","id":252,"created_at":1684333513,"routes":[{"train":"L-13","connections":[["local","G22"]],"hexes":["G22"],"revenue":20,"revenue_str":"G22","nodes":[]}],"original_id":260},{"type":"pass","entity":"5","entity_type":"corporation","id":253,"created_at":1684333522,"original_id":261},{"type":"acquire_company","entity":"FCM","entity_type":"corporation","id":254,"created_at":1684333608,"company":"P4","original_id":262},{"type":"acquire_company","entity":"FCM","entity_type":"corporation","id":255,"created_at":1684333614,"company":"P13","original_id":263},{"type":"pass","entity":"FCM","entity_type":"corporation","id":256,"created_at":1684333615,"original_id":264},{"type":"pass","entity":"FCM","entity_type":"corporation","id":257,"created_at":1684333636,"auto_actions":[{"type":"pass","entity":"FCM","entity_type":"corporation","created_at":1684333635}],"original_id":265},{"type":"run_routes","entity":"FCM","entity_type":"corporation","id":258,"created_at":1684333655,"routes":[{"train":"LP-0","connections":[["local","N23"]],"hexes":["N23"],"revenue":40,"revenue_str":"N23","nodes":[]}],"original_id":266},{"type":"dividend","entity":"FCM","entity_type":"corporation","id":259,"created_at":1684333659,"kind":"payout","original_id":267},{"type":"buy_train","entity":"FCM","entity_type":"corporation","id":260,"created_at":1684333665,"train":"L-19","price":120,"variant":"2","original_id":268},{"type":"pass","entity":"FCM","entity_type":"corporation","id":261,"created_at":1684333670,"original_id":269},{"type":"acquire_company","entity":"MC","entity_type":"corporation","id":262,"created_at":1684334997,"company":"P2","original_id":270},{"type":"acquire_company","entity":"MC","entity_type":"corporation","id":263,"created_at":1684335000,"company":"P11","original_id":271},{"type":"pass","entity":"MC","entity_type":"corporation","id":264,"created_at":1684335006,"original_id":272},{"type":"lay_tile","entity":"MC","entity_type":"corporation","id":265,"created_at":1684337175,"hex":"M22","tile":"BC-0","rotation":0,"original_id":283},{"type":"pass","entity":"MC","entity_type":"corporation","id":266,"created_at":1684337212,"auto_actions":[{"type":"pass","entity":"MC","entity_type":"corporation","created_at":1684337209}],"original_id":284},{"type":"buy_train","entity":"MC","entity_type":"corporation","id":267,"created_at":1684337232,"train":"L-20","price":120,"variant":"2","original_id":285},{"type":"pass","entity":"MC","entity_type":"corporation","id":268,"created_at":1684337235,"original_id":286},{"type":"acquire_company","entity":"18","entity_type":"corporation","id":269,"created_at":1684339081,"company":"P12","original_id":287},{"type":"pass","entity":"18","entity_type":"corporation","id":270,"created_at":1684339095,"original_id":288},{"type":"run_routes","entity":"18","entity_type":"corporation","id":271,"created_at":1684339114,"routes":[{"train":"L-0","connections":[["N25","N23"]],"hexes":["N23","N25"],"revenue":70,"revenue_str":"N23-N25","nodes":["N25-1","N23-4"]}],"original_id":289},{"type":"pass","entity":"18","entity_type":"corporation","id":272,"created_at":1684339120,"original_id":290},{"type":"pass","entity":"19","entity_type":"corporation","id":273,"created_at":1684339125,"original_id":291},{"type":"run_routes","entity":"19","entity_type":"corporation","id":274,"created_at":1684339145,"routes":[{"train":"L-1","connections":[["N27","N25"]],"hexes":["N25","N27"],"revenue":50,"revenue_str":"N25-N27","nodes":["N27-0","N25-1"]}],"original_id":292},{"type":"pass","entity":"19","entity_type":"corporation","id":275,"created_at":1684339147,"original_id":293},{"type":"lay_tile","entity":"12","entity_type":"corporation","id":276,"created_at":1684340675,"hex":"L21","tile":"BC-0","rotation":0,"original_id":294},{"type":"run_routes","entity":"12","entity_type":"corporation","id":277,"created_at":1684340685,"routes":[{"train":"L-2","connections":[["L19","K20"]],"hexes":["L19","K20"],"revenue":50,"revenue_str":"L19-K20","nodes":["L19-1","K20-0"]}],"original_id":295},{"type":"pass","entity":"12","entity_type":"corporation","id":278,"created_at":1684340688,"original_id":296},{"type":"lay_tile","entity":"11","entity_type":"corporation","id":279,"created_at":1684341059,"hex":"K16","tile":"BC-0","rotation":0,"original_id":299},{"type":"run_routes","entity":"11","entity_type":"corporation","id":280,"created_at":1684341093,"routes":[{"train":"L-3","connections":[["L17","M18","L19"]],"hexes":["L19","L17"],"revenue":60,"revenue_str":"L19-L17","nodes":["L17-0","L19-0"]}],"original_id":300},{"type":"pass","entity":"11","entity_type":"corporation","id":281,"created_at":1684341100,"original_id":301},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":282,"created_at":1684341110,"hex":"F5","tile":"4-4","rotation":2,"original_id":302},{"type":"run_routes","entity":"1","entity_type":"corporation","id":283,"created_at":1684341136,"routes":[{"train":"L-4","connections":[["B1","A2"]],"hexes":["B1","A2"],"revenue":50,"revenue_str":"B1-A2","nodes":["B1-0","A2-0"]},{"train":"3/2P-0","connections":[["C2","D3"],["B1","C2"]],"hexes":["D3","C2","B1"],"revenue":20,"revenue_str":"D3-C2-B1","nodes":["C2-0","D3-0","B1-0"]}],"original_id":303},{"type":"pass","entity":"1","entity_type":"corporation","id":284,"created_at":1684341161,"original_id":304},{"type":"lay_tile","entity":"22","entity_type":"corporation","id":285,"created_at":1684347367,"hex":"N35","tile":"9-3","rotation":1,"original_id":305},{"type":"run_routes","entity":"22","entity_type":"corporation","id":286,"created_at":1684347375,"routes":[{"train":"L-5","connections":[["local","O32"]],"hexes":["O32"],"revenue":20,"revenue_str":"O32","nodes":[]}],"original_id":306},{"type":"buy_train","entity":"22","entity_type":"corporation","id":287,"created_at":1684347380,"train":"L-5","price":80,"variant":"2","exchange":"L-5","original_id":307},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":288,"created_at":1684355168,"hex":"K24","tile":"57-2","rotation":2,"original_id":308},{"type":"run_routes","entity":"16","entity_type":"corporation","id":289,"created_at":1684355255,"routes":[{"train":"L-6","connections":[["N25","M26"]],"hexes":["M26","N25"],"revenue":40,"revenue_str":"M26-N25","nodes":["N25-2","M26-1"]}],"original_id":309},{"type":"pass","entity":"16","entity_type":"corporation","id":290,"created_at":1684355261,"original_id":310},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":291,"created_at":1684355272,"hex":"B5","tile":"8-5","rotation":5,"original_id":311},{"type":"run_routes","entity":"3","entity_type":"corporation","id":292,"created_at":1684355281,"routes":[{"train":"L-7","connections":[["local","E8"]],"hexes":["E8"],"revenue":20,"revenue_str":"E8","nodes":[]}],"original_id":312},{"type":"buy_train","entity":"3","entity_type":"corporation","id":293,"created_at":1684355283,"train":"L-7","price":80,"variant":"2","exchange":"L-7","original_id":313},{"type":"pass","entity":"23","entity_type":"corporation","id":294,"created_at":1684355816,"original_id":314},{"type":"run_routes","entity":"23","entity_type":"corporation","id":295,"created_at":1684355825,"routes":[{"train":"L-8","connections":[["L39","L37"]],"hexes":["L37","L39"],"revenue":40,"revenue_str":"L37-L39","nodes":["L39-0","L37-0"]}],"original_id":315},{"type":"pass","entity":"23","entity_type":"corporation","id":296,"created_at":1684355834,"original_id":316},{"type":"lay_tile","entity":"5","entity_type":"corporation","id":297,"created_at":1684355967,"hex":"F19","tile":"9-4","rotation":1,"original_id":317},{"type":"run_routes","entity":"5","entity_type":"corporation","id":298,"created_at":1684355972,"routes":[{"train":"L-13","connections":[["local","G22"]],"hexes":["G22"],"revenue":20,"revenue_str":"G22","nodes":[]}],"original_id":318},{"type":"pass","entity":"5","entity_type":"corporation","id":299,"created_at":1684355983,"original_id":319},{"type":"pass","entity":"FCM","entity_type":"corporation","id":300,"created_at":1684357047,"original_id":320},{"type":"pass","entity":"FCM","entity_type":"corporation","id":301,"created_at":1684357058,"auto_actions":[{"type":"pass","entity":"FCM","entity_type":"corporation","created_at":1684357185}],"original_id":321},{"type":"run_routes","entity":"FCM","entity_type":"corporation","id":302,"created_at":1684357073,"routes":[{"train":"LP-0","connections":[["local","N23"]],"hexes":["N23"],"revenue":40,"revenue_str":"N23","nodes":[]},{"train":"L-19","connections":[["N23","N25"]],"hexes":["N25","N23"],"revenue":70,"revenue_str":"N25-N23","nodes":["N23-4","N25-1"]}],"original_id":322},{"type":"choose","entity":"FCM","entity_type":"corporation","id":303,"created_at":1684357095,"choice":"payout","original_id":323},{"type":"dividend","entity":"FCM","entity_type":"corporation","id":304,"created_at":1684357101,"kind":"payout","original_id":324},{"type":"pass","entity":"FCM","entity_type":"corporation","id":305,"created_at":1684357110,"original_id":325},{"type":"merge","entity":"FCM","entity_type":"corporation","id":306,"created_at":1684357125,"corporation":"18","original_id":326},{"type":"choose","entity":"FCM","entity_type":"corporation","id":307,"created_at":1684357174,"choice":"two_shares","original_id":327},{"type":"choose","entity":"FCM","entity_type":"corporation","id":308,"created_at":1684357208,"choice":"replace","original_id":330},{"type":"pass","entity":"FCM","entity_type":"corporation","id":309,"created_at":1684357232,"original_id":331},{"type":"pass","entity":"MC","entity_type":"corporation","id":310,"created_at":1684357316,"original_id":332},{"type":"lay_tile","entity":"P11","entity_type":"company","id":311,"created_at":1684357510,"hex":"M22","tile":"BC-0","rotation":0,"original_id":341},{"type":"lay_tile","entity":"MC","entity_type":"corporation","id":312,"created_at":1684357525,"hex":"M22","tile":"1-0","rotation":1,"original_id":342},{"type":"lay_tile","entity":"P11","entity_type":"company","id":313,"created_at":1684357541,"hex":"M20","tile":"BC-0","rotation":0,"original_id":343},{"type":"pass","entity":"MC","entity_type":"corporation","id":314,"created_at":1684357552,"auto_actions":[{"type":"pass","entity":"MC","entity_type":"corporation","created_at":1684357552}],"original_id":344},{"type":"run_routes","entity":"MC","entity_type":"corporation","id":315,"created_at":1684357684,"routes":[{"train":"2P-0","connections":[["N23","M22"]],"hexes":["M22","N23"],"revenue":50,"revenue_str":"M22-N23","nodes":["N23-2","M22-1"]}],"original_id":345},{"type":"dividend","entity":"MC","entity_type":"corporation","id":316,"created_at":1684357799,"kind":"payout","original_id":350},{"type":"pass","entity":"MC","entity_type":"corporation","id":317,"created_at":1684357811,"auto_actions":[{"type":"pass","entity":"MC","entity_type":"corporation","created_at":1684357811}],"original_id":351},{"type":"pass","entity":"MC","entity_type":"corporation","id":318,"created_at":1684357878,"original_id":352},{"type":"par","entity":10041,"entity_type":"player","id":319,"created_at":1684376031,"corporation":"MIR","share_price":"70,0,11","original_id":353},{"type":"buy_shares","entity":14765,"entity_type":"player","id":320,"created_at":1684389590,"shares":["MC_3"],"percent":10,"share_price":false,"original_id":354},{"type":"bid","entity":14244,"entity_type":"player","id":321,"created_at":1684391364,"company":"P8","price":0,"original_id":355},{"type":"bid","entity":14244,"entity_type":"player","id":322,"created_at":1684391476,"company":"C4","price":100,"original_id":356},{"type":"pass","entity":14244,"entity_type":"player","id":323,"created_at":1684391488,"original_id":357},{"type":"buy_shares","entity":10041,"entity_type":"player","id":324,"created_at":1684396276,"shares":["MIR_1"],"percent":10,"share_price":false,"original_id":358},{"type":"buy_shares","entity":14765,"entity_type":"player","id":325,"created_at":1684399063,"shares":["MC_4"],"percent":10,"share_price":false,"original_id":359},{"type":"buy_shares","entity":14244,"entity_type":"player","id":326,"created_at":1684400937,"shares":["MC_5"],"percent":10,"share_price":false,"original_id":360},{"type":"buy_shares","entity":10041,"entity_type":"player","id":327,"created_at":1684405564,"shares":["MIR_2"],"percent":10,"share_price":false,"original_id":361},{"type":"bid","entity":14765,"entity_type":"player","id":328,"created_at":1684405826,"company":"P8","price":5,"original_id":366},{"type":"bid","entity":14765,"entity_type":"player","id":329,"created_at":1684405829,"company":"P10","price":5,"original_id":367},{"type":"pass","entity":14765,"entity_type":"player","id":330,"created_at":1684405833,"original_id":368},{"type":"bid","entity":14244,"entity_type":"player","id":331,"created_at":1684406239,"company":"P8","price":10,"original_id":369},{"type":"pass","entity":14244,"entity_type":"player","id":332,"created_at":1684406242,"original_id":370},{"type":"buy_shares","entity":10041,"entity_type":"player","id":333,"created_at":1684411478,"shares":["MC_6"],"percent":10,"share_price":false,"original_id":371},{"type":"bid","entity":14765,"entity_type":"player","id":334,"created_at":1684411547,"company":"P7","price":5,"original_id":372},{"type":"pass","entity":14765,"entity_type":"player","id":335,"created_at":1684411551,"original_id":373},{"type":"pass","entity":14244,"entity_type":"player","id":336,"created_at":1684411984,"original_id":374},{"type":"pass","entity":10041,"entity_type":"player","id":337,"created_at":1684413772,"original_id":375},{"type":"buy_shares","entity":14765,"entity_type":"player","id":338,"created_at":1684413800,"shares":["NDEM_0"],"percent":10,"share_price":false,"original_id":376},{"type":"program_share_pass","entity":14244,"entity_type":"player","id":339,"created_at":1684414331,"auto_actions":[{"type":"pass","entity":14244,"entity_type":"player","created_at":1684414331}],"unconditional":false,"indefinite":false,"original_id":377},{"type":"pass","entity":10041,"entity_type":"player","id":340,"created_at":1684419246,"original_id":378},{"type":"pass","entity":14765,"entity_type":"player","id":341,"created_at":1684421971,"original_id":379},{"type":"choose","entity":14765,"entity_type":"player","id":342,"created_at":1684422049,"choice":"double","original_id":380},{"type":"acquire_company","entity":"19","entity_type":"corporation","id":343,"created_at":1684425800,"company":"P8","original_id":381},{"type":"pass","entity":"19","entity_type":"corporation","id":344,"created_at":1684425805,"original_id":382},{"type":"lay_tile","entity":"19","entity_type":"corporation","id":345,"created_at":1684425826,"hex":"N27","tile":"15-0","rotation":5,"original_id":383},{"type":"pass","entity":"19","entity_type":"corporation","id":346,"created_at":1684425845,"original_id":384},{"type":"run_routes","entity":"19","entity_type":"corporation","id":347,"created_at":1684425855,"routes":[{"train":"L-1","connections":[["N27","N25"]],"hexes":["N25","N27"],"revenue":60,"revenue_str":"N25-N27","nodes":["N27-0","N25-1"]}],"original_id":385},{"type":"pass","entity":"19","entity_type":"corporation","id":348,"created_at":1684425863,"original_id":386},{"type":"pass","entity":"12","entity_type":"corporation","id":349,"created_at":1684431410,"original_id":387},{"type":"lay_tile","entity":"12","entity_type":"corporation","id":350,"created_at":1684431446,"hex":"K20","tile":"14-0","rotation":0,"original_id":388},{"type":"run_routes","entity":"12","entity_type":"corporation","id":351,"created_at":1684431449,"routes":[{"train":"L-2","connections":[["L19","K20"]],"hexes":["L19","K20"],"revenue":60,"revenue_str":"L19-K20","nodes":["L19-1","K20-0"]}],"original_id":389},{"type":"pass","entity":"12","entity_type":"corporation","id":352,"created_at":1684431464,"original_id":390},{"type":"pass","entity":"11","entity_type":"corporation","id":353,"created_at":1684431528,"original_id":391},{"type":"lay_tile","entity":"11","entity_type":"corporation","id":354,"created_at":1684431543,"hex":"M20","tile":"8-6","rotation":2,"original_id":392},{"type":"run_routes","entity":"11","entity_type":"corporation","id":355,"created_at":1684431614,"routes":[{"train":"L-3","connections":[["L17","M18","L19"]],"hexes":["L17","L19"],"revenue":60,"revenue_str":"L17-L19","nodes":["L17-0","L19-0"]}],"original_id":393},{"type":"pass","entity":"11","entity_type":"corporation","id":356,"created_at":1684431621,"original_id":394},{"type":"pass","entity":"1","entity_type":"corporation","id":357,"created_at":1684431634,"original_id":395},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":358,"created_at":1684431650,"hex":"G6","tile":"6-6","rotation":2,"original_id":396},{"type":"run_routes","entity":"1","entity_type":"corporation","id":359,"created_at":1684431696,"routes":[{"train":"L-4","connections":[["B1","A2"]],"hexes":["B1","A2"],"revenue":60,"revenue_str":"B1-A2","nodes":["B1-0","A2-0"]},{"train":"3/2P-0","connections":[["C2","D3"],["B1","C2"]],"hexes":["D3","C2","B1"],"revenue":20,"revenue_str":"D3-C2-B1","nodes":["C2-0","D3-0","B1-0"]}],"original_id":397},{"type":"pass","entity":"1","entity_type":"corporation","id":360,"created_at":1684431700,"original_id":398},{"type":"pass","entity":"22","entity_type":"corporation","id":361,"created_at":1684436629,"original_id":399},{"type":"lay_tile","entity":"22","entity_type":"corporation","id":362,"created_at":1684436669,"hex":"O32","tile":"15-1","rotation":3,"original_id":400},{"type":"run_routes","entity":"22","entity_type":"corporation","id":363,"created_at":1684436680,"routes":[{"train":"L-5","connections":[["O32","N33"]],"hexes":["N33","O32"],"revenue":40,"revenue_str":"N33-O32","nodes":["O32-0","N33-0"]}],"original_id":401},{"type":"pass","entity":"22","entity_type":"corporation","id":364,"created_at":1684436690,"original_id":402},{"type":"pass","entity":"16","entity_type":"corporation","id":365,"created_at":1684437029,"original_id":403},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":366,"created_at":1684437045,"hex":"K24","tile":"619-0","rotation":5,"original_id":404},{"type":"run_routes","entity":"16","entity_type":"corporation","id":367,"created_at":1684437182,"routes":[{"train":"L-6","connections":[["N25","M26"]],"hexes":["M26","N25"],"revenue":40,"revenue_str":"M26-N25","nodes":["N25-2","M26-1"]}],"original_id":405},{"type":"pass","entity":"16","entity_type":"corporation","id":368,"created_at":1684437193,"original_id":406},{"type":"pass","entity":"3","entity_type":"corporation","id":369,"created_at":1684437305,"original_id":407},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":370,"created_at":1684437316,"hex":"D9","tile":"57-3","rotation":2,"original_id":408},{"type":"run_routes","entity":"3","entity_type":"corporation","id":371,"created_at":1684437336,"routes":[{"train":"L-7","connections":[["E8","D7","C8"]],"hexes":["C8","E8"],"revenue":60,"revenue_str":"C8-E8","nodes":["E8-0","C8-0"]}],"original_id":409},{"type":"pass","entity":"3","entity_type":"corporation","id":372,"created_at":1684437343,"original_id":410},{"type":"pass","entity":"23","entity_type":"corporation","id":373,"created_at":1684441384,"original_id":411},{"type":"lay_tile","entity":"23","entity_type":"corporation","id":374,"created_at":1684441394,"hex":"N35","tile":"83-0","rotation":4,"original_id":412},{"type":"run_routes","entity":"23","entity_type":"corporation","id":375,"created_at":1684441406,"routes":[{"train":"L-8","connections":[["L39","L37"]],"hexes":["L39","L37"],"revenue":40,"revenue_str":"L39-L37","nodes":["L39-0","L37-0"]}],"original_id":413},{"type":"pass","entity":"23","entity_type":"corporation","id":376,"created_at":1684441409,"original_id":414},{"type":"pass","entity":"5","entity_type":"corporation","id":377,"created_at":1684442160,"original_id":415},{"type":"lay_tile","entity":"5","entity_type":"corporation","id":378,"created_at":1684442175,"hex":"G22","tile":"14-1","rotation":2,"original_id":416},{"type":"sell_shares","entity":10041,"entity_type":"player","id":379,"created_at":1684442239,"shares":["MC_2"],"percent":10,"original_id":417},{"type":"buy_train","entity":"5","entity_type":"corporation","id":380,"created_at":1684442254,"train":"3-1","price":200,"variant":"3","original_id":418},{"type":"acquire_company","entity":"FCM","entity_type":"corporation","id":381,"created_at":1684443865,"company":"P18","original_id":419},{"type":"pass","entity":"FCM","entity_type":"corporation","id":382,"created_at":1684443867,"original_id":420},{"type":"lay_tile","entity":"P13","entity_type":"company","id":383,"created_at":1684443925,"hex":"M24","tile":"8-7","rotation":4,"original_id":421},{"type":"lay_tile","entity":"FCM","entity_type":"corporation","id":384,"created_at":1684443967,"hex":"O26","tile":"BC-0","rotation":0,"original_id":422},{"type":"pass","entity":"FCM","entity_type":"corporation","id":385,"created_at":1684443979,"auto_actions":[{"type":"hex_token","entity":"FCM","entity_type":"corporation","created_at":1684444107,"hex":"N27","token_type":"destination"}],"original_id":423},{"type":"pass","entity":"FCM","entity_type":"corporation","user":14244,"created_at":1685195089,"original_id":null,"id":386},{"type":"run_routes","entity":"FCM","entity_type":"corporation","id":387,"created_at":1684444010,"routes":[{"train":"LP-0","connections":[["local","N23"]],"hexes":["N23"],"revenue":40,"revenue_str":"N23","nodes":[]},{"train":"L-19","connections":[["N23","N25"]],"hexes":["N25","N23"],"revenue":70,"revenue_str":"N25-N23","nodes":["N23-4","N25-1"]},{"train":"L-0","connections":[["N25","N27"]],"hexes":["N27","N25"],"revenue":60,"revenue_str":"N27-N25","nodes":["N25-1","N27-0"]}],"original_id":424},{"type":"dividend","entity":"FCM","entity_type":"corporation","id":388,"created_at":1684444015,"kind":"payout","original_id":425},{"type":"buy_train","entity":"FCM","entity_type":"corporation","id":389,"created_at":1684444036,"train":"3-2","price":200,"variant":"3","original_id":426},{"type":"pass","entity":"FCM","entity_type":"corporation","id":390,"created_at":1684444042,"original_id":427},{"type":"pass","entity":"FCM","entity_type":"corporation","id":391,"created_at":1684444050,"original_id":428},{"type":"pass","entity":"FCM","entity_type":"corporation","id":392,"created_at":1684444064,"original_id":429},{"type":"pass","entity":"MIR","entity_type":"corporation","id":393,"created_at":1684502446,"original_id":430},{"type":"lay_tile","entity":"MIR","entity_type":"corporation","id":394,"created_at":1684502462,"auto_actions":[{"type":"pass","entity":"MIR","entity_type":"corporation","created_at":1684502461}],"hex":"F21","tile":"622-0","rotation":1,"original_id":431},{"type":"pass","entity":"MIR","entity_type":"corporation","id":395,"created_at":1684502468,"original_id":432},{"type":"buy_train","entity":"MIR","entity_type":"corporation","id":396,"created_at":1684502473,"train":"3-3","price":200,"variant":"3","original_id":433},{"type":"pass","entity":"MIR","entity_type":"corporation","id":397,"created_at":1684502485,"original_id":434},{"type":"acquire_company","entity":"MC","entity_type":"corporation","id":398,"created_at":1684502555,"company":"P10","original_id":435},{"type":"acquire_company","entity":"MC","entity_type":"corporation","id":399,"created_at":1684502563,"company":"P7","original_id":436},{"type":"pass","entity":"MC","entity_type":"corporation","id":400,"created_at":1684502572,"original_id":437},{"type":"lay_tile","entity":"P11","entity_type":"company","id":401,"created_at":1684502620,"hex":"L19","tile":"BC-0","rotation":0,"original_id":438},{"type":"lay_tile","entity":"P10","entity_type":"company","id":402,"created_at":1684502632,"hex":"L19","tile":"BC-0","rotation":0,"original_id":439},{"type":"lay_tile","entity":"MC","entity_type":"corporation","id":403,"created_at":1684502654,"hex":"L19","tile":"207-0","rotation":3,"original_id":440},{"type":"lay_tile","entity":"P10","entity_type":"company","id":404,"created_at":1684502679,"hex":"K22","tile":"BC-0","rotation":0,"original_id":441},{"type":"lay_tile","entity":"P10","entity_type":"company","id":405,"created_at":1684502694,"auto_actions":[{"type":"pass","entity":"MC","entity_type":"corporation","created_at":1684502692}],"hex":"K22","tile":"BC-0","rotation":0,"original_id":442},{"type":"place_token","entity":"MC","entity_type":"corporation","id":406,"created_at":1684502802,"city":"14-0-0","slot":1,"tokener":"MC","original_id":445},{"type":"run_routes","entity":"MC","entity_type":"corporation","id":407,"created_at":1684502860,"routes":[{"train":"2P-0","connections":[["K20","L19"]],"hexes":["L19","K20"],"revenue":70,"revenue_str":"L19-K20","nodes":["K20-0","L19-0"]},{"train":"L-20","connections":[["N23","M22"]],"hexes":["M22","N23"],"revenue":50,"revenue_str":"M22-N23","nodes":["N23-2","M22-1"]}],"original_id":446},{"type":"dividend","entity":"MC","entity_type":"corporation","id":408,"created_at":1684502864,"kind":"payout","original_id":447},{"type":"buy_train","entity":"MC","entity_type":"corporation","id":409,"created_at":1684502888,"train":"3-4","price":200,"variant":"3","original_id":448},{"type":"pass","entity":"MC","entity_type":"corporation","id":410,"created_at":1684502894,"original_id":449},{"type":"merge","entity":"MC","entity_type":"corporation","id":411,"created_at":1684502921,"corporation":"11","original_id":450},{"type":"choose","entity":"MC","entity_type":"corporation","id":412,"created_at":1684503022,"choice":"two_shares","original_id":451},{"type":"choose","entity":"MC","entity_type":"corporation","id":413,"created_at":1684503060,"choice":"replace","original_id":452},{"type":"pass","entity":"MC","entity_type":"corporation","id":414,"created_at":1684503157,"original_id":453},{"type":"lay_tile","entity":"NDEM","entity_type":"corporation","id":415,"created_at":1684503168,"hex":"J13","tile":"57-4","rotation":1,"original_id":454},{"type":"lay_tile","entity":"NDEM","entity_type":"corporation","id":416,"created_at":1684503203,"hex":"J15","tile":"6-7","rotation":5,"original_id":457},{"type":"run_routes","entity":"NDEM","entity_type":"corporation","id":417,"created_at":1684503222,"routes":[{"train":"L-17","connections":[["J13","J15"]],"hexes":["J15","J13"],"revenue":40,"revenue_str":"J15-J13","nodes":["J13-0","J15-0"]}],"original_id":458},{"type":"pass","entity":"19","entity_type":"corporation","id":418,"created_at":1684506197,"original_id":459},{"type":"lay_tile","entity":"19","entity_type":"corporation","id":419,"created_at":1684506244,"hex":"O26","tile":"8-8","rotation":3,"original_id":460},{"type":"pass","entity":"19","entity_type":"corporation","id":420,"created_at":1684506251,"original_id":461},{"type":"run_routes","entity":"19","entity_type":"corporation","id":421,"created_at":1684506255,"routes":[{"train":"L-1","connections":[["N27","N25"]],"hexes":["N27","N25"],"revenue":60,"revenue_str":"N27-N25","nodes":["N27-0","N25-1"]}],"original_id":462},{"type":"pass","entity":"19","entity_type":"corporation","id":422,"created_at":1684506260,"original_id":463},{"type":"pass","entity":"12","entity_type":"corporation","id":423,"created_at":1684526991,"original_id":464},{"type":"lay_tile","entity":"12","entity_type":"corporation","id":424,"created_at":1684527014,"hex":"L21","tile":"8-9","rotation":5,"original_id":465},{"type":"run_routes","entity":"12","entity_type":"corporation","id":425,"created_at":1684527027,"routes":[{"train":"L-2","connections":[["L19","K20"]],"hexes":["L19","K20"],"revenue":70,"revenue_str":"L19-K20","nodes":["L19-0","K20-0"]}],"original_id":466},{"type":"pass","entity":"12","entity_type":"corporation","id":426,"created_at":1684527032,"original_id":467},{"type":"pass","entity":"1","entity_type":"corporation","id":427,"created_at":1684527227,"original_id":468},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":428,"created_at":1684527260,"hex":"B1","tile":"405-0","rotation":4,"original_id":469},{"type":"run_routes","entity":"1","entity_type":"corporation","id":429,"created_at":1684527731,"routes":[{"train":"L-4","connections":[["A2","B1"]],"hexes":["B1","A2"],"revenue":80,"revenue_str":"B1-A2","nodes":["A2-0","B1-0"]},{"train":"3/2P-0","connections":[["C2","D3"],["B1","C2"]],"hexes":["D3","C2","B1"],"revenue":30,"revenue_str":"D3-C2-B1","nodes":["C2-0","D3-0","B1-0"]}],"original_id":470},{"type":"pass","entity":"1","entity_type":"corporation","id":430,"created_at":1684527748,"original_id":471},{"type":"acquire_company","entity":"22","entity_type":"corporation","id":431,"created_at":1684528728,"company":"P5","original_id":472},{"type":"pass","entity":"22","entity_type":"corporation","id":432,"created_at":1684528729,"original_id":473},{"type":"lay_tile","entity":"22","entity_type":"corporation","id":433,"created_at":1684528741,"hex":"P31","tile":"142-0","rotation":4,"original_id":474},{"type":"choose","entity":"22","entity_type":"corporation","id":434,"created_at":1684528765,"choice":"0","original_id":475},{"type":"run_routes","entity":"22","entity_type":"corporation","id":435,"created_at":1684528777,"routes":[{"train":"L-5","connections":[["O32","P31"],["O32","N33"],["N33","N35","M36"],["M36","L37"]],"hexes":["P31","O32","N33","M36","L37"],"revenue":80,"revenue_str":"P31-O32-N33-M36-L37","nodes":["O32-0","P31-0","N33-0","M36-0","L37-0"]}],"original_id":476},{"type":"pass","entity":"22","entity_type":"corporation","id":436,"created_at":1684528791,"original_id":477},{"type":"pass","entity":"16","entity_type":"corporation","id":437,"created_at":1684528921,"original_id":478},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":438,"created_at":1684528929,"hex":"K22","tile":"9-5","rotation":1,"original_id":479},{"type":"run_routes","entity":"16","entity_type":"corporation","id":439,"created_at":1684528961,"routes":[{"train":"L-6","connections":[["N25","M26"]],"hexes":["M26","N25"],"revenue":40,"revenue_str":"M26-N25","nodes":["N25-2","M26-1"]}],"original_id":480},{"type":"pass","entity":"16","entity_type":"corporation","id":440,"created_at":1684529001,"original_id":481},{"type":"pass","entity":"3","entity_type":"corporation","id":441,"created_at":1684529051,"original_id":482},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":442,"created_at":1684529071,"hex":"B3","tile":"57-5","rotation":1,"original_id":483},{"type":"run_routes","entity":"3","entity_type":"corporation","id":443,"created_at":1684529101,"routes":[{"train":"L-7","connections":[["E8","D7","C8"]],"hexes":["E8","C8"],"revenue":60,"revenue_str":"E8-C8","nodes":["E8-0","C8-0"]}],"original_id":484},{"type":"pass","entity":"3","entity_type":"corporation","id":444,"created_at":1684529107,"original_id":485},{"type":"pass","entity":"23","entity_type":"corporation","id":445,"created_at":1684533600,"original_id":486},{"type":"lay_tile","entity":"23","entity_type":"corporation","id":446,"created_at":1684533615,"hex":"L37","tile":"405-1","rotation":5,"original_id":487},{"type":"run_routes","entity":"23","entity_type":"corporation","id":447,"created_at":1684533623,"routes":[{"train":"L-8","connections":[["L39","L37"]],"hexes":["L39","L37"],"revenue":60,"revenue_str":"L39-L37","nodes":["L39-0","L37-0"]}],"original_id":488},{"type":"pass","entity":"23","entity_type":"corporation","id":448,"created_at":1684533630,"original_id":489},{"type":"pass","entity":"5","entity_type":"corporation","id":449,"created_at":1684554507,"original_id":490},{"type":"lay_tile","entity":"5","entity_type":"corporation","id":450,"created_at":1684554533,"hex":"J23","tile":"BC-0","rotation":0,"original_id":491},{"type":"run_routes","entity":"5","entity_type":"corporation","id":451,"created_at":1684554549,"routes":[{"train":"3-1","connections":[["F21","F23"],["G22","F21"]],"hexes":["F23","F21","G22"],"revenue":110,"revenue_str":"F23-F21-G22","nodes":["F21-0","F23-0","G22-0"]}],"original_id":492},{"type":"pass","entity":"5","entity_type":"corporation","id":452,"created_at":1684554568,"original_id":493},{"type":"pass","entity":"FCM","entity_type":"corporation","id":453,"created_at":1684572433,"original_id":494},{"type":"lay_tile","entity":"FCM","entity_type":"corporation","id":454,"created_at":1684572447,"hex":"P27","tile":"57-0","rotation":2,"original_id":495},{"type":"pass","entity":"FCM","entity_type":"corporation","id":455,"created_at":1684572470,"original_id":496},{"type":"pass","entity":"FCM","entity_type":"corporation","id":456,"created_at":1684572483,"original_id":497},{"type":"run_routes","entity":"FCM","entity_type":"corporation","id":457,"created_at":1684572541,"routes":[{"train":"LP-0","connections":[["local","N23"]],"hexes":["N23"],"revenue":40,"revenue_str":"N23","nodes":[]},{"train":"L-19","connections":[["N23","N25"]],"hexes":["N23","N25"],"revenue":70,"revenue_str":"N23-N25","nodes":["N23-4","N25-1"]},{"train":"L-0","connections":[["N25","N27"]],"hexes":["N25","N27"],"revenue":60,"revenue_str":"N25-N27","nodes":["N25-1","N27-0"]},{"train":"3-2","connections":[["M26","M24","N23"],["N27","M26"]],"hexes":["N23","M26","N27"],"revenue":80,"revenue_str":"N23-M26-N27","nodes":["M26-0","N23-3","N27-0"]}],"original_id":498},{"type":"choose","entity":"FCM","entity_type":"corporation","id":458,"created_at":1684572559,"choice":"payout","original_id":499},{"type":"dividend","entity":"FCM","entity_type":"corporation","id":459,"created_at":1684572569,"kind":"payout","original_id":500},{"type":"pass","entity":"FCM","entity_type":"corporation","id":460,"created_at":1684572598,"original_id":501},{"type":"pass","entity":"FCM","entity_type":"corporation","id":461,"created_at":1684572660,"original_id":502},{"type":"pass","entity":"FCM","entity_type":"corporation","id":462,"created_at":1684572663,"original_id":503},{"type":"pass","entity":"MC","entity_type":"corporation","id":463,"created_at":1684572978,"original_id":504},{"type":"lay_tile","entity":"MC","entity_type":"corporation","id":464,"created_at":1684573016,"hex":"K16","tile":"9-6","rotation":2,"original_id":505},{"type":"lay_tile","entity":"MC","entity_type":"corporation","id":465,"created_at":1684573177,"auto_actions":[{"type":"pass","entity":"MC","entity_type":"corporation","created_at":1684573177}],"hex":"L17","tile":"BC-0","rotation":0,"original_id":506},{"type":"run_routes","entity":"MC","entity_type":"corporation","id":466,"created_at":1684573325,"routes":[{"train":"2P-0","connections":[["L19","K20"]],"hexes":["K20","L19"],"revenue":70,"revenue_str":"K20-L19","nodes":["L19-0","K20-0"]},{"train":"L-20","connections":[["L19","M18","L17"]],"hexes":["L17","L19"],"revenue":70,"revenue_str":"L17-L19","nodes":["L19-0","L17-0"]},{"train":"3-4","connections":[["M22","M20","L19"],["N23","M22"]],"hexes":["L19","M22","N23"],"revenue":90,"revenue_str":"L19-M22-N23","nodes":["M22-1","L19-0","N23-2"]},{"train":"L-3","connections":[["K20","K22","K24"]],"hexes":["K24","K20"],"revenue":60,"revenue_str":"K24-K20","nodes":["K20-0","K24-0"]}],"original_id":507},{"type":"choose","entity":"MC","entity_type":"corporation","id":467,"created_at":1684573355,"choice":"withhold","original_id":508},{"type":"dividend","entity":"MC","entity_type":"corporation","id":468,"created_at":1684573377,"kind":"half","original_id":509},{"type":"pass","entity":"MC","entity_type":"corporation","id":469,"created_at":1684573416,"original_id":510},{"type":"merge","entity":"MC","entity_type":"corporation","id":470,"created_at":1684573425,"corporation":"16","original_id":511},{"type":"choose","entity":"MC","entity_type":"corporation","id":471,"created_at":1684573435,"choice":"money","original_id":512},{"type":"choose","entity":"MC","entity_type":"corporation","id":472,"created_at":1684573640,"choice":"replace","original_id":513},{"type":"pass","entity":"MC","entity_type":"corporation","id":473,"created_at":1684574175,"original_id":514},{"type":"acquire_company","entity":"MIR","entity_type":"corporation","id":474,"created_at":1684578934,"company":"P14","original_id":515},{"type":"pass","entity":"MIR","entity_type":"corporation","id":475,"created_at":1684578937,"original_id":516},{"type":"lay_tile","entity":"MIR","entity_type":"corporation","id":476,"created_at":1684578961,"hex":"J23","tile":"4-5","rotation":2,"original_id":517},{"type":"pass","entity":"MIR","entity_type":"corporation","id":477,"created_at":1684578998,"auto_actions":[{"type":"pass","entity":"MIR","entity_type":"corporation","created_at":1684578996}],"original_id":518},{"type":"run_routes","entity":"MIR","entity_type":"corporation","id":478,"created_at":1684579013,"routes":[{"train":"3-3","connections":[["F21","F23"],["G22","F21"]],"hexes":["F23","F21","G22"],"revenue":110,"revenue_str":"F23-F21-G22","nodes":["F21-0","F23-0","G22-0"]}],"original_id":519},{"type":"dividend","entity":"MIR","entity_type":"corporation","id":479,"created_at":1684579020,"kind":"payout","original_id":520},{"type":"pass","entity":"MIR","entity_type":"corporation","id":480,"created_at":1684579038,"original_id":521},{"type":"merge","entity":"MIR","entity_type":"corporation","id":481,"created_at":1684579074,"corporation":"5","original_id":522},{"type":"choose","entity":"MIR","entity_type":"corporation","id":482,"created_at":1684579111,"choice":"one_share","original_id":523},{"type":"choose","entity":"MIR","entity_type":"corporation","id":483,"created_at":1684579125,"choice":"replace","original_id":524},{"type":"pass","entity":"MIR","entity_type":"corporation","id":484,"created_at":1684579135,"original_id":525},{"type":"lay_tile","entity":"NDEM","entity_type":"corporation","id":485,"created_at":1684579254,"hex":"J13","tile":"15-2","rotation":1,"original_id":526},{"type":"run_routes","entity":"NDEM","entity_type":"corporation","id":486,"created_at":1684579303,"routes":[{"train":"3-0","connections":[["J15","K16","L17"],["J13","J15"]],"hexes":["L17","J15","J13"],"revenue":80,"revenue_str":"L17-J15-J13","nodes":["J15-0","L17-0","J13-0"]}],"original_id":527},{"type":"buy_shares","entity":10041,"entity_type":"player","id":487,"created_at":1684579343,"shares":["MC_2"],"percent":10,"share_price":false,"original_id":528},{"type":"bid","entity":14765,"entity_type":"player","id":488,"created_at":1684579463,"company":"C6","price":100,"original_id":529},{"type":"bid","entity":14765,"entity_type":"player","id":489,"created_at":1684579600,"company":"P15","price":0,"original_id":530},{"type":"bid","entity":14765,"entity_type":"player","id":490,"created_at":1684579601,"company":"P17","price":0,"original_id":531},{"type":"par","entity":14244,"entity_type":"player","id":491,"created_at":1684590802,"corporation":"FNM","share_price":"100,0,14","original_id":532},{"type":"buy_shares","entity":10041,"entity_type":"player","id":492,"created_at":1684591043,"shares":["NDEM_1"],"percent":10,"share_price":false,"original_id":533},{"type":"buy_shares","entity":14765,"entity_type":"player","id":493,"created_at":1684591096,"shares":["NDEM_2"],"percent":10,"share_price":false,"original_id":534},{"type":"buy_shares","entity":14244,"entity_type":"player","id":494,"created_at":1684592239,"shares":["NDEM_3"],"percent":10,"share_price":false,"original_id":535},{"type":"buy_shares","entity":10041,"entity_type":"player","id":495,"created_at":1684592483,"shares":["NDEM_4"],"percent":10,"share_price":false,"original_id":536},{"type":"buy_shares","entity":14765,"entity_type":"player","id":496,"created_at":1684592550,"shares":["NDEM_5"],"percent":10,"share_price":false,"original_id":537},{"type":"bid","entity":14244,"entity_type":"player","id":497,"created_at":1684607524,"company":"P15","price":5,"original_id":538},{"type":"bid","entity":14244,"entity_type":"player","id":498,"created_at":1684607527,"company":"P17","price":5,"original_id":539},{"type":"bid","entity":14244,"entity_type":"player","id":499,"created_at":1684607530,"company":"P9","price":0,"original_id":540},{"type":"buy_shares","entity":10041,"entity_type":"player","id":500,"created_at":1684611159,"shares":["NDEM_6"],"percent":10,"share_price":false,"original_id":541},{"type":"bid","entity":14765,"entity_type":"player","id":501,"created_at":1684612008,"company":"M13","price":300,"original_id":542},{"type":"bid","entity":14765,"entity_type":"player","id":502,"created_at":1684612020,"company":"P15","price":10,"original_id":543},{"type":"bid","entity":14765,"entity_type":"player","id":503,"created_at":1684612021,"company":"P17","price":10,"original_id":544},{"type":"bid","entity":14244,"entity_type":"player","id":504,"created_at":1684620037,"company":"P17","price":15,"original_id":545},{"type":"bid","entity":14244,"entity_type":"player","id":505,"created_at":1684620040,"company":"P15","price":15,"original_id":546},{"type":"pass","entity":14244,"entity_type":"player","id":506,"created_at":1684620065,"original_id":547},{"type":"program_share_pass","entity":10041,"entity_type":"player","id":507,"created_at":1684643968,"auto_actions":[{"type":"pass","entity":10041,"entity_type":"player","created_at":1684643966}],"unconditional":false,"indefinite":false,"original_id":548},{"type":"bid","entity":14765,"entity_type":"player","id":508,"created_at":1684647920,"company":"P9","price":15,"original_id":549},{"type":"bid","entity":14765,"entity_type":"player","id":509,"created_at":1684647925,"company":"P17","price":20,"original_id":550},{"type":"bid","entity":14765,"entity_type":"player","id":510,"created_at":1684647928,"company":"P15","price":20,"original_id":551},{"type":"bid","entity":14244,"entity_type":"player","id":511,"created_at":1684658180,"company":"P15","price":25,"original_id":552},{"type":"pass","entity":14244,"entity_type":"player","id":512,"created_at":1684658189,"auto_actions":[{"type":"pass","entity":10041,"entity_type":"player","created_at":1684658188}],"original_id":553},{"type":"bid","entity":14765,"entity_type":"player","id":513,"created_at":1684658665,"company":"P15","price":30,"original_id":554},{"type":"pass","entity":14765,"entity_type":"player","id":514,"created_at":1684658678,"original_id":555},{"type":"buy_shares","entity":14244,"entity_type":"player","id":515,"created_at":1684658777,"auto_actions":[{"type":"pass","entity":10041,"entity_type":"player","created_at":1684658774}],"shares":["FNM_1"],"percent":10,"share_price":false,"original_id":556},{"type":"pass","entity":14765,"entity_type":"player","id":516,"created_at":1684659123,"original_id":557},{"type":"bid","entity":14244,"entity_type":"player","id":517,"created_at":1684659149,"company":"P15","price":35,"original_id":558},{"type":"pass","entity":14244,"entity_type":"player","id":518,"created_at":1684659169,"auto_actions":[{"type":"pass","entity":10041,"entity_type":"player","created_at":1684659168}],"original_id":559},{"type":"pass","entity":14765,"entity_type":"player","id":519,"created_at":1684660586,"original_id":560},{"type":"buy_shares","entity":14244,"entity_type":"player","id":520,"created_at":1684661963,"auto_actions":[{"type":"pass","entity":10041,"entity_type":"player","created_at":1684662097}],"shares":["FNM_2"],"percent":10,"share_price":false,"original_id":561},{"type":"pass","entity":14765,"entity_type":"player","id":521,"created_at":1684662070,"original_id":562},{"type":"pass","entity":14244,"entity_type":"player","id":522,"created_at":1684663442,"original_id":563},{"type":"pass","entity":"19","entity_type":"corporation","id":523,"created_at":1684663445,"original_id":564},{"type":"lay_tile","entity":"19","entity_type":"corporation","id":524,"created_at":1684663474,"hex":"N23","tile":"X21-0","rotation":0,"original_id":565},{"type":"pass","entity":"19","entity_type":"corporation","id":525,"created_at":1684663508,"original_id":566},{"type":"run_routes","entity":"19","entity_type":"corporation","id":526,"created_at":1684663513,"routes":[{"train":"L-1","connections":[["N27","N25"]],"hexes":["N27","N25"],"revenue":60,"revenue_str":"N27-N25","nodes":["N27-0","N25-1"]}],"original_id":567},{"type":"pass","entity":"19","entity_type":"corporation","id":527,"created_at":1684663515,"original_id":568},{"type":"pass","entity":"12","entity_type":"corporation","id":528,"created_at":1684663832,"original_id":569},{"type":"pass","entity":"12","entity_type":"corporation","id":529,"created_at":1684663851,"original_id":570},{"type":"run_routes","entity":"12","entity_type":"corporation","id":530,"created_at":1684663855,"routes":[{"train":"L-2","connections":[["L19","K20"]],"hexes":["L19","K20"],"revenue":70,"revenue_str":"L19-K20","nodes":["L19-0","K20-0"]}],"original_id":571},{"type":"pass","entity":"12","entity_type":"corporation","id":531,"created_at":1684663861,"original_id":572},{"type":"pass","entity":"1","entity_type":"corporation","id":532,"created_at":1684664329,"original_id":577},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":533,"created_at":1684664639,"hex":"B3","tile":"619-1","rotation":4,"original_id":578},{"type":"run_routes","entity":"1","entity_type":"corporation","id":534,"created_at":1684664661,"routes":[{"train":"L-4","connections":[["A2","B1"]],"hexes":["B1","A2"],"revenue":80,"revenue_str":"B1-A2","nodes":["A2-0","B1-0"]},{"train":"3/2P-0","connections":[["B3","B5","C6","C8"],["B1","B3"]],"hexes":["C8","B3","B1"],"revenue":60,"revenue_str":"C8-B3-B1","nodes":["B3-0","C8-0","B1-0"]}],"original_id":579},{"type":"buy_train","entity":"1","entity_type":"corporation","id":535,"created_at":1684664668,"train":"3-6","price":200,"variant":"3","original_id":580},{"type":"pass","entity":"22","entity_type":"corporation","id":536,"created_at":1684669462,"original_id":581},{"type":"lay_tile","entity":"22","entity_type":"corporation","id":537,"created_at":1684669492,"hex":"N37","tile":"9-7","rotation":1,"original_id":582},{"type":"choose","entity":"22","entity_type":"corporation","id":538,"created_at":1684669515,"choice":"0","original_id":583},{"type":"run_routes","entity":"22","entity_type":"corporation","id":539,"created_at":1684669526,"routes":[{"train":"L-5","connections":[["O32","P31"],["O32","N33"],["N33","N35","M36"],["M36","L37"]],"hexes":["P31","O32","N33","M36","L37"],"revenue":100,"revenue_str":"P31-O32-N33-M36-L37","nodes":["O32-0","P31-0","N33-0","M36-0","L37-0"]}],"original_id":584},{"type":"pass","entity":"22","entity_type":"corporation","id":540,"created_at":1684669539,"original_id":585},{"type":"acquire_company","entity":"3","entity_type":"corporation","id":541,"created_at":1684670536,"company":"P17","original_id":586},{"type":"pass","entity":"3","entity_type":"corporation","id":542,"created_at":1684671736,"original_id":587},{"type":"lay_tile","entity":"P17","entity_type":"company","id":543,"created_at":1684671747,"hex":"F7","tile":"P1-0","rotation":3,"original_id":588},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":544,"created_at":1684671759,"hex":"E8","tile":"619-2","rotation":0,"original_id":589},{"type":"run_routes","entity":"3","entity_type":"corporation","id":545,"created_at":1684672622,"routes":[{"train":"L-7","connections":[["C8","D7","E8"]],"hexes":["E8","C8"],"revenue":70,"revenue_str":"E8-C8","nodes":["C8-0","E8-0"]}],"original_id":590},{"type":"buy_train","entity":"3","entity_type":"corporation","id":546,"created_at":1684673349,"train":"L-3","price":95,"original_id":591},{"type":"pass","entity":"23","entity_type":"corporation","id":547,"created_at":1684679959,"original_id":592},{"type":"lay_tile","entity":"23","entity_type":"corporation","id":548,"created_at":1684679977,"hex":"L39","tile":"405-2","rotation":0,"original_id":593},{"type":"run_routes","entity":"23","entity_type":"corporation","id":549,"created_at":1684679983,"routes":[{"train":"L-8","connections":[["L39","L37"]],"hexes":["L39","L37"],"revenue":80,"revenue_str":"L39-L37","nodes":["L39-0","L37-0"]}],"original_id":594},{"type":"pass","entity":"23","entity_type":"corporation","id":550,"created_at":1684679989,"original_id":595},{"type":"pass","entity":"13","entity_type":"corporation","id":551,"created_at":1684680437,"original_id":596},{"type":"lay_tile","entity":"13","entity_type":"corporation","id":552,"created_at":1684680513,"hex":"L17","tile":"BC-0","rotation":0,"original_id":599},{"type":"buy_train","entity":"13","entity_type":"corporation","id":553,"created_at":1684680538,"train":"L-6","price":300,"original_id":600},{"type":"pass","entity":"FCM","entity_type":"corporation","id":554,"created_at":1684682010,"original_id":601},{"type":"lay_tile","entity":"FCM","entity_type":"corporation","id":555,"created_at":1684682048,"hex":"M24","tile":"82-0","rotation":3,"original_id":602},{"type":"pass","entity":"FCM","entity_type":"corporation","id":556,"created_at":1684682058,"original_id":603},{"type":"pass","entity":"FCM","entity_type":"corporation","id":557,"created_at":1684682061,"original_id":604},{"type":"run_routes","entity":"FCM","entity_type":"corporation","id":558,"created_at":1684682084,"routes":[{"train":"LP-0","connections":[["local","N23"]],"hexes":["N23"],"revenue":60,"revenue_str":"N23","nodes":[]},{"train":"L-19","connections":[["N23","N25"]],"hexes":["N23","N25"],"revenue":90,"revenue_str":"N23-N25","nodes":["N23-4","N25-1"]},{"train":"L-0","connections":[["N25","N27"]],"hexes":["N25","N27"],"revenue":60,"revenue_str":"N25-N27","nodes":["N25-1","N27-0"]},{"train":"3-2","connections":[["M26","M24","N23"],["N27","M26"]],"hexes":["N23","M26","N27"],"revenue":100,"revenue_str":"N23-M26-N27","nodes":["M26-0","N23-3","N27-0"]}],"original_id":605},{"type":"dividend","entity":"FCM","entity_type":"corporation","id":559,"created_at":1684682097,"kind":"payout","original_id":606},{"type":"pass","entity":"FCM","entity_type":"corporation","id":560,"created_at":1684682569,"original_id":607},{"type":"merge","entity":"FCM","entity_type":"corporation","id":561,"created_at":1684682583,"corporation":"23","original_id":608},{"type":"choose","entity":"FCM","entity_type":"corporation","id":562,"created_at":1684682607,"choice":"two_shares","original_id":609},{"type":"choose","entity":"FCM","entity_type":"corporation","id":563,"created_at":1684682614,"choice":"replace","original_id":610},{"type":"pass","entity":"FCM","entity_type":"corporation","id":564,"created_at":1684682623,"original_id":611},{"type":"acquire_company","entity":"FNM","entity_type":"corporation","id":565,"created_at":1684682629,"company":"P15","original_id":612},{"type":"pass","entity":"FNM","entity_type":"corporation","id":566,"created_at":1684682631,"original_id":613},{"type":"lay_tile","entity":"FNM","entity_type":"corporation","id":567,"created_at":1684682644,"auto_actions":[{"type":"hex_token","entity":"FNM","entity_type":"corporation","created_at":1684682643,"hex":"G22","token_type":"destination"}],"hex":"L25","tile":"82-1","rotation":5,"original_id":614},{"type":"place_token","entity":"FNM","entity_type":"corporation","id":568,"created_at":1684682661,"city":"619-0-0","slot":1,"tokener":"FNM","original_id":615},{"type":"buy_train","entity":"FNM","entity_type":"corporation","id":569,"created_at":1684682672,"train":"4-0","price":300,"variant":"4","original_id":616},{"type":"acquire_company","entity":"MC","entity_type":"corporation","id":570,"created_at":1684683223,"company":"P9","original_id":617},{"type":"pass","entity":"MC","entity_type":"corporation","id":571,"created_at":1684683229,"original_id":618},{"type":"lay_tile","entity":"MC","entity_type":"corporation","id":572,"created_at":1684683286,"hex":"L17","tile":"207-1","rotation":2,"original_id":619},{"type":"lay_tile","entity":"P9","entity_type":"company","id":573,"created_at":1684683377,"hex":"I12","tile":"4-6","rotation":2,"original_id":620},{"type":"lay_tile","entity":"P9","entity_type":"company","id":574,"created_at":1684683437,"auto_actions":[{"type":"pass","entity":"MC","entity_type":"corporation","created_at":1684683438}],"hex":"H11","tile":"57-1","rotation":2,"original_id":621},{"type":"run_routes","entity":"MC","entity_type":"corporation","id":575,"created_at":1684683565,"routes":[{"train":"2P-0","connections":[["L19","K20"]],"hexes":["L19","K20"],"revenue":70,"revenue_str":"L19-K20","nodes":["L19-0","K20-0"]},{"train":"3-4","connections":[["M22","M20","L19"],["N23","M22"]],"hexes":["L19","M22","N23"],"revenue":110,"revenue_str":"L19-M22-N23","nodes":["M22-1","L19-0","N23-2"]}],"original_id":622},{"type":"dividend","entity":"MC","entity_type":"corporation","id":576,"created_at":1684683567,"kind":"payout","original_id":623},{"type":"buy_train","entity":"MC","entity_type":"corporation","id":577,"created_at":1684683609,"train":"4-1","price":300,"variant":"4","original_id":624},{"type":"pass","entity":"MC","entity_type":"corporation","id":578,"created_at":1684683617,"original_id":625},{"type":"merge","entity":"MC","entity_type":"corporation","id":579,"created_at":1684683855,"corporation":"3","original_id":626},{"type":"choose","entity":"MC","entity_type":"corporation","id":580,"created_at":1684683861,"choice":"money","original_id":627},{"type":"choose","entity":"MC","entity_type":"corporation","id":581,"created_at":1684683883,"choice":"replace","original_id":628},{"type":"pass","entity":"MIR","entity_type":"corporation","id":582,"created_at":1684685826,"original_id":629},{"type":"lay_tile","entity":"MIR","entity_type":"corporation","id":583,"created_at":1684685853,"auto_actions":[{"type":"pass","entity":"MIR","entity_type":"corporation","created_at":1684685852}],"hex":"I22","tile":"207-2","rotation":2,"original_id":630},{"type":"pass","entity":"MIR","entity_type":"corporation","id":584,"created_at":1684685879,"original_id":633},{"type":"run_routes","entity":"MIR","entity_type":"corporation","id":585,"created_at":1684685902,"routes":[{"train":"3-3","connections":[["F21","F23"],["G22","F21"]],"hexes":["F23","F21","G22"],"revenue":110,"revenue_str":"F23-F21-G22","nodes":["F21-0","F23-0","G22-0"]},{"train":"3-1","connections":[["G22","F23"],["G22","H21","I22"]],"hexes":["F23","G22","I22"],"revenue":110,"revenue_str":"F23-G22-I22","nodes":["G22-0","F23-0","I22-0"]}],"original_id":634},{"type":"dividend","entity":"MIR","entity_type":"corporation","id":586,"created_at":1684685913,"kind":"half","original_id":635},{"type":"buy_train","entity":"MIR","entity_type":"corporation","id":587,"created_at":1684685921,"train":"4-2","price":300,"variant":"4","original_id":636},{"type":"pass","entity":"MIR","entity_type":"corporation","id":588,"created_at":1684685925,"original_id":637},{"type":"lay_tile","entity":"NDEM","entity_type":"corporation","id":589,"created_at":1684686151,"hex":"G10","tile":"58-1","rotation":3,"original_id":638},{"type":"lay_tile","entity":"NDEM","entity_type":"corporation","id":590,"created_at":1684686160,"hex":"F11","tile":"BC-0","rotation":0,"original_id":639},{"type":"lay_tile","entity":"NDEM","entity_type":"corporation","id":591,"created_at":1684689544,"hex":"F11","tile":"8-10","rotation":4,"original_id":640},{"type":"pass","entity":"NDEM","entity_type":"corporation","id":592,"created_at":1684689548,"original_id":641},{"type":"lay_tile","entity":"NDEM","entity_type":"corporation","id":593,"created_at":1684691551,"hex":"O26","tile":"82-2","rotation":2,"original_id":642},{"type":"run_routes","entity":"NDEM","entity_type":"corporation","id":594,"created_at":1684691662,"routes":[{"train":"3-0","connections":[["J15","K16","L17"],["J13","J15"]],"hexes":["L17","J15","J13"],"revenue":90,"revenue_str":"L17-J15-J13","nodes":["J15-0","L17-0","J13-0"]},{"train":"3-5","connections":[["N25","O26","N27"]],"hexes":["N27","N25"],"revenue":60,"revenue_str":"N27-N25","nodes":["N25-0","N27-0"]}],"original_id":643},{"type":"pass","entity":"19","entity_type":"corporation","id":595,"created_at":1684691770,"original_id":644},{"type":"pass","entity":"19","entity_type":"corporation","id":596,"created_at":1684691805,"original_id":645},{"type":"buy_train","entity":"19","entity_type":"corporation","id":597,"created_at":1684691837,"train":"4-3","price":300,"variant":"4","original_id":646},{"type":"acquire_company","entity":"12","entity_type":"corporation","id":598,"created_at":1684692190,"company":"P6","original_id":647},{"type":"pass","entity":"12","entity_type":"corporation","id":599,"created_at":1684692238,"original_id":648},{"type":"buy_train","entity":"12","entity_type":"corporation","id":600,"created_at":1684693793,"train":"3-1","price":1,"original_id":649},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":601,"created_at":1684695880,"hex":"D9","tile":"619-3","rotation":2,"original_id":650},{"type":"run_routes","entity":"1","entity_type":"corporation","id":602,"created_at":1684695959,"routes":[{"train":"3/2P-0","connections":[["B1","C2"],["A2","B1"]],"hexes":["C2","B1","A2"],"revenue":50,"revenue_str":"C2-B1-A2","nodes":["B1-0","C2-0","A2-0"]},{"train":"3-6","connections":[["B3","B5","C6","C8"],["B1","B3"]],"hexes":["C8","B3","B1"],"revenue":110,"revenue_str":"C8-B3-B1","nodes":["B3-0","C8-0","B1-0"]}],"original_id":651},{"type":"pass","entity":"22","entity_type":"corporation","id":603,"created_at":1684698361,"original_id":652},{"type":"buy_train","entity":"22","entity_type":"corporation","id":604,"created_at":1684698406,"train":"3-3","price":1,"original_id":653},{"type":"lay_tile","entity":"13","entity_type":"corporation","id":605,"created_at":1684699748,"hex":"F13","tile":"57-2","rotation":1,"original_id":654},{"type":"buy_train","entity":"13","entity_type":"corporation","id":606,"created_at":1684699760,"train":"5-0","price":500,"variant":"5","original_id":655},{"type":"pass","entity":"FCM","entity_type":"corporation","id":607,"created_at":1684700842,"original_id":656},{"type":"lay_tile","entity":"FCM","entity_type":"corporation","id":608,"created_at":1684700856,"hex":"N27","tile":"611-0","rotation":5,"original_id":657},{"type":"lay_tile","entity":"P18","entity_type":"company","id":609,"created_at":1684700864,"hex":"M28","tile":"P2-0","rotation":0,"original_id":658},{"type":"pass","entity":"FCM","entity_type":"corporation","id":610,"created_at":1684700935,"original_id":659},{"type":"pass","entity":"FCM","entity_type":"corporation","id":611,"created_at":1684700976,"original_id":660},{"type":"run_routes","entity":"FCM","entity_type":"corporation","id":612,"created_at":1684701023,"routes":[{"train":"LP-0","connections":[["local","N23"]],"hexes":["N23"],"revenue":60,"revenue_str":"N23","nodes":[]},{"train":"3-2","connections":[["N25","N27"],["N23","N25"]],"hexes":["N27","N25","N23"],"revenue":170,"revenue_str":"N27-N25-N23 ($40)","nodes":["N25-1","N27-0","N23-4"]}],"original_id":661},{"type":"dividend","entity":"FCM","entity_type":"corporation","id":613,"created_at":1684701028,"kind":"payout","original_id":662},{"type":"buy_train","entity":"FCM","entity_type":"corporation","id":614,"created_at":1684701033,"train":"5-1","price":500,"variant":"5","original_id":663},{"type":"pass","entity":"FCM","entity_type":"corporation","id":615,"created_at":1684701136,"original_id":666},{"type":"pass","entity":"FCM","entity_type":"corporation","id":616,"created_at":1684701148,"original_id":667},{"type":"pass","entity":"MC","entity_type":"corporation","id":617,"created_at":1684701167,"original_id":668},{"type":"lay_tile","entity":"MC","entity_type":"corporation","id":618,"created_at":1684701293,"auto_actions":[{"type":"pass","entity":"MC","entity_type":"corporation","created_at":1684701291}],"hex":"L19","tile":"X5-0","rotation":2,"original_id":669},{"type":"run_routes","entity":"MC","entity_type":"corporation","id":619,"created_at":1684701373,"routes":[{"train":"2P-0","connections":[["L19","M18","L17"]],"hexes":["L17","L19"],"revenue":90,"revenue_str":"L17-L19","nodes":["L19-0","L17-0"]},{"train":"3-4","connections":[["M22","M20","L19"],["N23","M22"]],"hexes":["L19","M22","N23"],"revenue":120,"revenue_str":"L19-M22-N23","nodes":["M22-1","L19-0","N23-2"]},{"train":"4-1","connections":[["B3","A2"],["C8","C6","B5","B3"],["E8","D7","C8"]],"hexes":["A2","B3","C8","E8"],"revenue":170,"revenue_str":"A2-B3-C8-E8","nodes":["B3-0","A2-0","C8-0","E8-0"]}],"original_id":670},{"type":"dividend","entity":"MC","entity_type":"corporation","id":620,"created_at":1684701397,"kind":"half","original_id":671},{"type":"merge","entity":"MC","entity_type":"corporation","id":621,"created_at":1684701406,"corporation":"13","original_id":672},{"type":"choose","entity":"MC","entity_type":"corporation","id":622,"created_at":1684701409,"choice":"money","original_id":673},{"type":"choose","entity":"MC","entity_type":"corporation","id":623,"created_at":1684701411,"choice":"remove","original_id":674},{"type":"discard_train","entity":"MC","entity_type":"corporation","id":624,"created_at":1684701458,"train":"3-4","original_id":675},{"type":"acquire_company","entity":"FNM","entity_type":"corporation","id":625,"created_at":1684706509,"company":"P1","original_id":678},{"type":"pass","entity":"FNM","entity_type":"corporation","id":626,"created_at":1684706524,"original_id":679},{"type":"lay_tile","entity":"FNM","entity_type":"corporation","id":627,"created_at":1684706616,"hex":"K24","tile":"611-1","rotation":5,"original_id":680},{"type":"run_routes","entity":"FNM","entity_type":"corporation","id":628,"created_at":1684706701,"routes":[{"train":"4-0","connections":[["G22","H21","I22"],["F21","G22"],["F23","F21"]],"hexes":["I22","G22","F21","F23"],"revenue":160,"revenue_str":"I22-G22-F21-F23","nodes":["G22-0","I22-0","F21-0","F23-0"]},{"train":"5P-0","connections":[["L19","M18","L17"],["K20","L19"],["K24","K22","K20"],["N23","M24","L25","K24"]],"hexes":["L17","L19","K20","K24","N23"],"revenue":220,"revenue_str":"L17-L19-K20-K24-N23","nodes":["L19-0","L17-0","K20-0","K24-0","N23-3"]}],"original_id":681},{"type":"dividend","entity":"FNM","entity_type":"corporation","id":629,"created_at":1684706719,"kind":"payout","original_id":682},{"type":"merge","entity":"FNM","entity_type":"corporation","id":630,"created_at":1684706725,"corporation":"19","original_id":683},{"type":"choose","entity":"FNM","entity_type":"corporation","id":631,"created_at":1684706738,"choice":"two_shares","original_id":684},{"type":"choose","entity":"FNM","entity_type":"corporation","id":632,"created_at":1684706741,"choice":"replace","original_id":685},{"type":"discard_train","entity":"FNM","entity_type":"corporation","id":633,"created_at":1684706754,"train":"4-3","original_id":686},{"type":"pass","entity":"FNM","entity_type":"corporation","id":634,"created_at":1684706757,"original_id":687},{"type":"pass","entity":"MIR","entity_type":"corporation","id":635,"created_at":1684720515,"original_id":688},{"type":"lay_tile","entity":"MIR","entity_type":"corporation","id":636,"created_at":1684720560,"auto_actions":[{"type":"hex_token","entity":"MIR","entity_type":"corporation","created_at":1684720558,"hex":"J15","token_type":"destination"}],"hex":"F21","tile":"X5-1","rotation":3,"original_id":689},{"type":"run_routes","entity":"MIR","entity_type":"corporation","id":637,"created_at":1684720604,"routes":[{"train":"4-2","connections":[["G22","H21","I22"],["F21","G22"],["F21","F23"]],"hexes":["I22","G22","F21","F23"],"revenue":170,"revenue_str":"I22-G22-F21-F23","nodes":["G22-0","I22-0","F21-0","F23-0"]}],"original_id":690},{"type":"dividend","entity":"MIR","entity_type":"corporation","id":638,"created_at":1684720644,"kind":"payout","original_id":691},{"type":"pass","entity":"MIR","entity_type":"corporation","id":639,"created_at":1684720654,"original_id":692},{"type":"merge","entity":"MIR","entity_type":"corporation","id":640,"created_at":1684720675,"corporation":"12","original_id":693},{"type":"choose","entity":"MIR","entity_type":"corporation","id":641,"created_at":1684720699,"choice":"one_share","original_id":694},{"type":"choose","entity":"MIR","entity_type":"corporation","id":642,"created_at":1684720713,"choice":"replace","original_id":695},{"type":"pass","entity":"MIR","entity_type":"corporation","id":643,"created_at":1684720779,"original_id":696},{"type":"lay_tile","entity":"NDEM","entity_type":"corporation","id":644,"created_at":1684735515,"hex":"F13","tile":"619-4","rotation":1,"original_id":697},{"type":"lay_tile","entity":"NDEM","entity_type":"corporation","id":645,"created_at":1684745274,"hex":"J15","tile":"14-2","rotation":1,"original_id":698},{"type":"lay_tile","entity":"NDEM","entity_type":"corporation","id":646,"created_at":1684745370,"hex":"G22","tile":"611-2","rotation":5,"original_id":699},{"type":"run_routes","entity":"NDEM","entity_type":"corporation","id":647,"created_at":1684745461,"routes":[{"train":"3-0","connections":[["N25","O26","N27"]],"hexes":["N27","N25"],"revenue":70,"revenue_str":"N27-N25","nodes":["N25-0","N27-0"]},{"train":"3-5","connections":[["J15","K16","L17"],["J13","J15"]],"hexes":["L17","J15","J13"],"revenue":100,"revenue_str":"L17-J15-J13","nodes":["J15-0","L17-0","J13-0"]}],"original_id":700},{"type":"par","entity":14765,"entity_type":"player","id":648,"created_at":1684745487,"corporation":"FCP","share_price":"100,0,14","original_id":701},{"type":"par","entity":10041,"entity_type":"player","id":649,"created_at":1684749697,"corporation":"IRM","share_price":"100,0,14","original_id":702},{"type":"buy_shares","entity":14244,"entity_type":"player","id":650,"created_at":1684752428,"shares":["NDEM_7"],"percent":10,"share_price":false,"original_id":703},{"type":"buy_shares","entity":14765,"entity_type":"player","id":651,"created_at":1684752956,"shares":["FCP_1"],"percent":10,"share_price":false,"original_id":704},{"type":"buy_shares","entity":10041,"entity_type":"player","id":652,"created_at":1684753394,"shares":["IRM_1"],"percent":10,"share_price":false,"original_id":705},{"type":"program_buy_shares","entity":10041,"entity_type":"player","id":653,"created_at":1684753407,"corporation":"IRM","until_condition":"float","from_market":false,"auto_pass_after":false,"original_id":706},{"type":"program_share_pass","entity":14244,"entity_type":"player","id":654,"created_at":1684756411,"auto_actions":[{"type":"pass","entity":14244,"entity_type":"player","created_at":1684756409}],"unconditional":false,"indefinite":false,"original_id":707},{"type":"buy_shares","entity":14765,"entity_type":"player","id":655,"created_at":1684756463,"auto_actions":[{"type":"buy_shares","entity":10041,"entity_type":"player","created_at":1684756461,"shares":["IRM_2"],"percent":10},{"type":"pass","entity":14244,"entity_type":"player","created_at":1684756461}],"shares":["FCP_2"],"percent":10,"share_price":false,"original_id":708},{"type":"buy_shares","entity":14765,"entity_type":"player","id":656,"created_at":1684756479,"auto_actions":[{"type":"buy_shares","entity":10041,"entity_type":"player","created_at":1684756477,"shares":["IRM_3"],"percent":10},{"type":"pass","entity":14244,"entity_type":"player","created_at":1684756477}],"shares":["FCP_3"],"percent":10,"share_price":false,"original_id":709},{"type":"buy_shares","entity":14765,"entity_type":"player","id":657,"created_at":1684756499,"auto_actions":[{"type":"program_disable","entity":10041,"entity_type":"player","created_at":1684756497,"reason":"IRM is floated"}],"shares":["FCP_4"],"percent":10,"share_price":false,"original_id":710},{"type":"sell_shares","entity":10041,"entity_type":"player","id":658,"created_at":1684757184,"shares":["NDEM_1","NDEM_4","NDEM_6"],"percent":30,"original_id":711},{"type":"buy_shares","entity":10041,"entity_type":"player","id":659,"created_at":1684757217,"auto_actions":[{"type":"program_disable","entity":14244,"entity_type":"player","created_at":1684757216,"reason":"Shares were sold"}],"shares":["FNM_5"],"percent":10,"share_price":false,"original_id":712},{"type":"buy_shares","entity":14244,"entity_type":"player","id":660,"created_at":1684757634,"shares":["FCP_5"],"percent":10,"share_price":false,"original_id":713},{"type":"pass","entity":14765,"entity_type":"player","id":661,"created_at":1684758764,"original_id":714},{"type":"buy_shares","entity":10041,"entity_type":"player","id":662,"created_at":1684765786,"shares":["FCM_6"],"percent":10,"share_price":false,"original_id":715},{"type":"pass","entity":14244,"entity_type":"player","id":663,"created_at":1684766511,"original_id":716},{"type":"pass","entity":14765,"entity_type":"player","id":664,"created_at":1684766635,"original_id":717},{"type":"buy_shares","entity":10041,"entity_type":"player","id":665,"created_at":1684780550,"shares":["IRM_4"],"percent":10,"share_price":false,"original_id":718},{"type":"buy_shares","entity":14244,"entity_type":"player","id":666,"created_at":1684788647,"shares":["NDEM_1"],"percent":10,"share_price":false,"original_id":719},{"type":"pass","entity":14765,"entity_type":"player","id":667,"created_at":1684788759,"original_id":720},{"type":"pass","entity":10041,"entity_type":"player","id":668,"created_at":1684811364,"original_id":721},{"type":"program_share_pass","entity":14244,"entity_type":"player","id":669,"created_at":1684824173,"auto_actions":[{"type":"pass","entity":14244,"entity_type":"player","created_at":1684824171}],"unconditional":false,"indefinite":false,"original_id":722},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":670,"created_at":1684826212,"hex":"E10","tile":"9-8","rotation":2,"original_id":723},{"type":"run_routes","entity":"1","entity_type":"corporation","id":671,"created_at":1684826224,"routes":[{"train":"3/2P-0","connections":[["B3","A2"],["B1","B3"]],"hexes":["A2","B3","B1"],"revenue":70,"revenue_str":"A2-B3-B1","nodes":["B3-0","A2-0","B1-0"]}],"original_id":724},{"type":"sell_shares","entity":14765,"entity_type":"player","id":672,"created_at":1684826283,"shares":["MC_1"],"percent":10,"original_id":725},{"type":"buy_train","entity":"1","entity_type":"corporation","id":673,"created_at":1684826292,"train":"4-3","price":300,"variant":"4","original_id":726},{"type":"lay_tile","entity":"22","entity_type":"corporation","id":674,"created_at":1684833052,"hex":"P29","tile":"82-3","rotation":1,"original_id":727},{"type":"sell_shares","entity":10041,"entity_type":"player","id":675,"created_at":1684833154,"shares":["FCM_6"],"percent":10,"original_id":728},{"type":"sell_shares","entity":10041,"entity_type":"player","id":676,"created_at":1684833166,"shares":["FNM_5"],"percent":10,"original_id":729},{"type":"sell_shares","entity":10041,"entity_type":"player","id":677,"created_at":1684833174,"shares":["MC_6","MC_2"],"percent":20,"original_id":730},{"type":"buy_train","entity":"22","entity_type":"corporation","id":678,"created_at":1684833192,"train":"6-1","price":600,"variant":"6","original_id":731},{"type":"pass","entity":"FCM","entity_type":"corporation","id":679,"created_at":1684833507,"original_id":732},{"type":"lay_tile","entity":"FCM","entity_type":"corporation","id":680,"created_at":1684833529,"hex":"N23","tile":"X22-0","rotation":0,"original_id":733},{"type":"pass","entity":"FCM","entity_type":"corporation","id":681,"created_at":1684833534,"original_id":734},{"type":"pass","entity":"FCM","entity_type":"corporation","id":682,"created_at":1684833537,"original_id":735},{"type":"run_routes","entity":"FCM","entity_type":"corporation","id":683,"created_at":1684833639,"routes":[{"train":"LP-0","connections":[["local","N23"]],"hexes":["N23"],"revenue":80,"revenue_str":"N23","nodes":[]},{"train":"5-1","connections":[["M26","M24","L25","K24"],["N27","M26"],["N25","N27"],["N23","N25"]],"hexes":["K24","M26","N27","N25","N23"],"revenue":240,"revenue_str":"K24-M26-N27-N25-N23 ($40)","nodes":["M26-0","K24-0","N27-0","N25-1","N23-4"]}],"original_id":736},{"type":"choose","entity":"FCM","entity_type":"corporation","id":684,"created_at":1684833644,"choice":"payout","original_id":737},{"type":"dividend","entity":"FCM","entity_type":"corporation","id":685,"created_at":1684833647,"kind":"payout","original_id":738},{"type":"buy_train","entity":"FCM","entity_type":"corporation","id":686,"created_at":1684833657,"train":"6-2","price":600,"variant":"6","original_id":739},{"type":"pass","entity":"FCM","entity_type":"corporation","id":687,"created_at":1684833667,"original_id":740},{"type":"pass","entity":"FCM","entity_type":"corporation","id":688,"created_at":1684833670,"original_id":741},{"type":"pass","entity":"MC","entity_type":"corporation","id":689,"created_at":1684835025,"original_id":742},{"type":"lay_tile","entity":"MC","entity_type":"corporation","id":690,"created_at":1684835071,"hex":"F15","tile":"BC-0","rotation":0,"original_id":745},{"type":"lay_tile","entity":"MC","entity_type":"corporation","id":691,"created_at":1684835075,"auto_actions":[{"type":"pass","entity":"MC","entity_type":"corporation","created_at":1684835074}],"hex":"F15","tile":"57-4","rotation":1,"original_id":746},{"type":"run_routes","entity":"MC","entity_type":"corporation","id":692,"created_at":1684835198,"routes":[{"train":"2P-0","connections":[["N23","M22"]],"hexes":["M22","N23"],"revenue":90,"revenue_str":"M22-N23","nodes":["N23-2","M22-1"]},{"train":"4-1","connections":[["L17","K16","J15"],["L19","M18","L17"],["K20","L19"]],"hexes":["J15","L17","L19","K20"],"revenue":150,"revenue_str":"J15-L17-L19-K20","nodes":["L17-0","J15-0","L19-0","K20-0"]},{"train":"5-0","connections":[["B3","A2"],["C8","C6","B5","B3"],["D9","C8"],["E8","D9"]],"hexes":["A2","B3","C8","D9","E8"],"revenue":200,"revenue_str":"A2-B3-C8-D9-E8","nodes":["B3-0","A2-0","C8-0","D9-0","E8-0"]}],"original_id":747},{"type":"dividend","entity":"MC","entity_type":"corporation","id":693,"created_at":1684835218,"kind":"half","original_id":750},{"type":"pass","entity":"MC","entity_type":"corporation","id":694,"created_at":1684835313,"original_id":765},{"type":"pass","entity":"MC","entity_type":"corporation","id":695,"created_at":1684835323,"original_id":766},{"type":"pass","entity":"MIR","entity_type":"corporation","id":696,"created_at":1684835509,"original_id":767},{"type":"lay_tile","entity":"MIR","entity_type":"corporation","id":697,"created_at":1684835559,"hex":"M20","tile":"83-1","rotation":5,"original_id":768},{"type":"pass","entity":"MIR","entity_type":"corporation","id":698,"created_at":1684835563,"original_id":769},{"type":"choose","entity":"MIR","entity_type":"corporation","id":699,"created_at":1684835612,"choice":"0","original_id":770},{"type":"run_routes","entity":"MIR","entity_type":"corporation","id":700,"created_at":1684835616,"routes":[{"train":"4-2","connections":[["L19","M18","L17"],["L19","M20","M22"],["M22","N23"]],"hexes":["L17","L19","M22","N23"],"revenue":180,"revenue_str":"L17-L19-M22-N23","nodes":["L19-0","L17-0","M22-1","N23-2"]}],"original_id":771},{"type":"dividend","entity":"MIR","entity_type":"corporation","id":701,"created_at":1684835625,"kind":"payout","original_id":772},{"type":"pass","entity":"MIR","entity_type":"corporation","id":702,"created_at":1684835633,"original_id":773},{"type":"merge","entity":"MIR","entity_type":"corporation","id":703,"created_at":1684835655,"corporation":"10","original_id":774},{"type":"choose","entity":"MIR","entity_type":"corporation","id":704,"created_at":1684835692,"choice":"money","original_id":775},{"type":"choose","entity":"MIR","entity_type":"corporation","id":705,"created_at":1684835708,"choice":"replace","original_id":776},{"type":"pass","entity":"MIR","entity_type":"corporation","id":706,"created_at":1684835712,"original_id":777},{"type":"pass","entity":"FCP","entity_type":"corporation","id":707,"created_at":1684837807,"original_id":778},{"type":"lay_tile","entity":"FCP","entity_type":"corporation","id":708,"created_at":1684837819,"auto_actions":[{"type":"hex_token","entity":"FCP","entity_type":"corporation","created_at":1684837817,"hex":"L17","token_type":"destination"}],"hex":"F11","tile":"81-0","rotation":0,"original_id":779},{"type":"pass","entity":"FCP","entity_type":"corporation","id":709,"created_at":1684838320,"original_id":780},{"type":"buy_train","entity":"FCP","entity_type":"corporation","id":710,"created_at":1684838383,"train":"7-0","price":750,"variant":"7","original_id":781},{"type":"lay_tile","entity":"NDEM","entity_type":"corporation","id":711,"created_at":1684838620,"hex":"N25","tile":"X5-2","rotation":3,"original_id":782},{"type":"lay_tile","entity":"NDEM","entity_type":"corporation","id":712,"created_at":1684838744,"hex":"F17","tile":"BC-0","rotation":0,"original_id":783},{"type":"lay_tile","entity":"NDEM","entity_type":"corporation","id":713,"created_at":1684838753,"hex":"F17","tile":"9-9","rotation":1,"original_id":784},{"type":"run_routes","entity":"NDEM","entity_type":"corporation","id":714,"created_at":1684839139,"auto_actions":[{"type":"pass","entity":"NDEM","entity_type":"corporation","created_at":1684839138}],"routes":[{"train":"6-0","connections":[["J23","I22"],["K24","J23"],["M26","L25","K24"],["N25","M26"],["N23","N25"]],"hexes":["I22","J23","K24","M26","N25","N23"],"revenue":230,"revenue_str":"I22-J23-K24-M26-N25-N23","nodes":["J23-0","I22-0","K24-0","M26-1","N25-0","N23-4"]}],"original_id":785},{"type":"remove_token","entity":"NDEM","entity_type":"corporation","id":715,"created_at":1684839152,"city":"X5-2-0","slot":0,"original_id":786},{"type":"bid","entity":"NDEM","entity_type":"corporation","id":716,"created_at":1684839164,"auto_actions":[{"type":"pass","entity":"NDEM","entity_type":"corporation","created_at":1684839162}],"price":50,"original_id":787},{"type":"pass","entity":"NDEM","entity_type":"corporation","id":717,"created_at":1684847040,"original_id":788},{"type":"merge","entity":"NDEM","entity_type":"corporation","id":718,"created_at":1684847137,"auto_actions":[{"type":"pass","entity":"NDEM","entity_type":"corporation","created_at":1684847136}],"corporation":"FNM","original_id":789},{"type":"pass","entity":"NDEM","entity_type":"corporation","id":719,"created_at":1684862109,"original_id":790},{"type":"pass","entity":"NDEM","entity_type":"corporation","id":720,"created_at":1684862931,"auto_actions":[{"type":"pass","entity":"NDEM","entity_type":"corporation","created_at":1684862930}],"original_id":791},{"type":"pass","entity":"IRM","entity_type":"corporation","id":721,"created_at":1684864109,"original_id":792},{"type":"lay_tile","entity":"IRM","entity_type":"corporation","id":722,"created_at":1684864169,"hex":"O24","tile":"BC-0","rotation":0,"original_id":793},{"type":"pass","entity":"IRM","entity_type":"corporation","id":723,"created_at":1684864173,"auto_actions":[{"type":"pass","entity":"IRM","entity_type":"corporation","created_at":1684864172}],"original_id":794},{"type":"buy_train","entity":"IRM","entity_type":"corporation","id":724,"created_at":1684864186,"train":"7-1","price":750,"variant":"7","original_id":795},{"type":"pass","entity":"FNM","entity_type":"corporation","id":725,"created_at":1684864293,"original_id":796},{"type":"lay_tile","entity":"FNM","entity_type":"corporation","id":726,"created_at":1684864404,"hex":"N23","tile":"X23-0","rotation":0,"original_id":797},{"type":"pass","entity":"FNM","entity_type":"corporation","id":727,"created_at":1684864413,"original_id":798},{"type":"run_routes","entity":"FNM","entity_type":"corporation","id":728,"created_at":1684864999,"routes":[{"train":"5P-0","connections":[["N27","M28"],["N25","N27"],["M26","N25"],["N23","M24","L25","M26"]],"hexes":["M28","N27","N25","M26","N23"],"revenue":260,"revenue_str":"M28-N27-N25-M26-N23","nodes":["N27-0","M28-0","N25-0","M26-1","N23-3"]}],"original_id":799},{"type":"dividend","entity":"FNM","entity_type":"corporation","id":729,"created_at":1684865008,"kind":"payout","original_id":800},{"type":"pass","entity":"FNM","entity_type":"corporation","id":730,"created_at":1684865016,"original_id":801},{"type":"pass","entity":"FNM","entity_type":"corporation","id":731,"created_at":1684865020,"original_id":802},{"type":"pass","entity":"FNM","entity_type":"corporation","id":732,"created_at":1684865024,"original_id":803},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":733,"created_at":1684865210,"hex":"D11","tile":"9-10","rotation":1,"original_id":804},{"type":"run_routes","entity":"1","entity_type":"corporation","id":734,"created_at":1684865222,"routes":[{"train":"3/2P-0","connections":[["B3","A2"],["B1","B3"]],"hexes":["A2","B3","B1"],"revenue":80,"revenue_str":"A2-B3-B1","nodes":["B3-0","A2-0","B1-0"]}],"original_id":805},{"type":"sell_shares","entity":14765,"entity_type":"player","id":735,"created_at":1684865240,"shares":["MC_3"],"percent":10,"original_id":806},{"type":"buy_train","entity":"1","entity_type":"corporation","id":736,"created_at":1684865246,"train":"7-2","price":750,"variant":"7","original_id":807},{"type":"lay_tile","entity":"22","entity_type":"corporation","id":737,"created_at":1684869560,"hex":"P27","tile":"14-3","rotation":1,"original_id":808},{"type":"choose","entity":"22","entity_type":"corporation","id":738,"created_at":1684869623,"choice":"0","original_id":809},{"type":"run_routes","entity":"22","entity_type":"corporation","id":739,"created_at":1684869671,"routes":[{"train":"6-1","connections":[["L37","L39"],["M36","L37"],["N33","N35","M36"],["O32","N33"],["P31","O32"],["P31","P29","P27"],["P27","O26","N25"]],"hexes":["L39","L37","M36","N33","O32","P31","P27","N25"],"revenue":220,"revenue_str":"L39-L37-M36-N33-O32-P31-P27-N25","nodes":["L37-0","L39-0","M36-0","N33-0","O32-0","P31-0","P27-0","N25-0"]}],"original_id":810},{"type":"pass","entity":"FCM","entity_type":"corporation","id":740,"created_at":1684871039,"original_id":811},{"type":"lay_tile","entity":"FCM","entity_type":"corporation","id":741,"created_at":1684871111,"hex":"N27","tile":"X18-0","rotation":5,"original_id":812},{"type":"pass","entity":"FCM","entity_type":"corporation","id":742,"created_at":1684871122,"original_id":813},{"type":"run_routes","entity":"FCM","entity_type":"corporation","id":743,"created_at":1684871255,"routes":[{"train":"LP-0","connections":[["local","N23"]],"hexes":["N23"],"revenue":100,"revenue_str":"N23","nodes":[]},{"train":"5-1","connections":[["N27","M28"],["P27","P29","O28","N27"],["N25","O26","P27"],["N23","N25"]],"hexes":["M28","N27","P27","N25","N23"],"revenue":340,"revenue_str":"M28-N27-P27-N25-N23 ($50)","nodes":["N27-0","M28-0","P27-0","N25-0","N23-4"]},{"train":"6-2","connections":[["M26","L25","K24"],["N25","M26"],["N27","N25"],["M26","N27"],["N23","M24","M26"]],"hexes":["K24","M26","N25","N27","M26","N23"],"revenue":260,"revenue_str":"K24-M26-N25-N27-M26-N23","nodes":["M26-1","K24-0","N25-0","N27-0","M26-0","N23-3"]}],"original_id":814},{"type":"dividend","entity":"FCM","entity_type":"corporation","id":744,"created_at":1684871263,"kind":"payout","original_id":815},{"type":"pass","entity":"FCM","entity_type":"corporation","id":745,"created_at":1684871271,"original_id":816},{"type":"pass","entity":"FCM","entity_type":"corporation","id":746,"created_at":1684871421,"original_id":817},{"type":"pass","entity":"FNM","entity_type":"corporation","id":747,"created_at":1684871422,"original_id":818},{"type":"lay_tile","entity":"FNM","entity_type":"corporation","id":748,"created_at":1684871437,"hex":"N25","tile":"X11-0","rotation":3,"original_id":819},{"type":"pass","entity":"FNM","entity_type":"corporation","id":749,"created_at":1684871452,"original_id":820},{"type":"run_routes","entity":"FNM","entity_type":"corporation","id":750,"created_at":1684871481,"routes":[{"train":"5P-0","connections":[["N27","M28"],["N25","N27"],["M26","N25"],["N23","M24","L25","M26"]],"hexes":["M28","N27","N25","M26","N23"],"revenue":280,"revenue_str":"M28-N27-N25-M26-N23","nodes":["N27-0","M28-0","N25-0","M26-1","N23-3"]}],"original_id":821},{"type":"dividend","entity":"FNM","entity_type":"corporation","id":751,"created_at":1684871517,"kind":"payout","original_id":826},{"type":"pass","entity":"FNM","entity_type":"corporation","id":752,"created_at":1684871524,"original_id":827},{"type":"pass","entity":"FNM","entity_type":"corporation","id":753,"created_at":1684871530,"original_id":828},{"type":"pass","entity":"FNM","entity_type":"corporation","id":754,"created_at":1684871533,"original_id":829},{"type":"pass","entity":"MC","entity_type":"corporation","id":755,"created_at":1684871640,"original_id":830},{"type":"lay_tile","entity":"MC","entity_type":"corporation","id":756,"created_at":1684871845,"auto_actions":[{"type":"hex_token","entity":"MC","entity_type":"corporation","created_at":1684871843,"hex":"F21","token_type":"destination"}],"hex":"L17","tile":"X5-2","rotation":1,"original_id":835},{"type":"run_routes","entity":"MC","entity_type":"corporation","id":757,"created_at":1684871900,"routes":[{"train":"2P-0","connections":[["F21","F23"]],"hexes":["F23","F21"],"revenue":110,"revenue_str":"F23-F21","nodes":["F21-0","F23-0"]},{"train":"5-0","connections":[["K24","L25","M24","N23"],["K20","K22","K24"],["L19","K20"],["L17","M18","L19"]],"hexes":["N23","K24","K20","L19","L17"],"revenue":270,"revenue_str":"N23-K24-K20-L19-L17","nodes":["K24-0","N23-3","K20-0","L19-0","L17-0"]}],"original_id":836},{"type":"dividend","entity":"MC","entity_type":"corporation","id":758,"created_at":1684871915,"kind":"half","original_id":837},{"type":"pass","entity":"MC","entity_type":"corporation","id":759,"created_at":1684871924,"original_id":838},{"type":"merge","entity":"MC","entity_type":"corporation","id":760,"created_at":1684871927,"corporation":"1","original_id":839},{"type":"choose","entity":"MC","entity_type":"corporation","id":761,"created_at":1684871929,"choice":"money","original_id":840},{"type":"choose","entity":"MC","entity_type":"corporation","id":762,"created_at":1684871930,"choice":"remove","original_id":841},{"type":"discard_train","entity":"MC","entity_type":"corporation","id":763,"created_at":1684871935,"train":"3/2P-0","original_id":842},{"type":"pass","entity":"MC","entity_type":"corporation","id":764,"created_at":1684871946,"original_id":843},{"type":"pass","entity":"MIR","entity_type":"corporation","id":765,"created_at":1684897465,"original_id":844},{"type":"pass","entity":"MIR","entity_type":"corporation","id":766,"created_at":1684897476,"original_id":845},{"type":"pass","entity":"MIR","entity_type":"corporation","id":767,"created_at":1684897479,"original_id":846},{"type":"buy_train","entity":"MIR","entity_type":"corporation","id":768,"created_at":1684897556,"train":"6-1","price":128,"original_id":847},{"type":"pass","entity":"MIR","entity_type":"corporation","id":769,"created_at":1684897572,"original_id":848},{"type":"pass","entity":"MIR","entity_type":"corporation","id":770,"created_at":1684897595,"original_id":849},{"type":"pass","entity":"FCP","entity_type":"corporation","id":771,"created_at":1684908187,"original_id":850},{"type":"lay_tile","entity":"FCP","entity_type":"corporation","id":772,"created_at":1684908261,"hex":"D9","tile":"611-3","rotation":4,"original_id":853},{"type":"run_routes","entity":"FCP","entity_type":"corporation","id":773,"created_at":1684908399,"routes":[{"train":"7-0","connections":[["B1","A2"],["B3","B1"],["C8","C6","B5","B3"],["E8","D7","C8"],["D9","E8"],["F13","F11","E10","D9"]],"hexes":["A2","B1","B3","C8","E8","D9","F13"],"revenue":310,"revenue_str":"A2-B1-B3-C8-E8-D9-F13","nodes":["B1-0","A2-0","B3-0","C8-0","E8-0","D9-0","F13-0"]}],"original_id":854},{"type":"dividend","entity":"FCP","entity_type":"corporation","id":774,"created_at":1684908406,"kind":"payout","original_id":855},{"type":"pass","entity":"FCP","entity_type":"corporation","id":775,"created_at":1684908411,"auto_actions":[{"type":"pass","entity":"FCP","entity_type":"corporation","created_at":1684908413}],"original_id":856},{"type":"pass","entity":"FCP","entity_type":"corporation","id":776,"created_at":1684908452,"original_id":859},{"type":"pass","entity":"IRM","entity_type":"corporation","id":777,"created_at":1684914156,"original_id":860},{"type":"lay_tile","entity":"IRM","entity_type":"corporation","id":778,"created_at":1684914198,"hex":"O24","tile":"BC-0","rotation":0,"original_id":861},{"type":"pass","entity":"IRM","entity_type":"corporation","id":779,"created_at":1684914201,"auto_actions":[{"type":"pass","entity":"IRM","entity_type":"corporation","created_at":1684914200}],"original_id":862},{"type":"sell_shares","entity":"IRM","entity_type":"corporation","id":780,"created_at":1684914214,"shares":["IRM_5","IRM_6","IRM_7"],"percent":30,"share_price":50,"original_id":863},{"type":"buy_shares","entity":14244,"entity_type":"player","id":781,"created_at":1684914949,"shares":["IRM_5"],"percent":10,"share_price":false,"original_id":864},{"type":"buy_shares","entity":14765,"entity_type":"player","id":782,"created_at":1684916133,"shares":["IRM_6"],"percent":10,"share_price":false,"original_id":865},{"type":"sell_shares","entity":10041,"entity_type":"player","id":783,"created_at":1684926443,"shares":["MIR_1"],"percent":10,"original_id":866},{"type":"sell_shares","entity":10041,"entity_type":"player","id":784,"created_at":1684926452,"shares":["IRM_1"],"percent":10,"original_id":867},{"type":"buy_shares","entity":10041,"entity_type":"player","id":785,"created_at":1684926465,"shares":["FCM_6"],"percent":10,"share_price":false,"original_id":868},{"type":"buy_shares","entity":14244,"entity_type":"player","id":786,"created_at":1684927070,"shares":["MIR_1"],"percent":10,"share_price":false,"original_id":869},{"type":"buy_shares","entity":14765,"entity_type":"player","id":787,"created_at":1684927090,"shares":["IRM_7"],"percent":10,"share_price":false,"original_id":870},{"type":"program_share_pass","entity":10041,"entity_type":"player","id":788,"created_at":1684928858,"auto_actions":[{"type":"pass","entity":10041,"entity_type":"player","created_at":1684928857}],"unconditional":false,"indefinite":false,"original_id":871},{"type":"pass","entity":14244,"entity_type":"player","id":789,"created_at":1684930107,"original_id":872},{"type":"buy_shares","entity":14765,"entity_type":"player","id":790,"created_at":1684933389,"auto_actions":[{"type":"pass","entity":10041,"entity_type":"player","created_at":1684933388}],"shares":["IRM_1"],"percent":10,"share_price":false,"original_id":873},{"type":"pass","entity":14244,"entity_type":"player","id":791,"created_at":1684933439,"original_id":874},{"type":"buy_shares","entity":14765,"entity_type":"player","id":792,"created_at":1684933476,"auto_actions":[{"type":"pass","entity":10041,"entity_type":"player","created_at":1684933475}],"shares":["IRM_8"],"percent":10,"share_price":false,"original_id":875},{"type":"program_share_pass","entity":14244,"entity_type":"player","id":793,"created_at":1684933518,"auto_actions":[{"type":"pass","entity":14244,"entity_type":"player","created_at":1684933517}],"unconditional":false,"indefinite":false,"original_id":876},{"type":"buy_shares","entity":14765,"entity_type":"player","id":794,"created_at":1684933885,"auto_actions":[{"type":"pass","entity":10041,"entity_type":"player","created_at":1684933884},{"type":"pass","entity":14244,"entity_type":"player","created_at":1684933884}],"shares":["FCM_7"],"percent":10,"share_price":false,"original_id":877},{"type":"pass","entity":14765,"entity_type":"player","id":795,"created_at":1684933921,"original_id":878},{"type":"lay_tile","entity":"22","entity_type":"corporation","id":796,"created_at":1684936642,"hex":"P25","tile":"8-11","rotation":2,"original_id":879},{"type":"buy_train","entity":"22","entity_type":"corporation","id":797,"created_at":1684936708,"train":"7-1","price":200,"original_id":880},{"type":"pass","entity":"FCM","entity_type":"corporation","id":798,"created_at":1684936799,"original_id":881},{"type":"lay_tile","entity":"FCM","entity_type":"corporation","id":799,"created_at":1684936823,"hex":"K24","tile":"X18-1","rotation":5,"original_id":882},{"type":"pass","entity":"FCM","entity_type":"corporation","id":800,"created_at":1684936829,"original_id":883},{"type":"place_token","entity":"FCM","entity_type":"corporation","id":801,"created_at":1684936839,"city":"X18-1-0","slot":1,"tokener":"FCM","original_id":884},{"type":"run_routes","entity":"FCM","entity_type":"corporation","id":802,"created_at":1684936852,"routes":[{"train":"LP-0","connections":[["local","N23"]],"hexes":["N23"],"revenue":100,"revenue_str":"N23","nodes":[]},{"train":"5-1","connections":[["N27","M28"],["P27","P29","O28","N27"],["N25","O26","P27"],["N23","N25"]],"hexes":["M28","N27","P27","N25","N23"],"revenue":350,"revenue_str":"M28-N27-P27-N25-N23 ($50)","nodes":["N27-0","M28-0","P27-0","N25-0","N23-4"]},{"train":"6-2","connections":[["M26","L25","K24"],["N25","M26"],["N27","N25"],["M26","N27"],["N23","M24","M26"]],"hexes":["K24","M26","N25","N27","M26","N23"],"revenue":280,"revenue_str":"K24-M26-N25-N27-M26-N23","nodes":["M26-1","K24-0","N25-0","N27-0","M26-0","N23-3"]}],"original_id":885},{"type":"dividend","entity":"FCM","entity_type":"corporation","id":803,"created_at":1684936854,"kind":"payout","original_id":886},{"type":"pass","entity":"FCM","entity_type":"corporation","id":804,"created_at":1684936860,"original_id":887},{"type":"pass","entity":"FCM","entity_type":"corporation","id":805,"created_at":1684936865,"original_id":888},{"type":"pass","entity":"FNM","entity_type":"corporation","id":806,"created_at":1684936867,"original_id":889},{"type":"lay_tile","entity":"FNM","entity_type":"corporation","id":807,"created_at":1684936917,"hex":"P31","tile":"769-0","rotation":1,"original_id":890},{"type":"pass","entity":"FNM","entity_type":"corporation","id":808,"created_at":1684936921,"original_id":891},{"type":"run_routes","entity":"FNM","entity_type":"corporation","id":809,"created_at":1684936943,"routes":[{"train":"5P-0","connections":[["N27","M28"],["N25","N27"],["M26","N25"],["N23","M24","L25","M26"]],"hexes":["M28","N27","N25","M26","N23"],"revenue":280,"revenue_str":"M28-N27-N25-M26-N23","nodes":["N27-0","M28-0","N25-0","M26-1","N23-3"]}],"original_id":892},{"type":"dividend","entity":"FNM","entity_type":"corporation","id":810,"created_at":1684936953,"kind":"payout","original_id":893},{"type":"buy_train","entity":"FNM","entity_type":"corporation","id":811,"created_at":1684936964,"train":"7-3","price":750,"variant":"7","original_id":894},{"type":"pass","entity":"FNM","entity_type":"corporation","id":812,"created_at":1684936966,"original_id":895},{"type":"pass","entity":"FNM","entity_type":"corporation","id":813,"created_at":1684936968,"original_id":896},{"type":"pass","entity":"MC","entity_type":"corporation","id":814,"created_at":1684939278,"original_id":897},{"type":"lay_tile","entity":"MC","entity_type":"corporation","id":815,"created_at":1684939330,"hex":"E8","tile":"611-4","rotation":2,"original_id":898},{"type":"run_routes","entity":"MC","entity_type":"corporation","id":816,"created_at":1684939513,"routes":[{"train":"2P-0","connections":[["N25","N23"]],"hexes":["N23","N25"],"revenue":160,"revenue_str":"N23-N25","nodes":["N25-0","N23-4"]},{"train":"5-0","connections":[["K20","K22","K24"],["L19","K20"],["L17","M18","L19"],["J15","K16","L17"]],"hexes":["K24","K20","L19","L17","J15"],"revenue":210,"revenue_str":"K24-K20-L19-L17-J15","nodes":["K20-0","K24-0","L19-0","L17-0","J15-0"]},{"train":"7-2","connections":[["B1","A2"],["B3","B1"],["C8","C6","B5","B3"],["D9","C8"],["E8","D9"],["F7","E8"]],"hexes":["A2","B1","B3","C8","D9","E8","F7"],"revenue":330,"revenue_str":"A2-B1-B3-C8-D9-E8-F7","nodes":["B1-0","A2-0","B3-0","C8-0","D9-0","E8-0","F7-0"]}],"original_id":899},{"type":"choose","entity":"MC","entity_type":"corporation","id":817,"created_at":1684939524,"choice":"withhold","original_id":900},{"type":"dividend","entity":"MC","entity_type":"corporation","id":818,"created_at":1684939537,"kind":"half","original_id":901},{"type":"pass","entity":"MC","entity_type":"corporation","id":819,"created_at":1684939574,"original_id":902},{"type":"pass","entity":"MC","entity_type":"corporation","id":820,"created_at":1684939587,"original_id":903},{"type":"pass","entity":"FCP","entity_type":"corporation","id":821,"created_at":1684939609,"original_id":904},{"type":"lay_tile","entity":"FCP","entity_type":"corporation","id":822,"created_at":1684939656,"hex":"B1","tile":"X10-0","rotation":4,"original_id":909},{"type":"run_routes","entity":"FCP","entity_type":"corporation","id":823,"created_at":1684939678,"routes":[{"train":"7-0","connections":[["B1","A2"],["B3","B1"],["C8","C6","B5","B3"],["E8","D7","C8"],["D9","E8"],["F13","F11","E10","D9"]],"hexes":["A2","B1","B3","C8","E8","D9","F13"],"revenue":330,"revenue_str":"A2-B1-B3-C8-E8-D9-F13","nodes":["B1-0","A2-0","B3-0","C8-0","E8-0","D9-0","F13-0"]}],"original_id":910},{"type":"dividend","entity":"FCP","entity_type":"corporation","id":824,"created_at":1684939692,"kind":"payout","original_id":911},{"type":"buy_train","entity":"FCP","entity_type":"corporation","id":825,"created_at":1684939701,"auto_actions":[{"type":"pass","entity":"FCP","entity_type":"corporation","created_at":1684939699}],"train":"5-0","price":192,"original_id":912},{"type":"pass","entity":"FCP","entity_type":"corporation","id":826,"created_at":1684939706,"original_id":913},{"type":"pass","entity":"MIR","entity_type":"corporation","id":827,"created_at":1684940320,"original_id":914},{"type":"pass","entity":"MIR","entity_type":"corporation","id":828,"created_at":1684940348,"original_id":915},{"type":"choose","entity":"MIR","entity_type":"corporation","id":829,"created_at":1684940376,"choice":"0","original_id":916},{"type":"run_routes","entity":"MIR","entity_type":"corporation","id":830,"created_at":1684940437,"routes":[{"train":"6-1","connections":[["J13","I12"],["J15","J13"],["L17","K16","J15"],["L19","M18","L17"],["L19","M20","M22"],["M22","N23"]],"hexes":["I12","J13","J15","L17","L19","M22","N23"],"revenue":280,"revenue_str":"I12-J13-J15-L17-L19-M22-N23","nodes":["J13-0","I12-0","J15-0","L17-0","L19-0","M22-1","N23-2"]}],"original_id":917},{"type":"dividend","entity":"MIR","entity_type":"corporation","id":831,"created_at":1684940440,"kind":"payout","original_id":918},{"type":"pass","entity":"MIR","entity_type":"corporation","id":832,"created_at":1684940449,"auto_actions":[{"type":"pass","entity":"MIR","entity_type":"corporation","created_at":1684940447}],"original_id":919},{"type":"pass","entity":"MIR","entity_type":"corporation","id":833,"created_at":1684940450,"original_id":920},{"type":"pass","entity":"IRM","entity_type":"corporation","id":834,"created_at":1684940454,"original_id":921},{"type":"lay_tile","entity":"IRM","entity_type":"corporation","id":835,"created_at":1684940469,"hex":"O24","tile":"9-11","rotation":2,"original_id":922},{"type":"pass","entity":"IRM","entity_type":"corporation","id":836,"created_at":1684940475,"auto_actions":[{"type":"hex_token","entity":"IRM","entity_type":"corporation","created_at":1684940474,"hex":"N27","token_type":"destination"}],"original_id":923},{"type":"pass","entity":"IRM","entity_type":"corporation","id":837,"created_at":1684940477,"original_id":924},{"type":"sell_shares","entity":10041,"entity_type":"player","id":838,"created_at":1684940492,"shares":["FCM_6"],"percent":10,"original_id":925},{"type":"buy_train","entity":"IRM","entity_type":"corporation","id":839,"created_at":1684940496,"train":"7-4","price":750,"variant":"7","original_id":926},{"type":"lay_tile","entity":"22","entity_type":"corporation","id":840,"created_at":1684940518,"hex":"N39","tile":"3-0","rotation":1,"original_id":927},{"type":"choose","entity":"22","entity_type":"corporation","id":841,"created_at":1684940524,"choice":"0","original_id":928},{"type":"run_routes","entity":"22","entity_type":"corporation","id":842,"created_at":1684940554,"routes":[{"train":"7-1","connections":[["P27","P25","O24","N23"],["P31","P29","P27"],["O32","P31"],["O32","N33"],["N33","N35","M36"],["M36","L37"]],"hexes":["N23","P27","P31","O32","N33","M36","L37"],"revenue":230,"revenue_str":"N23-P27-P31-O32-N33-M36-L37","nodes":["P27-0","N23-5","P31-0","O32-0","N33-0","M36-0","L37-0"]}],"original_id":929},{"type":"pass","entity":"FCM","entity_type":"corporation","id":843,"created_at":1684940726,"original_id":930},{"type":"lay_tile","entity":"FCM","entity_type":"corporation","id":844,"created_at":1684940743,"hex":"P27","tile":"611-5","rotation":1,"original_id":931},{"type":"pass","entity":"FCM","entity_type":"corporation","id":845,"created_at":1684940750,"original_id":932},{"type":"run_routes","entity":"FCM","entity_type":"corporation","id":846,"created_at":1684940775,"routes":[{"train":"LP-0","connections":[["local","N23"]],"hexes":["N23"],"revenue":100,"revenue_str":"N23","nodes":[]},{"train":"5-1","connections":[["N27","M28"],["P27","P29","O28","N27"],["N25","O26","P27"],["N23","N25"]],"hexes":["M28","N27","P27","N25","N23"],"revenue":360,"revenue_str":"M28-N27-P27-N25-N23 ($50)","nodes":["N27-0","M28-0","P27-0","N25-0","N23-4"]},{"train":"6-2","connections":[["M26","L25","K24"],["N25","M26"],["N27","N25"],["M26","N27"],["N23","M24","M26"]],"hexes":["K24","M26","N25","N27","M26","N23"],"revenue":280,"revenue_str":"K24-M26-N25-N27-M26-N23","nodes":["M26-1","K24-0","N25-0","N27-0","M26-0","N23-3"]}],"original_id":933},{"type":"dividend","entity":"FCM","entity_type":"corporation","id":847,"created_at":1684940777,"kind":"payout","original_id":934},{"type":"pass","entity":"FCM","entity_type":"corporation","id":848,"created_at":1684940782,"original_id":935},{"type":"pass","entity":"FCM","entity_type":"corporation","id":849,"created_at":1684940793,"original_id":936},{"type":"pass","entity":"FNM","entity_type":"corporation","id":850,"created_at":1684940795,"original_id":937},{"type":"lay_tile","entity":"FNM","entity_type":"corporation","id":851,"created_at":1684940830,"hex":"G22","tile":"X18-2","rotation":5,"original_id":938},{"type":"pass","entity":"FNM","entity_type":"corporation","id":852,"created_at":1684941734,"original_id":939},{"type":"run_routes","entity":"FNM","entity_type":"corporation","id":853,"created_at":1684941827,"routes":[{"train":"5P-0","connections":[["N27","M28"],["P27","P29","O28","N27"],["N25","O26","P27"],["N23","N25"]],"hexes":["M28","N27","P27","N25","N23"],"revenue":310,"revenue_str":"M28-N27-P27-N25-N23","nodes":["N27-0","M28-0","P27-0","N25-0","N23-4"]},{"train":"7-3","connections":[["K24","L25","M24","N23"],["J23","K24"],["I22","J23"],["G22","H21","I22"],["G22","F21"],["F21","F23"]],"hexes":["N23","K24","J23","I22","G22","F21","F23"],"revenue":410,"revenue_str":"N23-K24-J23-I22-G22-F21-F23 ($50)","nodes":["K24-0","N23-3","J23-0","I22-0","G22-0","F21-0","F23-0"]}],"original_id":940},{"type":"dividend","entity":"FNM","entity_type":"corporation","id":854,"created_at":1684941839,"kind":"payout","original_id":941},{"type":"pass","entity":"FNM","entity_type":"corporation","id":855,"created_at":1684941846,"original_id":942},{"type":"pass","entity":"FNM","entity_type":"corporation","id":856,"created_at":1684941850,"original_id":943},{"type":"pass","entity":"MC","entity_type":"corporation","id":857,"created_at":1684944112,"original_id":944},{"type":"lay_tile","entity":"MC","entity_type":"corporation","id":858,"created_at":1684944222,"hex":"B3","tile":"611-6","rotation":4,"original_id":947},{"type":"run_routes","entity":"MC","entity_type":"corporation","id":859,"created_at":1684944227,"routes":[{"train":"2P-0","connections":[["N25","N23"]],"hexes":["N25","N23"],"revenue":160,"revenue_str":"N25-N23","nodes":["N25-0","N23-4"]},{"train":"7-2","connections":[["B1","A2"],["B3","B1"],["C8","C6","B5","B3"],["D9","C8"],["E8","D9"],["F7","E8"]],"hexes":["A2","B1","B3","C8","D9","E8","F7"],"revenue":350,"revenue_str":"A2-B1-B3-C8-D9-E8-F7","nodes":["B1-0","A2-0","B3-0","C8-0","D9-0","E8-0","F7-0"]}],"original_id":948},{"type":"dividend","entity":"MC","entity_type":"corporation","id":860,"created_at":1684944230,"kind":"payout","original_id":949},{"type":"buy_train","entity":"MC","entity_type":"corporation","id":861,"created_at":1684944233,"train":"7-5","price":1000,"variant":"E","original_id":950},{"type":"pass","entity":"FCP","entity_type":"corporation","id":862,"created_at":1684944238,"original_id":951},{"type":"lay_tile","entity":"FCP","entity_type":"corporation","id":863,"created_at":1684944270,"hex":"B1","tile":"X16-0","rotation":4,"original_id":954},{"type":"run_routes","entity":"FCP","entity_type":"corporation","id":864,"created_at":1684944393,"routes":[{"train":"7-0","connections":[["B1","A2"],["B3","B1"],["C8","C6","B5","B3"],["D9","C8"],["E8","D9"],["F7","E8"]],"hexes":["A2","B1","B3","C8","D9","E8","F7"],"revenue":360,"revenue_str":"A2-B1-B3-C8-D9-E8-F7","nodes":["B1-0","A2-0","B3-0","C8-0","D9-0","E8-0","F7-0"]},{"train":"5-0","connections":[["M22","N23"],["L19","M20","M22"],["L17","M18","L19"],["J15","K16","L17"]],"hexes":["N23","M22","L19","L17","J15"],"revenue":240,"revenue_str":"N23-M22-L19-L17-J15","nodes":["M22-1","N23-2","L19-0","L17-0","J15-0"]}],"original_id":955},{"type":"dividend","entity":"FCP","entity_type":"corporation","id":865,"created_at":1684944397,"auto_actions":[{"type":"pass","entity":"FCP","entity_type":"corporation","created_at":1684944395}],"kind":"payout","original_id":956},{"type":"pass","entity":"FCP","entity_type":"corporation","id":866,"created_at":1684944428,"original_id":959},{"type":"pass","entity":"MIR","entity_type":"corporation","id":867,"created_at":1684947360,"original_id":960},{"type":"lay_tile","entity":"MIR","entity_type":"corporation","id":868,"created_at":1684947388,"hex":"L19","tile":"X11-1","rotation":2,"original_id":961},{"type":"pass","entity":"MIR","entity_type":"corporation","id":869,"created_at":1684947393,"original_id":962},{"type":"choose","entity":"MIR","entity_type":"corporation","id":870,"created_at":1684947404,"choice":"0","original_id":963},{"type":"run_routes","entity":"MIR","entity_type":"corporation","id":871,"created_at":1684947413,"routes":[{"train":"6-1","connections":[["J13","I12"],["J15","J13"],["L17","K16","J15"],["L19","M18","L17"],["L19","M20","M22"],["M22","N23"]],"hexes":["I12","J13","J15","L17","L19","M22","N23"],"revenue":290,"revenue_str":"I12-J13-J15-L17-L19-M22-N23","nodes":["J13-0","I12-0","J15-0","L17-0","L19-0","M22-1","N23-2"]}],"original_id":964},{"type":"dividend","entity":"MIR","entity_type":"corporation","id":872,"created_at":1684947418,"kind":"payout","original_id":965},{"type":"pass","entity":"MIR","entity_type":"corporation","id":873,"created_at":1684947422,"original_id":966},{"type":"pass","entity":"MIR","entity_type":"corporation","id":874,"created_at":1684947474,"original_id":967},{"type":"pass","entity":"MIR","entity_type":"corporation","id":875,"created_at":1684947476,"original_id":968},{"type":"pass","entity":"IRM","entity_type":"corporation","id":876,"created_at":1684947486,"original_id":969},{"type":"pass","entity":"IRM","entity_type":"corporation","id":877,"created_at":1684947510,"original_id":970},{"type":"run_routes","entity":"IRM","entity_type":"corporation","id":878,"created_at":1684947549,"routes":[{"train":"7-4","connections":[["P27","P25","O24","N23"],["P27","P29","P31"],["P31","O32"],["O32","N33"],["N33","N35","M36"],["M36","L37"]],"hexes":["N23","P27","P31","O32","N33","M36","L37"],"revenue":240,"revenue_str":"N23-P27-P31-O32-N33-M36-L37","nodes":["P27-0","N23-5","P31-0","O32-0","N33-0","M36-0","L37-0"]}],"original_id":971},{"type":"dividend","entity":"IRM","entity_type":"corporation","id":879,"created_at":1684947552,"kind":"payout","original_id":972},{"type":"program_share_pass","entity":14244,"entity_type":"player","id":880,"created_at":1684947809,"auto_actions":[{"type":"pass","entity":14244,"entity_type":"player","created_at":1684947806}],"unconditional":false,"indefinite":false,"original_id":973},{"type":"buy_shares","entity":14765,"entity_type":"player","id":881,"created_at":1684949202,"shares":["FCM_8"],"percent":10,"share_price":false,"original_id":974},{"type":"buy_shares","entity":10041,"entity_type":"player","id":882,"created_at":1684955172,"auto_actions":[{"type":"pass","entity":14244,"entity_type":"player","created_at":1684955171}],"shares":["FCM_6"],"percent":10,"share_price":false,"original_id":975},{"type":"sell_shares","entity":14765,"entity_type":"player","id":883,"created_at":1684955257,"shares":["IRM_6","IRM_7","IRM_1","IRM_8"],"percent":40,"original_id":978},{"type":"buy_shares","entity":14765,"entity_type":"player","id":884,"created_at":1684955264,"shares":["MC_1"],"percent":10,"share_price":false,"original_id":979},{"type":"buy_shares","entity":10041,"entity_type":"player","id":885,"created_at":1684958209,"auto_actions":[{"type":"program_disable","entity":14244,"entity_type":"player","created_at":1684958207,"reason":"Shares were sold"}],"shares":["IRM_6"],"percent":10,"share_price":false,"original_id":980},{"type":"pass","entity":14244,"entity_type":"player","id":886,"created_at":1684965547,"original_id":981},{"type":"buy_shares","entity":14765,"entity_type":"player","id":887,"created_at":1684965600,"shares":["FNM_5"],"percent":10,"share_price":false,"original_id":982},{"type":"buy_shares","entity":10041,"entity_type":"player","id":888,"created_at":1684984385,"shares":["FNM_6"],"percent":10,"share_price":false,"original_id":983},{"type":"program_share_pass","entity":14244,"entity_type":"player","id":889,"created_at":1684993522,"auto_actions":[{"type":"pass","entity":14244,"entity_type":"player","created_at":1684993521}],"unconditional":false,"indefinite":false,"original_id":984},{"type":"buy_shares","entity":14765,"entity_type":"player","id":890,"created_at":1684994817,"shares":["FNM_7"],"percent":10,"share_price":false,"original_id":985},{"type":"sell_shares","entity":10041,"entity_type":"player","id":891,"created_at":1684998025,"shares":["FCM_6"],"percent":10,"original_id":986},{"type":"buy_shares","entity":10041,"entity_type":"player","id":892,"created_at":1684998031,"auto_actions":[{"type":"program_disable","entity":14244,"entity_type":"player","created_at":1684998030,"reason":"Shares were sold"}],"shares":["FCP_6"],"percent":10,"share_price":false,"original_id":987},{"type":"program_share_pass","entity":14244,"entity_type":"player","id":893,"created_at":1685004930,"auto_actions":[{"type":"pass","entity":14244,"entity_type":"player","created_at":1685004928}],"unconditional":false,"indefinite":false,"original_id":988},{"type":"buy_shares","entity":14765,"entity_type":"player","id":894,"created_at":1685009124,"shares":["FCM_6"],"percent":10,"share_price":false,"original_id":989},{"type":"buy_shares","entity":10041,"entity_type":"player","id":895,"created_at":1685010017,"auto_actions":[{"type":"pass","entity":14244,"entity_type":"player","created_at":1685010016}],"shares":["FCP_7"],"percent":10,"share_price":false,"original_id":990},{"type":"pass","entity":14765,"entity_type":"player","id":896,"created_at":1685010183,"original_id":991},{"type":"pass","entity":10041,"entity_type":"player","id":897,"created_at":1685010982,"original_id":992},{"type":"pass","entity":"22","entity_type":"corporation","id":898,"created_at":1685011002,"original_id":993},{"type":"choose","entity":"22","entity_type":"corporation","id":899,"created_at":1685011007,"choice":"0","original_id":994},{"type":"run_routes","entity":"22","entity_type":"corporation","id":900,"created_at":1685011022,"routes":[{"train":"7-1","connections":[["P27","P25","O24","N23"],["P31","P29","P27"],["O32","P31"],["O32","N33"],["N33","N35","M36"],["M36","L37"]],"hexes":["N23","P27","P31","O32","N33","M36","L37"],"revenue":240,"revenue_str":"N23-P27-P31-O32-N33-M36-L37","nodes":["P27-0","N23-5","P31-0","O32-0","N33-0","M36-0","L37-0"]}],"original_id":995},{"type":"pass","entity":"FCM","entity_type":"corporation","id":901,"created_at":1685011044,"original_id":996},{"type":"lay_tile","entity":"FCM","entity_type":"corporation","id":902,"created_at":1685011065,"hex":"I22","tile":"X5-0","rotation":1,"original_id":997},{"type":"pass","entity":"FCM","entity_type":"corporation","id":903,"created_at":1685011070,"original_id":998},{"type":"run_routes","entity":"FCM","entity_type":"corporation","id":904,"created_at":1685011089,"routes":[{"train":"LP-0","connections":[["local","N23"]],"hexes":["N23"],"revenue":100,"revenue_str":"N23","nodes":[]},{"train":"5-1","connections":[["N27","M28"],["P27","P29","O28","N27"],["N25","O26","P27"],["N23","N25"]],"hexes":["M28","N27","P27","N25","N23"],"revenue":360,"revenue_str":"M28-N27-P27-N25-N23 ($50)","nodes":["N27-0","M28-0","P27-0","N25-0","N23-4"]},{"train":"6-2","connections":[["M26","L25","K24"],["N25","M26"],["N27","N25"],["M26","N27"],["N23","M24","M26"]],"hexes":["K24","M26","N25","N27","M26","N23"],"revenue":280,"revenue_str":"K24-M26-N25-N27-M26-N23","nodes":["M26-1","K24-0","N25-0","N27-0","M26-0","N23-3"]}],"original_id":999},{"type":"choose","entity":"FCM","entity_type":"corporation","id":905,"created_at":1685011102,"choice":"payout","original_id":1000},{"type":"dividend","entity":"FCM","entity_type":"corporation","id":906,"created_at":1685011104,"kind":"payout","original_id":1001},{"type":"pass","entity":"FCM","entity_type":"corporation","id":907,"created_at":1685011109,"original_id":1002},{"type":"pass","entity":"FNM","entity_type":"corporation","id":908,"created_at":1685011112,"original_id":1003},{"type":"lay_tile","entity":"FNM","entity_type":"corporation","id":909,"created_at":1685011127,"hex":"I22","tile":"X11-2","rotation":1,"original_id":1004},{"type":"pass","entity":"FNM","entity_type":"corporation","id":910,"created_at":1685011136,"original_id":1005},{"type":"run_routes","entity":"FNM","entity_type":"corporation","id":911,"created_at":1685011158,"routes":[{"train":"5P-0","connections":[["N27","M28"],["P27","P29","O28","N27"],["N25","O26","P27"],["N23","N25"]],"hexes":["M28","N27","P27","N25","N23"],"revenue":310,"revenue_str":"M28-N27-P27-N25-N23","nodes":["N27-0","M28-0","P27-0","N25-0","N23-4"]},{"train":"7-3","connections":[["K24","L25","M24","N23"],["J23","K24"],["I22","J23"],["G22","H21","I22"],["G22","F21"],["F21","F23"]],"hexes":["N23","K24","J23","I22","G22","F21","F23"],"revenue":430,"revenue_str":"N23-K24-J23-I22-G22-F21-F23 ($50)","nodes":["K24-0","N23-3","J23-0","I22-0","G22-0","F21-0","F23-0"]}],"original_id":1006},{"type":"dividend","entity":"FNM","entity_type":"corporation","id":912,"created_at":1685011162,"kind":"payout","original_id":1007},{"type":"pass","entity":"FNM","entity_type":"corporation","id":913,"created_at":1685011169,"original_id":1008},{"type":"pass","entity":"FNM","entity_type":"corporation","id":914,"created_at":1685011171,"original_id":1009},{"type":"pass","entity":"MC","entity_type":"corporation","id":915,"created_at":1685013855,"original_id":1010},{"type":"lay_tile","entity":"MC","entity_type":"corporation","id":916,"created_at":1685013926,"hex":"F13","tile":"63-0","rotation":0,"original_id":1011},{"type":"run_routes","entity":"MC","entity_type":"corporation","id":917,"created_at":1685014070,"routes":[{"train":"2P-0","connections":[["N25","N23"]],"hexes":["N25","N23"],"revenue":160,"revenue_str":"N25-N23","nodes":["N25-0","N23-4"]},{"train":"7-2","connections":[["B1","A2"],["B3","B1"],["C8","C6","B5","B3"],["D9","C8"],["E8","D9"],["F7","E8"]],"hexes":["A2","B1","B3","C8","D9","E8","F7"],"revenue":360,"revenue_str":"A2-B1-B3-C8-D9-E8-F7","nodes":["B1-0","A2-0","B3-0","C8-0","D9-0","E8-0","F7-0"]},{"train":"7-5","connections":[["M22","N23"],["L19","M20","M22"],["L17","M18","L19"],["J15","K16","L17"],["J13","J15"],["I12","J13"],["H11","I12"],["G10","H11"],["F13","F11","G10"],["F15","F13"],["F21","F19","F17","F15"]],"hexes":["N23","M22","L19","L17","J15","J13","I12","H11","G10","F13","F15","F21"],"revenue":500,"revenue_str":"N23-M22-L19-L17-J15-J13-I12-H11-G10-F13-F15-F21 ($100)","nodes":["M22-1","N23-2","L19-0","L17-0","J15-0","J13-0","I12-0","H11-0","G10-0","F13-0","F15-0","F21-0"]}],"original_id":1012},{"type":"dividend","entity":"MC","entity_type":"corporation","id":918,"created_at":1685014073,"kind":"payout","original_id":1013},{"type":"pass","entity":"FCP","entity_type":"corporation","id":919,"created_at":1685014079,"original_id":1014},{"type":"lay_tile","entity":"FCP","entity_type":"corporation","id":920,"created_at":1685014167,"hex":"J15","tile":"63-1","rotation":0,"original_id":1021},{"type":"pass","entity":"FCP","entity_type":"corporation","id":921,"created_at":1685014181,"original_id":1022},{"type":"run_routes","entity":"FCP","entity_type":"corporation","id":922,"created_at":1685014198,"routes":[{"train":"7-0","connections":[["B1","A2"],["B3","B1"],["C8","C6","B5","B3"],["D9","C8"],["E8","D9"],["F7","E8"]],"hexes":["A2","B1","B3","C8","D9","E8","F7"],"revenue":360,"revenue_str":"A2-B1-B3-C8-D9-E8-F7","nodes":["B1-0","A2-0","B3-0","C8-0","D9-0","E8-0","F7-0"]},{"train":"5-0","connections":[["M22","N23"],["L19","M20","M22"],["L17","M18","L19"],["J15","K16","L17"]],"hexes":["N23","M22","L19","L17","J15"],"revenue":260,"revenue_str":"N23-M22-L19-L17-J15","nodes":["M22-1","N23-2","L19-0","L17-0","J15-0"]}],"original_id":1023},{"type":"dividend","entity":"FCP","entity_type":"corporation","id":923,"created_at":1685014205,"kind":"payout","original_id":1024},{"type":"pass","entity":"FCP","entity_type":"corporation","id":924,"created_at":1685014215,"original_id":1025},{"type":"sell_shares","entity":"FCP","entity_type":"corporation","id":925,"created_at":1685014221,"shares":["FCP_8"],"percent":10,"share_price":180,"original_id":1026},{"type":"pass","entity":"MIR","entity_type":"corporation","id":926,"created_at":1685021959,"original_id":1027},{"type":"pass","entity":"MIR","entity_type":"corporation","id":927,"created_at":1685021964,"original_id":1028},{"type":"pass","entity":"MIR","entity_type":"corporation","id":928,"created_at":1685021965,"original_id":1029},{"type":"choose","entity":"MIR","entity_type":"corporation","id":929,"created_at":1685021970,"choice":"0","original_id":1030},{"type":"run_routes","entity":"MIR","entity_type":"corporation","id":930,"created_at":1685021972,"routes":[{"train":"6-1","connections":[["J13","I12"],["J15","J13"],["L17","K16","J15"],["L19","M18","L17"],["L19","M20","M22"],["M22","N23"]],"hexes":["I12","J13","J15","L17","L19","M22","N23"],"revenue":300,"revenue_str":"I12-J13-J15-L17-L19-M22-N23","nodes":["J13-0","I12-0","J15-0","L17-0","L19-0","M22-1","N23-2"]}],"original_id":1031},{"type":"dividend","entity":"MIR","entity_type":"corporation","id":931,"created_at":1685021974,"kind":"payout","original_id":1032},{"type":"pass","entity":"MIR","entity_type":"corporation","id":932,"created_at":1685021975,"original_id":1033},{"type":"pass","entity":"MIR","entity_type":"corporation","id":933,"created_at":1685021981,"original_id":1034},{"type":"pass","entity":"MIR","entity_type":"corporation","id":934,"created_at":1685021982,"original_id":1035},{"type":"pass","entity":"IRM","entity_type":"corporation","id":935,"created_at":1685021984,"original_id":1036},{"type":"pass","entity":"IRM","entity_type":"corporation","id":936,"created_at":1685021986,"original_id":1037},{"type":"run_routes","entity":"IRM","entity_type":"corporation","id":937,"created_at":1685021987,"routes":[{"train":"7-4","connections":[["P27","P25","O24","N23"],["P27","P29","P31"],["P31","O32"],["O32","N33"],["N33","N35","M36"],["M36","L37"]],"hexes":["N23","P27","P31","O32","N33","M36","L37"],"revenue":240,"revenue_str":"N23-P27-P31-O32-N33-M36-L37","nodes":["P27-0","N23-5","P31-0","O32-0","N33-0","M36-0","L37-0"]}],"original_id":1038},{"type":"dividend","entity":"IRM","entity_type":"corporation","id":938,"created_at":1685021989,"kind":"payout","original_id":1039},{"type":"pass","entity":"22","entity_type":"corporation","id":939,"created_at":1685021993,"original_id":1040},{"type":"run_routes","entity":"22","entity_type":"corporation","id":940,"created_at":1685021995,"routes":[{"train":"7-1","connections":[["P27","P25","O24","N23"],["P31","P29","P27"],["O32","P31"],["O32","N33"],["N33","N35","M36"],["M36","L37"]],"hexes":["N23","P27","P31","O32","N33","M36","L37"],"revenue":240,"revenue_str":"N23-P27-P31-O32-N33-M36-L37","nodes":["P27-0","N23-5","P31-0","O32-0","N33-0","M36-0","L37-0"]}],"original_id":1041},{"type":"pass","entity":"FCM","entity_type":"corporation","id":941,"created_at":1685022314,"original_id":1042},{"type":"pass","entity":"FCM","entity_type":"corporation","id":942,"created_at":1685022329,"original_id":1043},{"type":"run_routes","entity":"FCM","entity_type":"corporation","id":943,"created_at":1685022341,"routes":[{"train":"LP-0","connections":[["local","N23"]],"hexes":["N23"],"revenue":100,"revenue_str":"N23","nodes":[]},{"train":"5-1","connections":[["N27","M28"],["P27","P29","O28","N27"],["N25","O26","P27"],["N23","N25"]],"hexes":["M28","N27","P27","N25","N23"],"revenue":360,"revenue_str":"M28-N27-P27-N25-N23 ($50)","nodes":["N27-0","M28-0","P27-0","N25-0","N23-4"]},{"train":"6-2","connections":[["M26","L25","K24"],["N25","M26"],["N27","N25"],["M26","N27"],["N23","M24","M26"]],"hexes":["K24","M26","N25","N27","M26","N23"],"revenue":280,"revenue_str":"K24-M26-N25-N27-M26-N23","nodes":["M26-1","K24-0","N25-0","N27-0","M26-0","N23-3"]}],"original_id":1044},{"type":"dividend","entity":"FCM","entity_type":"corporation","id":944,"created_at":1685022349,"kind":"payout","original_id":1045},{"type":"pass","entity":"FCM","entity_type":"corporation","id":945,"created_at":1685022352,"original_id":1046},{"type":"pass","entity":"FNM","entity_type":"corporation","id":946,"created_at":1685022355,"original_id":1047},{"type":"pass","entity":"FNM","entity_type":"corporation","id":947,"created_at":1685022368,"original_id":1048},{"type":"run_routes","entity":"FNM","entity_type":"corporation","id":948,"created_at":1685022370,"routes":[{"train":"5P-0","connections":[["N27","M28"],["P27","P29","O28","N27"],["N25","O26","P27"],["N23","N25"]],"hexes":["M28","N27","P27","N25","N23"],"revenue":310,"revenue_str":"M28-N27-P27-N25-N23","nodes":["N27-0","M28-0","P27-0","N25-0","N23-4"]},{"train":"7-3","connections":[["K24","L25","M24","N23"],["J23","K24"],["I22","J23"],["G22","H21","I22"],["G22","F21"],["F21","F23"]],"hexes":["N23","K24","J23","I22","G22","F21","F23"],"revenue":430,"revenue_str":"N23-K24-J23-I22-G22-F21-F23 ($50)","nodes":["K24-0","N23-3","J23-0","I22-0","G22-0","F21-0","F23-0"]}],"original_id":1049},{"type":"dividend","entity":"FNM","entity_type":"corporation","id":949,"created_at":1685022374,"kind":"payout","original_id":1050},{"type":"pass","entity":"FNM","entity_type":"corporation","id":950,"created_at":1685022376,"original_id":1051},{"type":"pass","entity":"FNM","entity_type":"corporation","id":951,"created_at":1685022382,"original_id":1052},{"type":"pass","entity":"MC","entity_type":"corporation","id":952,"created_at":1685022506,"original_id":1053},{"type":"lay_tile","entity":"MC","entity_type":"corporation","id":953,"created_at":1685022516,"hex":"J13","tile":"611-0","rotation":1,"original_id":1054},{"type":"run_routes","entity":"MC","entity_type":"corporation","id":954,"created_at":1685022523,"routes":[{"train":"2P-0","connections":[["N25","N23"]],"hexes":["N25","N23"],"revenue":160,"revenue_str":"N25-N23","nodes":["N25-0","N23-4"]},{"train":"7-2","connections":[["B1","A2"],["B3","B1"],["C8","C6","B5","B3"],["D9","C8"],["E8","D9"],["F7","E8"]],"hexes":["A2","B1","B3","C8","D9","E8","F7"],"revenue":360,"revenue_str":"A2-B1-B3-C8-D9-E8-F7","nodes":["B1-0","A2-0","B3-0","C8-0","D9-0","E8-0","F7-0"]},{"train":"7-5","connections":[["M22","N23"],["L19","M20","M22"],["L17","M18","L19"],["J15","K16","L17"],["J13","J15"],["I12","J13"],["H11","I12"],["G10","H11"],["F13","F11","G10"],["F15","F13"],["F21","F19","F17","F15"]],"hexes":["N23","M22","L19","L17","J15","J13","I12","H11","G10","F13","F15","F21"],"revenue":500,"revenue_str":"N23-M22-L19-L17-J15-J13-I12-H11-G10-F13-F15-F21 ($100)","nodes":["M22-1","N23-2","L19-0","L17-0","J15-0","J13-0","I12-0","H11-0","G10-0","F13-0","F15-0","F21-0"]}],"original_id":1055},{"type":"dividend","entity":"MC","entity_type":"corporation","id":955,"created_at":1685022524,"kind":"payout","original_id":1056},{"type":"pass","entity":"FCP","entity_type":"corporation","id":956,"created_at":1685022527,"original_id":1057},{"type":"lay_tile","entity":"FCP","entity_type":"corporation","id":957,"created_at":1685022541,"hex":"F15","tile":"14-1","rotation":0,"original_id":1058},{"type":"pass","entity":"FCP","entity_type":"corporation","id":958,"created_at":1685022548,"original_id":1059},{"type":"run_routes","entity":"FCP","entity_type":"corporation","id":959,"created_at":1685022557,"routes":[{"train":"7-0","connections":[["B1","A2"],["B3","B1"],["C8","C6","B5","B3"],["D9","C8"],["E8","D9"],["F7","E8"]],"hexes":["A2","B1","B3","C8","D9","E8","F7"],"revenue":360,"revenue_str":"A2-B1-B3-C8-D9-E8-F7","nodes":["B1-0","A2-0","B3-0","C8-0","D9-0","E8-0","F7-0"]},{"train":"5-0","connections":[["M22","N23"],["L19","M20","M22"],["L17","M18","L19"],["J15","K16","L17"]],"hexes":["N23","M22","L19","L17","J15"],"revenue":260,"revenue_str":"N23-M22-L19-L17-J15","nodes":["M22-1","N23-2","L19-0","L17-0","J15-0"]}],"original_id":1060},{"type":"dividend","entity":"FCP","entity_type":"corporation","id":960,"created_at":1685022558,"kind":"payout","original_id":1061},{"type":"merge","entity":"FCP","entity_type":"corporation","id":961,"created_at":1685022574,"corporation":"6","original_id":1064},{"type":"choose","entity":"FCP","entity_type":"corporation","id":962,"created_at":1685022576,"choice":"money","original_id":1065},{"type":"choose","entity":"FCP","entity_type":"corporation","id":963,"created_at":1685022578,"choice":"replace","original_id":1066},{"type":"buy_shares","entity":"FCP","entity_type":"corporation","id":964,"created_at":1685022591,"shares":["FCP_8"],"percent":10,"original_id":1067},{"type":"pass","entity":"MIR","entity_type":"corporation","id":965,"created_at":1685024978,"original_id":1068},{"type":"pass","entity":"MIR","entity_type":"corporation","id":966,"created_at":1685024979,"original_id":1069},{"type":"pass","entity":"MIR","entity_type":"corporation","id":967,"created_at":1685024980,"original_id":1070},{"type":"choose","entity":"MIR","entity_type":"corporation","id":968,"created_at":1685024984,"choice":"0","original_id":1071},{"type":"run_routes","entity":"MIR","entity_type":"corporation","id":969,"created_at":1685024986,"routes":[{"train":"6-1","connections":[["J13","I12"],["J15","J13"],["L17","K16","J15"],["L19","M18","L17"],["L19","M20","M22"],["M22","N23"]],"hexes":["I12","J13","J15","L17","L19","M22","N23"],"revenue":310,"revenue_str":"I12-J13-J15-L17-L19-M22-N23","nodes":["J13-0","I12-0","J15-0","L17-0","L19-0","M22-1","N23-2"]}],"original_id":1072},{"type":"dividend","entity":"MIR","entity_type":"corporation","id":970,"created_at":1685024988,"kind":"payout","original_id":1073},{"type":"pass","entity":"MIR","entity_type":"corporation","id":971,"created_at":1685024990,"original_id":1074},{"type":"pass","entity":"MIR","entity_type":"corporation","id":972,"created_at":1685024991,"original_id":1075},{"type":"pass","entity":"MIR","entity_type":"corporation","id":973,"created_at":1685024992,"original_id":1076},{"type":"pass","entity":"IRM","entity_type":"corporation","id":974,"created_at":1685024993,"original_id":1077},{"type":"pass","entity":"IRM","entity_type":"corporation","id":975,"created_at":1685024994,"original_id":1078},{"type":"run_routes","entity":"IRM","entity_type":"corporation","id":976,"created_at":1685024995,"routes":[{"train":"7-4","connections":[["P27","P25","O24","N23"],["P27","P29","P31"],["P31","O32"],["O32","N33"],["N33","N35","M36"],["M36","L37"]],"hexes":["N23","P27","P31","O32","N33","M36","L37"],"revenue":240,"revenue_str":"N23-P27-P31-O32-N33-M36-L37","nodes":["P27-0","N23-5","P31-0","O32-0","N33-0","M36-0","L37-0"]}],"original_id":1079},{"type":"dividend","entity":"IRM","entity_type":"corporation","id":977,"created_at":1685024997,"kind":"payout","original_id":1080}],"loaded":true,"created_at":1684046045,"updated_at":1685042669,"finished_at":1685042669} \ No newline at end of file diff --git a/public/fixtures/1822PNW/124005.json b/public/fixtures/1822PNW/124005.json new file mode 100644 index 0000000000..61a6074b25 --- /dev/null +++ b/public/fixtures/1822PNW/124005.json @@ -0,0 +1 @@ +{"id":124005,"description":"Fast live","user":{"id":605,"name":"Player 3"},"players":[{"id":13048,"name":"Player 1"},{"id":1324,"name":"Player 2"},{"id":605,"name":"Player 3"},{"id":2089,"name":"Player 4"}],"min_players":3,"max_players":5,"title":"1822PNW","settings":{"seed":564676602,"is_async":false,"unlisted":false,"auto_routing":true,"player_order":null},"user_settings":null,"status":"finished","turn":9,"round":"Operating Round","acting":[13048,1324,605,2089],"result":{"605":13164,"1324":12670,"2089":9878,"13048":10428},"actions":[{"type":"bid","price":100,"entity":13048,"company":"MC","entity_type":"player","id":6,"user":13048,"created_at":1684891273},{"type":"bid","price":0,"entity":13048,"company":"P2","entity_type":"player","id":7,"user":13048,"created_at":1684891284},{"type":"bid","price":0,"entity":13048,"company":"P4","entity_type":"player","id":8,"user":13048,"created_at":1684891287},{"type":"undo","entity":1324,"entity_type":"player","id":11,"user":13048,"created_at":1684891305},{"type":"undo","entity":13048,"action_id":0,"entity_type":"player","id":14,"user":13048,"created_at":1684891314},{"type":"bid","entity":13048,"entity_type":"player","id":16,"created_at":1684891329,"company":"M2","price":100},{"type":"bid","entity":13048,"entity_type":"player","id":17,"created_at":1684891333,"company":"P2","price":0},{"type":"bid","entity":13048,"entity_type":"player","id":19,"created_at":1684891334,"company":"P4","price":0},{"type":"bid","entity":1324,"entity_type":"player","id":23,"created_at":1684891364,"company":"M6","price":145},{"type":"bid","entity":1324,"entity_type":"player","id":24,"created_at":1684891375,"company":"P4","price":80},{"type":"pass","entity":1324,"entity_type":"player","id":25,"created_at":1684891376},{"type":"bid","entity":605,"entity_type":"player","id":27,"created_at":1684891396,"company":"P4","price":85},{"type":"bid","entity":605,"entity_type":"player","id":28,"created_at":1684891398,"company":"M6","price":150},{"type":"pass","entity":605,"entity_type":"player","id":29,"created_at":1684891399},{"type":"bid","entity":2089,"entity_type":"player","id":36,"created_at":1684891463,"company":"P2","price":20},{"type":"bid","entity":2089,"entity_type":"player","id":37,"created_at":1684891471,"company":"M2","price":110},{"type":"pass","entity":2089,"entity_type":"player","id":38,"created_at":1684891475},{"type":"bid","entity":13048,"entity_type":"player","id":40,"created_at":1684891489,"company":"M2","price":120},{"type":"bid","entity":13048,"entity_type":"player","id":41,"created_at":1684891493,"company":"P2","price":30},{"type":"pass","entity":13048,"entity_type":"player","id":42,"created_at":1684891497},{"type":"bid","entity":1324,"entity_type":"player","id":43,"created_at":1684891501,"company":"M6","price":155},{"type":"bid","entity":1324,"entity_type":"player","id":44,"created_at":1684891503,"company":"P4","price":90},{"type":"pass","entity":1324,"entity_type":"player","id":45,"created_at":1684891504},{"type":"bid","entity":605,"entity_type":"player","id":46,"created_at":1684891511,"company":"M6","price":160},{"type":"pass","entity":605,"entity_type":"player","id":47,"created_at":1684891514},{"type":"bid","entity":2089,"entity_type":"player","id":48,"created_at":1684891547,"company":"P1","price":20},{"type":"pass","entity":2089,"entity_type":"player","id":49,"created_at":1684891550},{"type":"bid","entity":13048,"entity_type":"player","id":50,"created_at":1684891565,"company":"P1","price":30},{"type":"pass","entity":13048,"entity_type":"player","id":51,"created_at":1684891579},{"type":"bid","entity":1324,"entity_type":"player","id":52,"created_at":1684891588,"company":"M6","price":165},{"type":"pass","entity":1324,"entity_type":"player","id":53,"created_at":1684891589},{"type":"bid","entity":605,"entity_type":"player","id":54,"created_at":1684891594,"company":"M6","price":170},{"type":"pass","entity":605,"entity_type":"player","id":55,"created_at":1684891597},{"type":"bid","entity":2089,"entity_type":"player","id":56,"created_at":1684891609,"company":"P2","price":40},{"type":"bid","entity":2089,"entity_type":"player","id":57,"created_at":1684891616,"company":"M4","price":100},{"type":"pass","entity":2089,"entity_type":"player","id":58,"created_at":1684891617},{"type":"pass","entity":13048,"entity_type":"player","id":59,"created_at":1684891621},{"type":"bid","entity":1324,"entity_type":"player","id":60,"created_at":1684891625,"company":"M6","price":175},{"type":"pass","entity":1324,"entity_type":"player","id":61,"created_at":1684891627},{"type":"bid","entity":605,"entity_type":"player","id":62,"created_at":1684891631,"company":"P4","price":95},{"type":"pass","entity":605,"entity_type":"player","id":63,"created_at":1684891635},{"type":"pass","entity":2089,"entity_type":"player","id":64,"created_at":1684891641},{"type":"pass","entity":13048,"entity_type":"player","id":65,"created_at":1684891648},{"type":"bid","entity":1324,"entity_type":"player","id":66,"created_at":1684891651,"company":"P4","price":100},{"type":"pass","entity":1324,"entity_type":"player","id":67,"created_at":1684891653},{"type":"bid","entity":605,"entity_type":"player","id":68,"created_at":1684891660,"company":"P1","price":50},{"type":"pass","entity":605,"entity_type":"player","id":69,"created_at":1684891661},{"type":"pass","entity":2089,"entity_type":"player","id":70,"created_at":1684891665},{"type":"bid","entity":13048,"entity_type":"player","id":71,"created_at":1684891673,"company":"P1","price":60},{"type":"pass","entity":13048,"entity_type":"player","id":72,"created_at":1684891676},{"type":"pass","entity":1324,"entity_type":"player","id":73,"created_at":1684891689},{"type":"bid","entity":605,"entity_type":"player","id":74,"created_at":1684891694,"company":"P1","price":65},{"type":"bid","entity":605,"entity_type":"player","id":75,"created_at":1684891696,"company":"P2","price":45},{"type":"pass","entity":605,"entity_type":"player","id":76,"created_at":1684891698},{"type":"bid","entity":2089,"entity_type":"player","id":77,"created_at":1684891719,"company":"P2","price":50},{"type":"pass","entity":2089,"entity_type":"player","id":78,"created_at":1684891722},{"type":"bid","entity":13048,"entity_type":"player","id":79,"created_at":1684891738,"company":"P1","price":80},{"type":"pass","entity":13048,"entity_type":"player","id":80,"created_at":1684891741},{"type":"pass","entity":1324,"entity_type":"player","id":81,"created_at":1684891749},{"type":"bid","entity":605,"entity_type":"player","id":82,"created_at":1684891754,"company":"P2","price":55},{"type":"pass","entity":605,"entity_type":"player","id":83,"created_at":1684891756},{"type":"pass","entity":2089,"entity_type":"player","id":84,"created_at":1684891779},{"type":"pass","entity":13048,"entity_type":"player","id":85,"created_at":1684891782},{"type":"pass","entity":1324,"entity_type":"player","id":86,"created_at":1684891785},{"type":"pass","entity":605,"entity_type":"player","id":87,"created_at":1684891794},{"type":"pass","entity":"6","entity_type":"corporation","id":88,"created_at":1684891807},{"type":"acquire_company","entity":"6","entity_type":"corporation","id":89,"created_at":1684891809,"company":"P4"},{"type":"lay_tile","entity":"6","entity_type":"corporation","id":90,"created_at":1684891814,"hex":"G8","tile":"4-0","rotation":0},{"type":"run_routes","entity":"6","entity_type":"corporation","id":91,"created_at":1684891819,"routes":[{"train":"LP-1","connections":[["F9","G8"]],"hexes":["G8","F9"],"revenue":40,"revenue_str":"G8-F9","nodes":["F9-0","G8-0"]}]},{"type":"buy_train","entity":"6","entity_type":"corporation","id":92,"created_at":1684891822,"train":"L-1","price":120,"variant":"2"},{"type":"buy_train","entity":"2","entity_type":"corporation","id":93,"created_at":1684891827,"train":"L-0","price":60,"variant":"L"},{"type":"lay_tile","entity":"2","entity_type":"corporation","id":94,"created_at":1684891832,"hex":"B19","tile":"57-0","rotation":0},{"type":"run_routes","entity":"2","entity_type":"corporation","id":95,"created_at":1684891841,"routes":[{"train":"L-2","connections":[["local","B19"]],"hexes":["B19"],"revenue":20,"revenue_str":"B19","nodes":["B19-0"]}]},{"type":"pass","entity":"2","entity_type":"corporation","id":96,"created_at":1684891846},{"type":"buy_train","entity":"4","entity_type":"corporation","id":97,"created_at":1684891869,"train":"L-0","price":60,"variant":"L"},{"type":"lay_tile","entity":"4","entity_type":"corporation","id":98,"created_at":1684891890,"hex":"D19","tile":"6-0","rotation":3},{"type":"run_routes","entity":"4","entity_type":"corporation","id":99,"created_at":1684891900,"routes":[{"train":"L-3","connections":[["local","D19"]],"hexes":["D19"],"revenue":20,"revenue_str":"D19","nodes":["D19-0"]}]},{"type":"pass","entity":"4","entity_type":"corporation","id":100,"created_at":1684891905},{"type":"bid","entity":605,"entity_type":"player","id":101,"created_at":1684891924,"company":"P3","price":50},{"type":"pass","entity":605,"entity_type":"player","id":102,"created_at":1684891927},{"type":"bid","entity":2089,"entity_type":"player","id":105,"created_at":1684891966,"company":"M8","price":100},{"type":"bid","entity":2089,"entity_type":"player","id":106,"created_at":1684891972,"company":"P10","price":20},{"type":"pass","entity":2089,"entity_type":"player","id":107,"created_at":1684891974},{"type":"bid","entity":13048,"entity_type":"player","id":118,"created_at":1684892071,"company":"P3","price":55},{"type":"pass","entity":13048,"entity_type":"player","id":119,"created_at":1684892072},{"type":"bid","entity":1324,"entity_type":"player","id":122,"created_at":1684892118,"company":"M8","price":105},{"type":"pass","entity":1324,"entity_type":"player","id":124,"created_at":1684892128},{"type":"bid","entity":605,"entity_type":"player","id":125,"created_at":1684892137,"company":"P3","price":60},{"type":"pass","entity":605,"entity_type":"player","id":126,"created_at":1684892140},{"type":"bid","entity":2089,"entity_type":"player","id":127,"created_at":1684892165,"company":"M8","price":110},{"type":"pass","entity":2089,"entity_type":"player","id":128,"created_at":1684892168},{"type":"bid","entity":13048,"entity_type":"player","id":130,"created_at":1684892206,"company":"P3","price":65},{"type":"pass","entity":13048,"entity_type":"player","id":131,"created_at":1684892208},{"type":"bid","price":115,"entity":1324,"company":"M8","entity_type":"player","id":132,"user":1324,"created_at":1684892215},{"type":"undo","entity":1324,"entity_type":"player","id":133,"user":1324,"created_at":1684892222},{"type":"bid","entity":1324,"entity_type":"player","id":134,"created_at":1684892229,"company":"M8","price":120},{"type":"pass","entity":1324,"entity_type":"player","id":135,"user":1324,"created_at":1684892231},{"type":"undo","entity":605,"entity_type":"player","id":136,"user":1324,"created_at":1684892234},{"type":"bid","entity":1324,"entity_type":"player","id":137,"created_at":1684892236,"company":"P20","price":0},{"type":"pass","entity":1324,"entity_type":"player","id":138,"created_at":1684892237},{"type":"bid","entity":605,"entity_type":"player","id":139,"created_at":1684892242,"company":"P3","price":70},{"type":"pass","entity":605,"entity_type":"player","id":140,"created_at":1684892243},{"type":"bid","entity":2089,"entity_type":"player","id":141,"created_at":1684892275,"company":"M17","price":125},{"type":"bid","entity":2089,"entity_type":"player","id":142,"created_at":1684892278,"company":"M16","price":100},{"type":"pass","entity":2089,"entity_type":"player","id":143,"created_at":1684892280},{"type":"bid","entity":13048,"entity_type":"player","id":144,"created_at":1684892285,"company":"P3","price":75},{"type":"bid","entity":13048,"entity_type":"player","id":146,"created_at":1684892290,"company":"P10","price":25},{"type":"bid","entity":13048,"entity_type":"player","id":147,"created_at":1684892291,"company":"P20","price":5},{"type":"pass","entity":1324,"entity_type":"player","id":148,"created_at":1684892296},{"type":"bid","entity":605,"entity_type":"player","id":149,"created_at":1684892304,"company":"P3","price":80},{"type":"pass","entity":605,"entity_type":"player","id":150,"created_at":1684892306},{"type":"pass","entity":2089,"entity_type":"player","id":151,"created_at":1684892322},{"type":"bid","entity":13048,"entity_type":"player","id":152,"created_at":1684892328,"company":"P3","price":85},{"type":"pass","entity":13048,"entity_type":"player","id":153,"created_at":1684892329},{"type":"program_share_pass","entity":1324,"entity_type":"player","id":155,"created_at":1684892333,"auto_actions":[{"type":"pass","entity":1324,"entity_type":"player","created_at":1684892332}],"unconditional":false,"indefinite":false},{"type":"bid","entity":605,"entity_type":"player","id":157,"created_at":1684892343,"company":"P3","price":90},{"type":"pass","entity":605,"entity_type":"player","id":158,"created_at":1684892345},{"type":"pass","entity":2089,"entity_type":"player","id":159,"created_at":1684892353},{"type":"pass","entity":13048,"entity_type":"player","id":160,"created_at":1684892357,"auto_actions":[{"type":"pass","entity":1324,"entity_type":"player","created_at":1684892357}]},{"type":"bid","entity":605,"entity_type":"player","id":162,"created_at":1684892435,"company":"M8","price":200},{"type":"pass","entity":605,"entity_type":"player","id":163,"created_at":1684892438},{"type":"pass","entity":2089,"entity_type":"player","id":169,"created_at":1684892500},{"type":"pass","entity":13048,"entity_type":"player","id":170,"created_at":1684892508,"auto_actions":[{"type":"program_disable","entity":1324,"entity_type":"player","created_at":1684892508,"reason":"No longer winning bid on M8"}]},{"type":"bid","entity":1324,"entity_type":"player","id":171,"created_at":1684892512,"company":"P20","price":10},{"type":"pass","entity":1324,"entity_type":"player","id":172,"created_at":1684892517},{"type":"pass","entity":605,"entity_type":"player","id":173,"created_at":1684892523},{"type":"pass","entity":2089,"entity_type":"player","id":174,"created_at":1684892533},{"type":"pass","entity":13048,"entity_type":"player","id":175,"created_at":1684892543},{"type":"pass","entity":1324,"entity_type":"player","id":176,"created_at":1684892545},{"type":"pass","entity":"8","entity_type":"corporation","id":177,"created_at":1684892552},{"type":"acquire_company","entity":"8","entity_type":"corporation","id":178,"created_at":1684892554,"company":"P3"},{"type":"pass","entity":"8","entity_type":"corporation","id":179,"created_at":1684892556},{"type":"lay_tile","entity":"8","entity_type":"corporation","id":180,"created_at":1684892561,"hex":"H11","tile":"X20-0","rotation":0},{"type":"run_routes","entity":"8","entity_type":"corporation","id":181,"created_at":1684892565,"routes":[{"train":"LP-0","connections":[["local","H11"]],"hexes":["H11"],"revenue":40,"revenue_str":"H11","nodes":["H11-0"]}]},{"type":"buy_train","entity":"8","entity_type":"corporation","id":182,"created_at":1684892567,"train":"L-6","price":120,"variant":"2"},{"type":"pass","entity":"8","entity_type":"corporation","id":183,"created_at":1684892569},{"type":"buy_train","entity":"17","entity_type":"corporation","id":184,"created_at":1684892583,"train":"L-0","price":60,"variant":"L"},{"type":"pass","entity":"17","entity_type":"corporation","id":185,"created_at":1684892586},{"type":"lay_tile","entity":"17","entity_type":"corporation","id":186,"created_at":1684892603,"hex":"P7","tile":"8-0","rotation":1},{"type":"run_routes","entity":"17","entity_type":"corporation","id":187,"created_at":1684892611,"routes":[{"train":"L-7","connections":[["local","O8"]],"hexes":["O8"],"revenue":20,"revenue_str":"O8","nodes":[]}]},{"type":"pass","entity":"17","entity_type":"corporation","id":188,"created_at":1684892620},{"type":"acquire_company","entity":"6","entity_type":"corporation","id":189,"created_at":1684892639,"company":"P20"},{"type":"choose","entity":"6","entity_type":"corporation","id":190,"created_at":1684892645,"choice":"20"},{"type":"pass","entity":"6","entity_type":"corporation","id":191,"created_at":1684892647},{"type":"lay_tile","entity":"6","entity_type":"corporation","id":192,"created_at":1684892659,"hex":"F7","tile":"BC-0","rotation":0},{"type":"run_routes","entity":"6","entity_type":"corporation","id":193,"created_at":1684892669,"routes":[{"train":"LP-1","connections":[["local","F9"]],"hexes":["F9"],"revenue":30,"revenue_str":"F9","nodes":[]},{"train":"L-1","connections":[["F9","G8"]],"hexes":["G8","F9"],"revenue":40,"revenue_str":"G8-F9","nodes":["F9-0","G8-0"]}]},{"type":"pass","entity":"6","entity_type":"corporation","id":194,"created_at":1684892674},{"type":"pass","entity":"2","entity_type":"corporation","id":195,"created_at":1684892680},{"type":"lay_tile","entity":"2","entity_type":"corporation","id":196,"created_at":1684892685,"hex":"A20","tile":"58-0","rotation":4},{"type":"run_routes","entity":"2","entity_type":"corporation","id":199,"created_at":1684892709,"routes":[{"train":"L-2","connections":[["local","B19"]],"hexes":["B19"],"revenue":20,"revenue_str":"B19","nodes":["B19-0"]}]},{"type":"pass","entity":"2","entity_type":"corporation","id":200,"created_at":1684892714},{"type":"pass","entity":"4","entity_type":"corporation","id":201,"created_at":1684892719},{"type":"lay_tile","entity":"4","entity_type":"corporation","id":203,"created_at":1684892739,"hex":"E20","tile":"4-1","rotation":2},{"type":"run_routes","entity":"4","entity_type":"corporation","id":204,"created_at":1684892745,"routes":[{"train":"L-3","connections":[["D19","E20"]],"hexes":["D19","E20"],"revenue":30,"revenue_str":"D19-E20","nodes":["D19-0","E20-0"]}]},{"type":"pass","entity":"4","entity_type":"corporation","id":205,"created_at":1684892749},{"type":"buy_train","entity":"16","entity_type":"corporation","id":206,"created_at":1684892756,"train":"L-0","price":60,"variant":"L"},{"type":"pass","entity":"16","entity_type":"corporation","id":207,"created_at":1684892758},{"hex":"N5","tile":"BC-0","type":"lay_tile","entity":"16","rotation":0,"entity_type":"corporation","id":211,"user":2089,"created_at":1684892853},{"type":"undo","entity":"16","entity_type":"corporation","id":216,"user":2089,"created_at":1684892917},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":217,"created_at":1684892941,"hex":"N5","tile":"6-1","rotation":4},{"type":"run_routes","entity":"16","entity_type":"corporation","id":218,"created_at":1684892946,"routes":[{"train":"L-8","connections":[["local","N5"]],"hexes":["N5"],"revenue":20,"revenue_str":"N5","nodes":["N5-0"]}]},{"type":"pass","entity":"16","entity_type":"corporation","id":219,"created_at":1684892950},{"type":"pass","entity":"8","entity_type":"corporation","id":220,"created_at":1684892956},{"type":"lay_tile","entity":"8","entity_type":"corporation","id":221,"created_at":1684892962,"hex":"G12","tile":"4-2","rotation":0},{"type":"run_routes","entity":"8","entity_type":"corporation","id":222,"created_at":1684892967,"routes":[{"train":"LP-0","connections":[["H11","G12"]],"hexes":["H11","G12"],"revenue":50,"revenue_str":"H11-G12","nodes":["H11-0","G12-0"]},{"train":"L-6","connections":[["H11","I12"]],"hexes":["H11","I12"],"revenue":60,"revenue_str":"H11-I12","nodes":["H11-0","I12-0"]}]},{"type":"buy_train","entity":"8","entity_type":"corporation","id":223,"created_at":1684892993,"train":"L-9","price":120,"variant":"2"},{"type":"pass","entity":"17","entity_type":"corporation","id":224,"created_at":1684893003},{"type":"lay_tile","entity":"17","entity_type":"corporation","id":225,"created_at":1684893010,"hex":"P5","tile":"58-1","rotation":2},{"type":"run_routes","entity":"17","entity_type":"corporation","id":226,"created_at":1684893017,"routes":[{"train":"L-7","connections":[["O8","P7","P5"]],"hexes":["O8","P5"],"revenue":30,"revenue_str":"O8-P5","nodes":["O8-0","P5-0"]}]},{"type":"buy_train","entity":"17","entity_type":"corporation","id":227,"created_at":1684893025,"train":"L-7","price":80,"variant":"2","exchange":"L-7"},{"type":"pass","entity":"17","entity_type":"corporation","id":228,"created_at":1684893029},{"type":"pass","entity":"6","entity_type":"corporation","id":229,"created_at":1684893033},{"type":"lay_tile","entity":"6","entity_type":"corporation","id":230,"created_at":1684893042,"hex":"F7","tile":"8-1","rotation":4},{"type":"run_routes","entity":"6","entity_type":"corporation","id":231,"created_at":1684893044,"routes":[{"train":"LP-1","connections":[["local","F9"]],"hexes":["F9"],"revenue":30,"revenue_str":"F9","nodes":[]},{"train":"L-1","connections":[["F9","G8"]],"hexes":["F9","G8"],"revenue":40,"revenue_str":"F9-G8","nodes":["F9-0","G8-0"]}]},{"type":"pass","entity":"6","entity_type":"corporation","id":232,"created_at":1684893047},{"type":"pass","entity":"2","entity_type":"corporation","id":233,"created_at":1684893066},{"type":"lay_tile","entity":"2","entity_type":"corporation","id":234,"created_at":1684893081,"hex":"C18","tile":"8-2","rotation":3},{"type":"run_routes","entity":"2","entity_type":"corporation","id":235,"created_at":1684893090,"routes":[{"train":"L-2","connections":[["B19","A20"]],"hexes":["B19","A20"],"revenue":30,"revenue_str":"B19-A20","nodes":["B19-0","A20-0"]}]},{"type":"pass","entity":"2","entity_type":"corporation","id":236,"created_at":1684893097},{"type":"pass","entity":"4","entity_type":"corporation","id":237,"created_at":1684893114},{"type":"lay_tile","entity":"4","entity_type":"corporation","id":238,"created_at":1684893123,"hex":"C20","tile":"8-3","rotation":4},{"type":"run_routes","entity":"4","entity_type":"corporation","id":239,"created_at":1684893128,"routes":[{"train":"L-3","connections":[["D19","E20"]],"hexes":["D19","E20"],"revenue":30,"revenue_str":"D19-E20","nodes":["D19-0","E20-0"]}]},{"type":"buy_train","entity":"4","entity_type":"corporation","id":240,"created_at":1684893130,"train":"L-3","price":80,"variant":"2","exchange":"L-3"},{"type":"pass","entity":"16","entity_type":"corporation","id":241,"created_at":1684893133},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":242,"created_at":1684893139,"hex":"O4","tile":"8-4","rotation":3},{"type":"run_routes","entity":"16","entity_type":"corporation","id":243,"created_at":1684893151,"routes":[{"train":"L-8","connections":[["N5","O4","P5"]],"hexes":["N5","P5"],"revenue":40,"revenue_str":"N5-P5","nodes":["N5-0","P5-0"]}]},{"type":"pass","entity":"16","entity_type":"corporation","id":244,"created_at":1684893161},{"type":"merge","entity":"17","corporation":"16","entity_type":"corporation","id":245,"user":2089,"created_at":1684893193},{"type":"undo","entity":"17","entity_type":"corporation","id":250,"user":2089,"created_at":1684893232},{"type":"pass","entity":"17","entity_type":"corporation","id":251,"created_at":1684893234},{"type":"bid","entity":13048,"entity_type":"player","id":253,"created_at":1684893247,"company":"M1","price":100},{"type":"bid","entity":13048,"entity_type":"player","id":254,"created_at":1684893248,"company":"P13","price":0},{"type":"pass","entity":13048,"entity_type":"player","id":255,"created_at":1684893252},{"type":"bid","entity":1324,"entity_type":"player","id":256,"created_at":1684893303,"company":"P13","price":5},{"type":"pass","entity":1324,"entity_type":"player","id":257,"created_at":1684893341},{"type":"bid","entity":2089,"entity_type":"player","id":258,"created_at":1684893360,"company":"P19","price":20},{"type":"bid","entity":2089,"entity_type":"player","id":259,"created_at":1684893365,"company":"P12","price":20},{"type":"bid","entity":2089,"entity_type":"player","id":260,"created_at":1684893370,"company":"P13","price":20},{"type":"bid","entity":605,"entity_type":"player","id":261,"created_at":1684893374,"company":"M15","price":100},{"type":"pass","entity":605,"entity_type":"player","id":262,"created_at":1684893377},{"type":"bid","entity":13048,"entity_type":"player","id":263,"created_at":1684893389,"company":"P12","price":25},{"type":"bid","entity":13048,"entity_type":"player","id":264,"created_at":1684893391,"company":"P13","price":25},{"type":"pass","entity":13048,"entity_type":"player","id":265,"created_at":1684893394},{"type":"program_share_pass","entity":605,"entity_type":"player","id":266,"created_at":1684893397,"unconditional":false,"indefinite":false},{"type":"bid","entity":1324,"entity_type":"player","id":267,"created_at":1684893403,"company":"P13","price":30},{"type":"pass","entity":1324,"entity_type":"player","id":268,"created_at":1684893415},{"type":"bid","entity":2089,"entity_type":"player","id":269,"created_at":1684893421,"company":"P12","price":30},{"type":"bid","entity":2089,"entity_type":"player","id":270,"created_at":1684893425,"company":"P13","price":35},{"type":"pass","entity":2089,"entity_type":"player","id":271,"created_at":1684893430,"auto_actions":[{"type":"pass","entity":605,"entity_type":"player","created_at":1684893429}]},{"type":"bid","entity":13048,"entity_type":"player","id":272,"created_at":1684893449,"company":"P13","price":40},{"type":"pass","entity":13048,"entity_type":"player","id":273,"created_at":1684893456},{"type":"bid","entity":1324,"entity_type":"player","id":274,"created_at":1684893460,"company":"P12","price":35},{"type":"pass","entity":1324,"entity_type":"player","id":275,"created_at":1684893462},{"type":"bid","entity":2089,"entity_type":"player","id":276,"created_at":1684893474,"company":"P13","price":45},{"type":"pass","entity":2089,"entity_type":"player","id":277,"created_at":1684893477,"auto_actions":[{"type":"pass","entity":605,"entity_type":"player","created_at":1684893476}]},{"type":"bid","entity":13048,"entity_type":"player","id":278,"created_at":1684893506,"company":"P13","price":50},{"type":"pass","entity":13048,"entity_type":"player","id":279,"created_at":1684893537},{"type":"bid","entity":1324,"entity_type":"player","id":281,"created_at":1684893583,"company":"M15","price":120},{"type":"pass","entity":1324,"entity_type":"player","id":282,"created_at":1684893587},{"type":"bid","entity":2089,"entity_type":"player","id":283,"created_at":1684893654,"company":"P12","price":40},{"type":"pass","entity":2089,"entity_type":"player","id":284,"created_at":1684893657,"auto_actions":[{"type":"program_disable","entity":605,"entity_type":"player","created_at":1684893656,"reason":"No longer winning bid on M15"}]},{"type":"bid","entity":605,"entity_type":"player","id":285,"created_at":1684893687,"company":"M9","price":100},{"type":"pass","entity":605,"entity_type":"player","id":286,"created_at":1684893689},{"type":"pass","entity":13048,"entity_type":"player","id":287,"created_at":1684893699},{"type":"pass","entity":1324,"entity_type":"player","id":288,"created_at":1684893709},{"type":"pass","entity":2089,"entity_type":"player","id":289,"created_at":1684893756},{"type":"pass","entity":605,"entity_type":"player","id":290,"created_at":1684893760},{"type":"pass","entity":"8","entity_type":"corporation","id":291,"created_at":1684893762},{"type":"lay_tile","entity":"8","entity_type":"corporation","id":292,"created_at":1684893770,"hex":"H13","tile":"BC-0","rotation":0},{"type":"run_routes","entity":"8","entity_type":"corporation","id":293,"created_at":1684893776,"routes":[{"train":"LP-0","connections":[["local","H11"]],"hexes":["H11"],"revenue":40,"revenue_str":"H11","nodes":["H11-0"]},{"train":"L-9","connections":[["H11","G12"]],"hexes":["H11","G12"],"revenue":50,"revenue_str":"H11-G12","nodes":["H11-0","G12-0"]},{"train":"L-6","connections":[["H11","I12"]],"hexes":["H11","I12"],"revenue":60,"revenue_str":"H11-I12","nodes":["H11-0","I12-0"]}]},{"type":"acquire_company","entity":"17","entity_type":"corporation","id":294,"created_at":1684893813,"company":"P12"},{"type":"pass","entity":"17","entity_type":"corporation","id":295,"created_at":1684893817},{"type":"lay_tile","entity":"P12","entity_type":"company","id":296,"created_at":1684893829,"hex":"N9","tile":"P1-0","rotation":0},{"type":"lay_tile","entity":"17","entity_type":"corporation","id":297,"created_at":1684893861,"hex":"N7","tile":"8-5","rotation":5},{"type":"run_routes","entity":"17","entity_type":"corporation","id":298,"created_at":1684893875,"routes":[{"train":"L-7","connections":[["O8","N9"]],"hexes":["O8","N9"],"revenue":50,"revenue_str":"O8-N9","nodes":["O8-0","N9-0"]}]},{"type":"pass","entity":"17","entity_type":"corporation","id":299,"created_at":1684893884},{"type":"pass","entity":"6","entity_type":"corporation","id":300,"created_at":1684893903},{"type":"lay_tile","entity":"6","entity_type":"corporation","id":301,"created_at":1684893942,"hex":"G6","tile":"7-0","rotation":2},{"type":"run_routes","entity":"6","entity_type":"corporation","id":302,"created_at":1684893944,"routes":[{"train":"LP-1","connections":[["local","F9"]],"hexes":["F9"],"revenue":30,"revenue_str":"F9","nodes":[]},{"train":"L-1","connections":[["F9","G8"]],"hexes":["F9","G8"],"revenue":40,"revenue_str":"F9-G8","nodes":["F9-0","G8-0"]}]},{"type":"pass","entity":"6","entity_type":"corporation","id":303,"user":1324,"created_at":1684893950},{"type":"undo","entity":"2","entity_type":"corporation","id":304,"user":1324,"created_at":1684893954},{"type":"pass","entity":"6","entity_type":"corporation","id":306,"created_at":1684893958},{"type":"pass","entity":"2","entity_type":"corporation","id":307,"created_at":1684893968},{"type":"pass","entity":"2","entity_type":"corporation","id":308,"created_at":1684893977},{"type":"run_routes","entity":"2","entity_type":"corporation","id":309,"created_at":1684893982,"routes":[{"train":"L-2","connections":[["B19","A20"]],"hexes":["B19","A20"],"revenue":30,"revenue_str":"B19-A20","nodes":["B19-0","A20-0"]}]},{"type":"buy_train","entity":"2","entity_type":"corporation","id":310,"created_at":1684893984,"train":"L-2","price":80,"variant":"2","exchange":"L-2"},{"type":"pass","entity":"2","entity_type":"corporation","id":311,"created_at":1684893989},{"type":"pass","entity":"4","entity_type":"corporation","id":312,"created_at":1684893995},{"type":"lay_tile","entity":"4","entity_type":"corporation","id":313,"created_at":1684894008,"hex":"C22","tile":"58-2","rotation":1},{"type":"run_routes","entity":"4","entity_type":"corporation","id":314,"created_at":1684894029,"routes":[{"train":"L-3","connections":[["D19","E20"]],"hexes":["D19","E20"],"revenue":30,"revenue_str":"D19-E20","nodes":["D19-0","E20-0"]}]},{"type":"pass","entity":"4","entity_type":"corporation","id":315,"created_at":1684894030},{"type":"pass","entity":"16","entity_type":"corporation","id":316,"created_at":1684894034},{"type":"pass","entity":"16","entity_type":"corporation","id":317,"user":2089,"created_at":1684894041},{"type":"run_routes","entity":"16","routes":[{"hexes":["N5","P5"],"nodes":["N5-0","P5-0"],"train":"L-8","revenue":40,"connections":[["N5","O4","P5"]],"revenue_str":"N5-P5"}],"entity_type":"corporation","id":320,"user":2089,"created_at":1684894051},{"type":"undo","entity":"16","entity_type":"corporation","id":322,"user":2089,"created_at":1684894079},{"type":"undo","entity":"16","entity_type":"corporation","id":323,"user":2089,"created_at":1684894086},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":324,"created_at":1684894096,"hex":"N5","tile":"BC-0","rotation":0},{"type":"run_routes","entity":"16","entity_type":"corporation","id":325,"created_at":1684894099,"routes":[{"train":"L-8","connections":[["N5","O4","P5"]],"hexes":["N5","P5"],"revenue":40,"revenue_str":"N5-P5","nodes":["N5-0","P5-0"]}]},{"type":"buy_train","entity":"16","entity_type":"corporation","id":327,"created_at":1684894179,"train":"L-8","price":80,"variant":"2","exchange":"L-8"},{"type":"buy_train","entity":"15","entity_type":"corporation","id":328,"created_at":1684894187,"train":"L-0","price":60,"variant":"L"},{"type":"pass","entity":"15","entity_type":"corporation","id":329,"created_at":1684894191},{"type":"lay_tile","entity":"15","entity_type":"corporation","id":330,"created_at":1684894197,"hex":"M4","tile":"5-0","rotation":2},{"type":"run_routes","entity":"15","entity_type":"corporation","id":331,"created_at":1684894202,"routes":[{"train":"L-12","connections":[["M4","L3"]],"hexes":["L3","M4"],"revenue":30,"revenue_str":"L3-M4","nodes":["M4-0","L3-0"]}]},{"type":"pass","entity":"15","entity_type":"corporation","id":332,"created_at":1684894219},{"type":"buy_train","entity":"1","entity_type":"corporation","id":333,"created_at":1684894227,"train":"L-0","price":60,"variant":"L"},{"type":"pass","entity":"1","entity_type":"corporation","id":334,"created_at":1684894233},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":335,"created_at":1684894239,"hex":"B9","tile":"9-0","rotation":2},{"type":"run_routes","entity":"1","entity_type":"corporation","id":336,"created_at":1684894250,"routes":[{"train":"L-13","connections":[["local","A8"]],"hexes":["A8"],"revenue":30,"revenue_str":"A8","nodes":["A8-0"]}]},{"type":"pass","entity":"1","entity_type":"corporation","id":337,"created_at":1684894256},{"type":"buy_train","entity":"9","entity_type":"corporation","id":338,"created_at":1684894260,"train":"L-0","price":60,"variant":"L"},{"type":"pass","entity":"9","entity_type":"corporation","id":339,"created_at":1684894261},{"type":"pass","entity":"9","entity_type":"corporation","id":340,"created_at":1684894264},{"type":"run_routes","entity":"9","entity_type":"corporation","id":341,"created_at":1684894267,"routes":[{"train":"L-14","connections":[["H19"]],"hexes":["H19","H19"],"revenue":30,"revenue_str":"H19-H19","nodes":["H19-0","H19-1"]}]},{"type":"pass","entity":"9","entity_type":"corporation","id":342,"created_at":1684894269},{"type":"pass","entity":"17","entity_type":"corporation","id":345,"created_at":1684894302},{"type":"pass","entity":"8","entity_type":"corporation","id":346,"created_at":1684894305},{"type":"lay_tile","entity":"8","entity_type":"corporation","id":347,"created_at":1684894309,"hex":"H13","tile":"7-1","rotation":0},{"type":"run_routes","entity":"8","entity_type":"corporation","id":349,"created_at":1684894315,"routes":[{"train":"LP-0","connections":[["H11","G12"]],"hexes":["H11","G12"],"revenue":50,"revenue_str":"H11-G12","nodes":["H11-0","G12-0"]},{"train":"L-9","connections":[["H11","H13","I12"]],"hexes":["H11","I12"],"revenue":60,"revenue_str":"H11-I12","nodes":["H11-0","I12-0"]},{"train":"L-6","connections":[["H11","I12"]],"hexes":["H11","I12"],"revenue":60,"revenue_str":"H11-I12","nodes":["H11-0","I12-0"]}]},{"type":"pass","entity":"17","entity_type":"corporation","id":350,"created_at":1684894321},{"type":"lay_tile","entity":"17","entity_type":"corporation","id":351,"created_at":1684894339,"hex":"N5","tile":"BC-0","rotation":0},{"type":"run_routes","entity":"17","entity_type":"corporation","id":352,"created_at":1684894344,"routes":[{"train":"L-7","connections":[["O8","N9"]],"hexes":["O8","N9"],"revenue":50,"revenue_str":"O8-N9","nodes":["O8-0","N9-0"]}]},{"type":"pass","entity":"17","entity_type":"corporation","id":353,"created_at":1684894356},{"type":"pass","entity":"6","entity_type":"corporation","id":354,"created_at":1684894361},{"type":"lay_tile","entity":"6","entity_type":"corporation","id":355,"created_at":1684894365,"hex":"F5","tile":"58-3","rotation":5},{"type":"run_routes","entity":"6","entity_type":"corporation","id":356,"created_at":1684894372,"routes":[{"train":"LP-1","connections":[["F5","G6","F7","F9"]],"hexes":["F9","F5"],"revenue":60,"revenue_str":"F9-F5","nodes":["F5-0","F9-0"]},{"train":"L-1","connections":[["F9","G8"]],"hexes":["F9","G8"],"revenue":40,"revenue_str":"F9-G8","nodes":["F9-0","G8-0"]}]},{"type":"buy_train","entity":"6","entity_type":"corporation","id":357,"created_at":1684894377,"train":"L-15","price":120,"variant":"2"},{"type":"pass","entity":"2","entity_type":"corporation","id":358,"created_at":1684894383},{"type":"pass","entity":"2","entity_type":"corporation","id":361,"created_at":1684894393},{"type":"run_routes","entity":"2","entity_type":"corporation","id":362,"created_at":1684894399,"routes":[{"train":"L-2","connections":[["B19","A20"]],"hexes":["B19","A20"],"revenue":30,"revenue_str":"B19-A20","nodes":["B19-0","A20-0"]}]},{"type":"pass","entity":"2","entity_type":"corporation","id":363,"created_at":1684894403},{"type":"pass","entity":"4","entity_type":"corporation","id":364,"created_at":1684894410},{"type":"lay_tile","entity":"4","entity_type":"corporation","id":365,"created_at":1684894421,"hex":"F21","tile":"8-6","rotation":2},{"type":"run_routes","entity":"4","entity_type":"corporation","id":366,"created_at":1684894426,"routes":[{"train":"L-3","connections":[["D19","E20"]],"hexes":["D19","E20"],"revenue":30,"revenue_str":"D19-E20","nodes":["D19-0","E20-0"]}]},{"type":"pass","entity":"4","entity_type":"corporation","id":367,"created_at":1684894433},{"type":"pass","entity":"16","entity_type":"corporation","id":368,"created_at":1684894436},{"type":"pass","entity":"16","entity_type":"corporation","id":369,"created_at":1684894452},{"type":"run_routes","entity":"16","entity_type":"corporation","id":370,"created_at":1684894456,"routes":[{"train":"L-8","connections":[["N5","O4","P5"]],"hexes":["N5","P5"],"revenue":40,"revenue_str":"N5-P5","nodes":["N5-0","P5-0"]}]},{"type":"pass","entity":"16","entity_type":"corporation","id":371,"created_at":1684894463},{"type":"pass","entity":"15","entity_type":"corporation","id":375,"created_at":1684894488},{"type":"lay_tile","entity":"15","entity_type":"corporation","id":376,"created_at":1684894493,"hex":"L5","tile":"8-7","rotation":0},{"type":"run_routes","entity":"15","entity_type":"corporation","id":377,"created_at":1684894496,"routes":[{"train":"L-12","connections":[["M4","L3"]],"hexes":["M4","L3"],"revenue":30,"revenue_str":"M4-L3","nodes":["M4-0","L3-0"]}]},{"type":"buy_train","entity":"15","entity_type":"corporation","id":378,"created_at":1684894500,"train":"L-12","price":80,"variant":"2","exchange":"L-12"},{"type":"pass","entity":"15","entity_type":"corporation","id":379,"created_at":1684894503},{"type":"acquire_company","entity":"1","company":"P10","entity_type":"corporation","id":380,"user":13048,"created_at":1684894511},{"type":"undo","entity":"1","entity_type":"corporation","id":381,"user":13048,"created_at":1684894521},{"type":"pass","entity":"1","entity_type":"corporation","id":382,"created_at":1684894523},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":383,"created_at":1684894531,"hex":"C10","tile":"9-1","rotation":2},{"type":"run_routes","entity":"1","entity_type":"corporation","id":384,"created_at":1684894538,"routes":[{"train":"L-13","connections":[["local","A8"]],"hexes":["A8"],"revenue":30,"revenue_str":"A8","nodes":["A8-0"]}]},{"type":"pass","entity":"1","entity_type":"corporation","id":385,"created_at":1684894546},{"type":"pass","entity":"9","entity_type":"corporation","id":386,"created_at":1684894550},{"type":"pass","entity":"9","entity_type":"corporation","id":387,"created_at":1684894551},{"type":"run_routes","entity":"9","entity_type":"corporation","id":388,"created_at":1684894553,"routes":[{"train":"L-14","connections":[["H19"]],"hexes":["H19","H19"],"revenue":30,"revenue_str":"H19-H19","nodes":["H19-0","H19-1"]}]},{"type":"pass","entity":"9","entity_type":"corporation","id":389,"created_at":1684894555},{"type":"merge","entity":"17","entity_type":"corporation","id":390,"created_at":1684894592,"corporation":"16"},{"type":"choose","entity":"17","entity_type":"corporation","id":391,"created_at":1684894594,"choice":"100"},{"type":"choose","entity":"17","entity_type":"corporation","id":394,"created_at":1684894622,"choice":"3"},{"type":"choose","entity":"17","entity_type":"corporation","id":395,"created_at":1684894647,"choice":"replace"},{"type":"bid","price":100,"entity":2089,"company":"M7","entity_type":"player","id":397,"user":2089,"created_at":1684894704},{"type":"undo","entity":2089,"entity_type":"player","id":398,"user":2089,"created_at":1684894718},{"type":"bid","entity":2089,"entity_type":"player","id":399,"created_at":1684894743,"company":"M7","price":100},{"type":"pass","entity":2089,"entity_type":"player","id":400,"created_at":1684894745},{"type":"bid","entity":13048,"entity_type":"player","id":401,"created_at":1684894758,"company":"P8","price":0},{"type":"bid","entity":13048,"entity_type":"player","id":402,"created_at":1684894761,"company":"P9","price":0},{"type":"pass","entity":13048,"entity_type":"player","id":403,"created_at":1684894763},{"type":"bid","entity":1324,"entity_type":"player","id":404,"created_at":1684894776,"company":"P9","price":75},{"type":"pass","entity":1324,"entity_type":"player","id":405,"created_at":1684894778},{"type":"bid","entity":605,"entity_type":"player","id":406,"created_at":1684894803,"company":"P8","price":5},{"type":"bid","entity":605,"entity_type":"player","id":407,"created_at":1684894807,"company":"P21","price":0},{"type":"pass","entity":605,"entity_type":"player","id":408,"created_at":1684894809},{"type":"bid","entity":2089,"entity_type":"player","id":409,"created_at":1684894859,"company":"P21","price":15},{"type":"bid","entity":2089,"entity_type":"player","id":410,"created_at":1684894864,"company":"P8","price":20},{"type":"pass","entity":2089,"entity_type":"player","id":411,"created_at":1684894869},{"type":"bid","entity":13048,"entity_type":"player","id":412,"created_at":1684894879,"company":"M7","price":150},{"type":"bid","entity":13048,"entity_type":"player","id":413,"created_at":1684894885,"company":"P8","price":25},{"type":"pass","entity":13048,"entity_type":"player","id":414,"created_at":1684894887},{"type":"pass","entity":1324,"entity_type":"player","id":415,"created_at":1684894897},{"type":"bid","entity":605,"entity_type":"player","id":416,"created_at":1684894927,"company":"M7","price":180},{"type":"pass","entity":605,"entity_type":"player","id":417,"created_at":1684894931},{"type":"buy_shares","entity":2089,"entity_type":"player","id":418,"created_at":1684894962,"shares":["SPS_2"],"percent":10,"share_price":false},{"type":"buy_shares","entity":13048,"entity_type":"player","id":419,"created_at":1684894972,"shares":["SPS_3"],"percent":10,"share_price":false},{"type":"bid","entity":1324,"entity_type":"player","id":420,"created_at":1684894986,"company":"M11","price":100},{"type":"pass","entity":1324,"entity_type":"player","id":421,"created_at":1684894989},{"type":"pass","entity":605,"entity_type":"player","id":422,"created_at":1684895032},{"type":"buy_shares","entity":2089,"entity_type":"player","id":423,"created_at":1684895046,"shares":["SPS_4"],"percent":10,"share_price":false},{"type":"pass","entity":13048,"entity_type":"player","id":424,"created_at":1684895072},{"type":"pass","entity":1324,"entity_type":"player","id":425,"created_at":1684895077},{"type":"pass","entity":605,"entity_type":"player","id":426,"created_at":1684895106},{"type":"program_share_pass","entity":605,"entity_type":"player","id":427,"created_at":1684895110,"unconditional":false,"indefinite":false},{"type":"pass","entity":2089,"entity_type":"player","id":428,"created_at":1684895127},{"type":"pass","entity":"8","entity_type":"corporation","id":429,"created_at":1684895132},{"type":"lay_tile","entity":"8","entity_type":"corporation","id":430,"created_at":1684895145,"hex":"I14","tile":"8-8","rotation":5},{"type":"run_routes","entity":"8","entity_type":"corporation","id":431,"created_at":1684895148,"routes":[{"train":"LP-0","connections":[["H11","G12"]],"hexes":["H11","G12"],"revenue":50,"revenue_str":"H11-G12","nodes":["H11-0","G12-0"]},{"train":"L-9","connections":[["H11","H13","I12"]],"hexes":["H11","I12"],"revenue":60,"revenue_str":"H11-I12","nodes":["H11-0","I12-0"]},{"train":"L-6","connections":[["H11","I12"]],"hexes":["H11","I12"],"revenue":60,"revenue_str":"H11-I12","nodes":["H11-0","I12-0"]}]},{"type":"buy_train","entity":"7","entity_type":"corporation","id":432,"created_at":1684895161,"train":"L-0","price":60,"variant":"L"},{"type":"pass","entity":"7","entity_type":"corporation","id":433,"created_at":1684895163},{"type":"lay_tile","entity":"7","entity_type":"corporation","id":434,"created_at":1684895170,"hex":"G22","tile":"9-2","rotation":0},{"type":"run_routes","entity":"7","entity_type":"corporation","id":435,"created_at":1684895177,"routes":[{"train":"L-19","connections":[["F23","F21","E20"]],"hexes":["F23","E20"],"revenue":30,"revenue_str":"F23-E20","nodes":["F23-0","E20-0"]}]},{"type":"pass","entity":"7","entity_type":"corporation","id":436,"created_at":1684895197},{"type":"pass","entity":"6","entity_type":"corporation","id":437,"created_at":1684895203},{"type":"lay_tile","entity":"6","entity_type":"corporation","id":438,"created_at":1684895208,"hex":"H7","tile":"8-9","rotation":3},{"type":"run_routes","entity":"6","entity_type":"corporation","id":439,"created_at":1684895221,"routes":[{"train":"LP-1","connections":[["local","F9"]],"hexes":["F9"],"revenue":30,"revenue_str":"F9","nodes":[]},{"train":"L-1","connections":[["F9","G8"]],"hexes":["F9","G8"],"revenue":40,"revenue_str":"F9-G8","nodes":["F9-0","G8-0"]},{"train":"L-15","connections":[["F9","F7","G6","F5"]],"hexes":["F5","F9"],"revenue":60,"revenue_str":"F5-F9","nodes":["F9-0","F5-0"]}]},{"type":"acquire_company","entity":"2","company":"P8","entity_type":"corporation","id":440,"user":13048,"created_at":1684895240},{"type":"pass","entity":"2","entity_type":"corporation","id":441,"user":13048,"created_at":1684895242},{"type":"undo","entity":"2","action_id":439,"entity_type":"corporation","id":442,"user":13048,"created_at":1684895250},{"type":"pass","entity":"2","entity_type":"corporation","id":443,"created_at":1684895251},{"type":"pass","entity":"2","entity_type":"corporation","id":444,"created_at":1684895266},{"type":"run_routes","entity":"2","entity_type":"corporation","id":445,"created_at":1684895269,"routes":[{"train":"L-2","connections":[["B19","A20"]],"hexes":["B19","A20"],"revenue":30,"revenue_str":"B19-A20","nodes":["B19-0","A20-0"]}]},{"type":"pass","entity":"2","entity_type":"corporation","id":446,"created_at":1684895272},{"type":"pass","entity":"4","entity_type":"corporation","id":447,"created_at":1684895311},{"type":"pass","entity":"4","entity_type":"corporation","id":448,"created_at":1684895328},{"type":"run_routes","entity":"4","entity_type":"corporation","id":449,"created_at":1684895331,"routes":[{"train":"L-3","connections":[["D19","E20"]],"hexes":["D19","E20"],"revenue":30,"revenue_str":"D19-E20","nodes":["D19-0","E20-0"]}]},{"type":"pass","entity":"4","entity_type":"corporation","id":450,"created_at":1684895337},{"type":"pass","entity":"15","entity_type":"corporation","id":451,"created_at":1684895341},{"type":"lay_tile","entity":"15","entity_type":"corporation","id":452,"created_at":1684895345,"hex":"K4","tile":"8-10","rotation":3},{"type":"run_routes","entity":"15","entity_type":"corporation","id":453,"created_at":1684895350,"routes":[{"train":"L-12","connections":[["M4","L3"]],"hexes":["M4","L3"],"revenue":30,"revenue_str":"M4-L3","nodes":["M4-0","L3-0"]}]},{"type":"pass","entity":"15","entity_type":"corporation","id":454,"created_at":1684895353},{"type":"pass","entity":"1","entity_type":"corporation","id":457,"created_at":1684895384},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":458,"created_at":1684895393,"hex":"A10","tile":"9-3","rotation":1},{"type":"run_routes","entity":"1","entity_type":"corporation","id":459,"created_at":1684895399,"routes":[{"train":"L-13","connections":[["local","A8"]],"hexes":["A8"],"revenue":30,"revenue_str":"A8","nodes":["A8-0"]}]},{"type":"buy_train","entity":"1","entity_type":"corporation","id":460,"created_at":1684895400,"train":"L-13","price":80,"variant":"2","exchange":"L-13"},{"type":"pass","entity":"1","entity_type":"corporation","id":461,"created_at":1684895403},{"type":"pass","entity":"9","entity_type":"corporation","id":462,"created_at":1684895408},{"type":"lay_tile","entity":"9","entity_type":"corporation","id":464,"created_at":1684895420,"hex":"H19","tile":"5-1","rotation":4},{"type":"run_routes","entity":"9","entity_type":"corporation","id":465,"created_at":1684895425,"routes":[{"train":"L-14","connections":[["local","H19"]],"hexes":["H19"],"revenue":20,"revenue_str":"H19","nodes":["H19-0"]}]},{"type":"buy_train","entity":"9","entity_type":"corporation","id":466,"created_at":1684895426,"train":"L-14","price":80,"variant":"2","exchange":"L-14"},{"type":"buy_train","entity":"11","entity_type":"corporation","id":467,"created_at":1684895430,"train":"L-0","price":60,"variant":"L"},{"type":"pass","entity":"11","entity_type":"corporation","id":468,"created_at":1684895432},{"type":"lay_tile","entity":"11","entity_type":"corporation","id":469,"created_at":1684895439,"hex":"J5","tile":"6-2","rotation":4},{"type":"run_routes","entity":"11","entity_type":"corporation","id":470,"created_at":1684895445,"routes":[{"train":"L-20","connections":[["local","J5"]],"hexes":["J5"],"revenue":20,"revenue_str":"J5","nodes":[]}]},{"type":"pass","entity":"11","entity_type":"corporation","id":471,"created_at":1684895447},{"type":"pass","entity":"SPS","entity_type":"corporation","id":472,"created_at":1684895454},{"type":"pass","entity":"SPS","entity_type":"corporation","id":473,"created_at":1684895470,"auto_actions":[{"type":"pass","entity":"SPS","entity_type":"corporation","created_at":1684895469}]},{"type":"run_routes","entity":"SPS","entity_type":"corporation","id":474,"created_at":1684895474,"routes":[{"train":"L-8","connections":[["N5","O4","P5"]],"hexes":["N5","P5"],"revenue":40,"revenue_str":"N5-P5","nodes":["N5-0","P5-0"]},{"train":"L-7","connections":[["O8","N9"]],"hexes":["O8","N9"],"revenue":50,"revenue_str":"O8-N9","nodes":["O8-0","N9-0"]}]},{"type":"dividend","entity":"SPS","entity_type":"corporation","id":475,"created_at":1684895505,"kind":"payout"},{"type":"pass","entity":"SPS","entity_type":"corporation","id":476,"created_at":1684895519},{"type":"pass","entity":"8","entity_type":"corporation","id":477,"created_at":1684895524},{"type":"lay_tile","entity":"8","entity_type":"corporation","id":478,"created_at":1684895529,"hex":"J15","tile":"7-2","rotation":2},{"type":"run_routes","entity":"8","entity_type":"corporation","id":479,"created_at":1684895533,"routes":[{"train":"LP-0","connections":[["H11","G12"]],"hexes":["H11","G12"],"revenue":50,"revenue_str":"H11-G12","nodes":["H11-0","G12-0"]},{"train":"L-9","connections":[["H11","H13","I12"]],"hexes":["H11","I12"],"revenue":60,"revenue_str":"H11-I12","nodes":["H11-0","I12-0"]},{"train":"L-6","connections":[["H11","I12"]],"hexes":["H11","I12"],"revenue":60,"revenue_str":"H11-I12","nodes":["H11-0","I12-0"]}]},{"type":"pass","entity":"7","entity_type":"corporation","id":480,"created_at":1684895536},{"type":"lay_tile","entity":"7","entity_type":"corporation","id":482,"created_at":1684895542,"hex":"H21","tile":"6-3","rotation":1},{"type":"run_routes","entity":"7","entity_type":"corporation","id":483,"created_at":1684895547,"routes":[{"train":"L-19","connections":[["F23","F21","E20"]],"hexes":["F23","E20"],"revenue":30,"revenue_str":"F23-E20","nodes":["F23-0","E20-0"]}]},{"type":"buy_train","entity":"7","entity_type":"corporation","id":484,"created_at":1684895548,"train":"L-19","price":80,"variant":"2","exchange":"L-19"},{"type":"pass","entity":"7","entity_type":"corporation","id":485,"created_at":1684895550},{"type":"pass","entity":"6","entity_type":"corporation","id":486,"created_at":1684895556},{"type":"lay_tile","entity":"6","entity_type":"corporation","id":487,"created_at":1684895561,"hex":"I8","tile":"58-4","rotation":0},{"type":"run_routes","entity":"6","entity_type":"corporation","id":488,"created_at":1684895563,"routes":[{"train":"LP-1","connections":[["local","F9"]],"hexes":["F9"],"revenue":30,"revenue_str":"F9","nodes":[]},{"train":"L-1","connections":[["F9","G8"]],"hexes":["F9","G8"],"revenue":40,"revenue_str":"F9-G8","nodes":["F9-0","G8-0"]},{"train":"L-15","connections":[["F9","F7","G6","F5"]],"hexes":["F9","F5"],"revenue":60,"revenue_str":"F9-F5","nodes":["F9-0","F5-0"]}]},{"type":"pass","entity":"2","entity_type":"corporation","id":489,"created_at":1684895574},{"type":"pass","entity":"2","entity_type":"corporation","id":490,"created_at":1684895583},{"type":"run_routes","entity":"2","entity_type":"corporation","id":491,"created_at":1684895587,"routes":[{"train":"L-2","connections":[["B19","A20"]],"hexes":["B19","A20"],"revenue":30,"revenue_str":"B19-A20","nodes":["B19-0","A20-0"]}]},{"type":"pass","entity":"2","entity_type":"corporation","id":492,"created_at":1684895591},{"type":"pass","entity":"4","entity_type":"corporation","id":493,"created_at":1684895601},{"type":"pass","entity":"4","entity_type":"corporation","id":494,"created_at":1684895609},{"type":"run_routes","entity":"4","entity_type":"corporation","id":495,"created_at":1684895612,"routes":[{"train":"L-3","connections":[["D19","E20"]],"hexes":["D19","E20"],"revenue":30,"revenue_str":"D19-E20","nodes":["D19-0","E20-0"]}]},{"type":"pass","entity":"4","entity_type":"corporation","id":496,"created_at":1684895620},{"type":"pass","entity":"15","entity_type":"corporation","id":497,"created_at":1684895626},{"type":"pass","entity":"15","entity_type":"corporation","id":498,"created_at":1684895631},{"type":"run_routes","entity":"15","entity_type":"corporation","id":499,"created_at":1684895638,"routes":[{"train":"L-12","connections":[["J5","K4","L5","M4"]],"hexes":["M4","J5"],"revenue":40,"revenue_str":"M4-J5","nodes":["J5-0","M4-0"]}]},{"type":"pass","entity":"15","entity_type":"corporation","id":500,"created_at":1684895640},{"type":"pass","entity":"1","entity_type":"corporation","id":501,"created_at":1684895653},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":502,"created_at":1684895661,"hex":"A12","tile":"9-4","rotation":1},{"type":"run_routes","entity":"1","entity_type":"corporation","id":503,"created_at":1684895671,"routes":[{"train":"L-13","connections":[["A8","B9","C10","D11"]],"hexes":["A8","D11"],"revenue":60,"revenue_str":"A8-D11","nodes":["A8-0","D11-0"]}]},{"type":"pass","entity":"1","entity_type":"corporation","id":504,"created_at":1684895674},{"type":"pass","entity":"9","entity_type":"corporation","id":505,"created_at":1684895681},{"type":"lay_tile","entity":"9","entity_type":"corporation","id":506,"created_at":1684895685,"hex":"I20","tile":"BC-0","rotation":0},{"type":"run_routes","entity":"9","entity_type":"corporation","id":507,"created_at":1684895690,"routes":[{"train":"L-14","connections":[["H19","H21"]],"hexes":["H19","H21"],"revenue":40,"revenue_str":"H19-H21","nodes":["H19-0","H21-0"]}]},{"type":"pass","entity":"9","entity_type":"corporation","id":508,"created_at":1684895693},{"type":"pass","entity":"11","entity_type":"corporation","id":509,"created_at":1684895698},{"type":"lay_tile","entity":"11","entity_type":"corporation","id":510,"created_at":1684895704,"hex":"J7","tile":"58-5","rotation":1},{"type":"run_routes","entity":"11","entity_type":"corporation","id":511,"created_at":1684895708,"routes":[{"train":"L-20","connections":[["J5","J7"]],"hexes":["J7","J5"],"revenue":30,"revenue_str":"J7-J5","nodes":["J5-0","J7-0"]}]},{"type":"pass","entity":"11","entity_type":"corporation","id":512,"created_at":1684895711},{"type":"pass","entity":"SPS","entity_type":"corporation","id":513,"created_at":1684895718},{"type":"pass","entity":"SPS","entity_type":"corporation","id":514,"created_at":1684895735,"auto_actions":[{"type":"pass","entity":"SPS","entity_type":"corporation","created_at":1684895734}]},{"type":"run_routes","entity":"SPS","entity_type":"corporation","id":515,"created_at":1684895740,"routes":[{"train":"L-8","connections":[["N5","O4","P5"]],"hexes":["N5","P5"],"revenue":40,"revenue_str":"N5-P5","nodes":["N5-0","P5-0"]},{"train":"L-7","connections":[["O8","N9"]],"hexes":["O8","N9"],"revenue":50,"revenue_str":"O8-N9","nodes":["O8-0","N9-0"]}]},{"type":"dividend","entity":"SPS","entity_type":"corporation","id":516,"created_at":1684895744,"kind":"payout"},{"type":"pass","entity":"SPS","entity_type":"corporation","id":517,"created_at":1684895750,"auto_actions":[{"type":"pass","entity":"SPS","entity_type":"corporation","created_at":1684895749}]},{"type":"pass","entity":"SPS","entity_type":"corporation","id":518,"created_at":1684895758},{"type":"pass","entity":"7","entity_type":"corporation","id":519,"created_at":1684895763},{"type":"merge","entity":"6","entity_type":"corporation","id":520,"created_at":1684895768,"corporation":"11"},{"type":"choose","entity":"6","entity_type":"corporation","id":521,"created_at":1684895778,"choice":"100"},{"type":"choose","entity":"6","entity_type":"corporation","id":522,"created_at":1684895825,"choice":"3"},{"type":"choose","entity":"6","entity_type":"corporation","id":523,"created_at":1684895838,"choice":"exchange"},{"type":"bid","entity":13048,"entity_type":"player","id":524,"created_at":1684895845,"company":"M3","price":100},{"type":"bid","entity":13048,"entity_type":"player","id":525,"created_at":1684895857,"company":"P14","price":0},{"type":"bid","entity":13048,"entity_type":"player","id":526,"created_at":1684895858,"company":"P7","price":0},{"type":"bid","entity":2089,"entity_type":"player","id":527,"created_at":1684895911,"company":"P14","price":20},{"type":"bid","entity":2089,"entity_type":"player","id":528,"created_at":1684895914,"company":"P7","price":20},{"type":"bid","entity":2089,"entity_type":"player","id":529,"created_at":1684895920,"company":"P16","price":20},{"type":"bid","entity":605,"entity_type":"player","id":530,"created_at":1684895932,"company":"P7","price":25},{"type":"pass","entity":605,"entity_type":"player","id":531,"created_at":1684895934},{"type":"bid","entity":1324,"entity_type":"player","id":532,"created_at":1684895939,"company":"P14","price":25},{"type":"pass","entity":1324,"entity_type":"player","id":533,"created_at":1684895940},{"type":"buy_shares","entity":13048,"entity_type":"player","id":534,"created_at":1684895952,"shares":["NP_2"],"percent":10,"share_price":false},{"type":"bid","entity":2089,"entity_type":"player","id":535,"created_at":1684895979,"company":"P14","price":30},{"type":"bid","entity":2089,"entity_type":"player","id":536,"created_at":1684896001,"company":"P7","price":30},{"type":"pass","entity":2089,"entity_type":"player","id":537,"created_at":1684896004},{"type":"bid","entity":605,"entity_type":"player","id":538,"created_at":1684896023,"company":"P7","price":35},{"type":"bid","entity":605,"entity_type":"player","id":539,"created_at":1684896026,"company":"P16","price":25},{"type":"pass","entity":605,"entity_type":"player","id":540,"created_at":1684896028},{"type":"bid","entity":1324,"entity_type":"player","id":541,"created_at":1684896033,"company":"P14","price":35},{"type":"pass","entity":1324,"entity_type":"player","id":542,"created_at":1684896035},{"type":"pass","entity":13048,"entity_type":"player","id":543,"created_at":1684896039},{"type":"bid","entity":2089,"entity_type":"player","id":544,"created_at":1684896073,"company":"P14","price":40},{"type":"bid","entity":2089,"entity_type":"player","id":545,"created_at":1684896088,"company":"P7","price":40},{"type":"pass","entity":2089,"entity_type":"player","id":546,"created_at":1684896090},{"type":"bid","entity":605,"entity_type":"player","id":547,"created_at":1684896108,"company":"M3","price":180},{"type":"pass","entity":605,"entity_type":"player","id":548,"created_at":1684896111},{"type":"bid","entity":1324,"entity_type":"player","id":549,"created_at":1684896171,"company":"P14","price":45},{"type":"pass","entity":1324,"entity_type":"player","id":550,"created_at":1684896172},{"type":"buy_shares","entity":13048,"entity_type":"player","id":551,"created_at":1684896177,"shares":["NP_3"],"percent":10,"share_price":false},{"type":"bid","entity":2089,"entity_type":"player","id":552,"created_at":1684896212,"company":"P16","price":30},{"type":"pass","entity":2089,"entity_type":"player","id":553,"created_at":1684896214},{"type":"pass","entity":605,"entity_type":"player","id":554,"created_at":1684896225},{"type":"buy_shares","entity":1324,"entity_type":"player","id":555,"created_at":1684896239,"shares":["NP_4"],"percent":10,"share_price":false},{"type":"program_share_pass","entity":13048,"entity_type":"player","id":556,"created_at":1684896245,"auto_actions":[{"type":"pass","entity":13048,"entity_type":"player","created_at":1684896244}],"unconditional":false,"indefinite":false},{"type":"buy_shares","entity":2089,"entity_type":"player","id":557,"created_at":1684896268,"shares":["NP_5"],"percent":10,"share_price":false},{"type":"bid","entity":605,"entity_type":"player","id":558,"created_at":1684896287,"company":"P7","price":45},{"type":"pass","entity":605,"entity_type":"player","id":559,"created_at":1684896295},{"type":"pass","entity":1324,"entity_type":"player","id":560,"created_at":1684896308,"auto_actions":[{"type":"pass","entity":13048,"entity_type":"player","created_at":1684896306}]},{"type":"pass","entity":2089,"entity_type":"player","id":561,"created_at":1684896332},{"type":"pass","entity":605,"entity_type":"player","id":562,"created_at":1684896340},{"type":"pass","entity":"8","entity_type":"corporation","id":563,"user":605,"created_at":1684896342},{"hex":"I16","tile":"7-3","type":"lay_tile","entity":"8","rotation":5,"entity_type":"corporation","id":564,"user":605,"created_at":1684896358},{"type":"run_routes","entity":"8","routes":[{"hexes":["H11","G12"],"nodes":["H11-0","G12-0"],"train":"LP-0","revenue":50,"connections":[["H11","G12"]],"revenue_str":"H11-G12"},{"hexes":["H11","I12"],"nodes":["H11-0","I12-0"],"train":"L-9","revenue":70,"connections":[["H11","H13","I12"]],"revenue_str":"H11-I12"},{"hexes":["H11","I12"],"nodes":["H11-0","I12-0"],"train":"L-6","revenue":70,"connections":[["H11","I12"]],"revenue_str":"H11-I12"}],"entity_type":"corporation","id":565,"user":605,"created_at":1684896362},{"type":"pass","entity":"7","entity_type":"corporation","id":566,"user":605,"created_at":1684896366},{"hex":"E22","tile":"8-11","type":"lay_tile","entity":"7","rotation":3,"entity_type":"corporation","id":567,"user":605,"created_at":1684896371},{"type":"undo","entity":"7","action_id":562,"entity_type":"corporation","id":568,"user":605,"created_at":1684896389},{"type":"pass","entity":"8","entity_type":"corporation","id":569,"created_at":1684896390},{"type":"lay_tile","entity":"8","entity_type":"corporation","id":570,"created_at":1684896394,"hex":"H11","tile":"X21-0","rotation":0},{"type":"run_routes","entity":"8","entity_type":"corporation","id":571,"created_at":1684896397,"routes":[{"train":"LP-0","connections":[["H11","G12"]],"hexes":["H11","G12"],"revenue":70,"revenue_str":"H11-G12","nodes":["H11-0","G12-0"]},{"train":"L-9","connections":[["H11","H13","I12"]],"hexes":["H11","I12"],"revenue":90,"revenue_str":"H11-I12","nodes":["H11-0","I12-0"]},{"train":"L-6","connections":[["H11","I12"]],"hexes":["H11","I12"],"revenue":90,"revenue_str":"H11-I12","nodes":["H11-0","I12-0"]}]},{"type":"pass","entity":"7","entity_type":"corporation","id":572,"created_at":1684896402},{"type":"lay_tile","entity":"7","entity_type":"corporation","id":573,"created_at":1684896409,"hex":"H21","tile":"15-0","rotation":0},{"type":"run_routes","entity":"7","entity_type":"corporation","id":574,"created_at":1684896414,"routes":[{"train":"L-19","connections":[["F23","G22","H21"]],"hexes":["F23","H21"],"revenue":60,"revenue_str":"F23-H21","nodes":["F23-0","H21-0"]}]},{"type":"buy_train","entity":"7","entity_type":"corporation","id":575,"created_at":1684896427,"train":"L-6","price":5},{"type":"acquire_company","entity":"2","entity_type":"corporation","id":576,"created_at":1684896444,"company":"P8"},{"type":"pass","entity":"2","entity_type":"corporation","id":577,"created_at":1684896446},{"type":"lay_tile","entity":"P8","entity_type":"company","id":578,"created_at":1684896456,"hex":"A20","tile":"83-0","rotation":1},{"type":"run_routes","entity":"2","entity_type":"corporation","id":579,"created_at":1684896466,"routes":[{"train":"L-2","connections":[["B19","A20","A22"]],"hexes":["B19","A22"],"revenue":60,"revenue_str":"B19-A22","nodes":["B19-0","A22-0"]}]},{"type":"pass","entity":"2","entity_type":"corporation","id":580,"created_at":1684896473},{"type":"pass","entity":"4","entity_type":"corporation","id":581,"created_at":1684896498},{"type":"lay_tile","entity":"4","entity_type":"corporation","id":582,"created_at":1684896513,"hex":"D19","tile":"15-1","rotation":2},{"type":"run_routes","entity":"4","entity_type":"corporation","id":583,"created_at":1684896521,"routes":[{"train":"L-3","connections":[["D19","C18","B19"]],"hexes":["D19","B19"],"revenue":50,"revenue_str":"D19-B19","nodes":["D19-0","B19-0"]}]},{"type":"pass","entity":"4","entity_type":"corporation","id":584,"created_at":1684896533},{"type":"pass","entity":"3","entity_type":"corporation","id":585,"created_at":1684896538},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":586,"created_at":1684896543,"hex":"D11","tile":"207-0","rotation":2},{"type":"buy_train","entity":"3","entity_type":"corporation","id":587,"created_at":1684896547,"train":"3-1","price":200,"variant":"3"},{"type":"pass","entity":"15","entity_type":"corporation","id":588,"user":1324,"created_at":1684896554},{"hex":"J7","tile":"142-0","type":"lay_tile","entity":"15","rotation":4,"entity_type":"corporation","id":589,"user":1324,"created_at":1684896560},{"type":"run_routes","entity":"15","routes":[{"hexes":["J5","M4"],"nodes":["J5-0","M4-0"],"train":"L-12","revenue":40,"connections":[["J5","K4","L5","M4"]],"revenue_str":"J5-M4"}],"entity_type":"corporation","id":590,"user":1324,"created_at":1684896564},{"type":"pass","entity":"15","entity_type":"corporation","id":591,"user":1324,"created_at":1684896594},{"type":"undo","entity":"1","action_id":587,"entity_type":"corporation","id":592,"user":13048,"created_at":1684896624},{"type":"pass","entity":"15","entity_type":"corporation","id":593,"created_at":1684896638},{"type":"lay_tile","entity":"15","entity_type":"corporation","id":594,"created_at":1684896643,"hex":"J7","tile":"142-0","rotation":4},{"type":"run_routes","entity":"15","entity_type":"corporation","id":595,"created_at":1684896646,"routes":[{"train":"L-12","connections":[["J5","K4","L5","M4"]],"hexes":["J5","M4"],"revenue":40,"revenue_str":"J5-M4","nodes":["J5-0","M4-0"]}]},{"type":"pass","entity":"15","entity_type":"corporation","id":596,"created_at":1684896648},{"type":"acquire_company","entity":"1","entity_type":"corporation","id":597,"created_at":1684896672,"company":"P10"},{"type":"pass","entity":"1","entity_type":"corporation","id":598,"created_at":1684896676},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":599,"created_at":1684896681,"hex":"A14","tile":"9-5","rotation":1},{"type":"lay_tile","entity":"P10","entity_type":"company","id":600,"created_at":1684896686,"hex":"A16","tile":"BC-0","rotation":0},{"type":"lay_tile","entity":"P10","entity_type":"company","id":601,"created_at":1684896693,"hex":"A16","tile":"BC-0","rotation":0},{"type":"lay_tile","entity":"P10","entity_type":"company","id":602,"created_at":1684896699,"hex":"A16","tile":"BC-0","rotation":0},{"type":"run_routes","entity":"1","entity_type":"corporation","id":603,"created_at":1684896709,"routes":[{"train":"L-13","connections":[["A8","B9","C10","D11"]],"hexes":["A8","D11"],"revenue":70,"revenue_str":"A8-D11","nodes":["A8-0","D11-0"]}]},{"type":"pass","entity":"1","entity_type":"corporation","id":604,"created_at":1684896717},{"type":"pass","entity":"9","entity_type":"corporation","id":605,"created_at":1684896722},{"type":"lay_tile","entity":"9","entity_type":"corporation","id":606,"created_at":1684896727,"hex":"I20","tile":"9-6","rotation":0},{"type":"run_routes","entity":"9","entity_type":"corporation","id":607,"created_at":1684896730,"routes":[{"train":"L-14","connections":[["H19","H21"]],"hexes":["H19","H21"],"revenue":50,"revenue_str":"H19-H21","nodes":["H19-0","H21-0"]}]},{"type":"pass","entity":"9","entity_type":"corporation","id":608,"created_at":1684896732},{"type":"pass","entity":"SPS","entity_type":"corporation","id":609,"created_at":1684896763},{"type":"lay_tile","entity":"SPS","entity_type":"corporation","id":610,"created_at":1684896801,"auto_actions":[{"type":"pass","entity":"SPS","entity_type":"corporation","created_at":1684896800}],"hex":"O8","tile":"X24-0","rotation":0},{"type":"run_routes","entity":"SPS","entity_type":"corporation","id":611,"created_at":1684896811,"routes":[{"train":"L-8","connections":[["O8","N7","N5"]],"hexes":["O8","N5"],"revenue":60,"revenue_str":"O8-N5","nodes":["O8-0","N5-0"]},{"train":"L-7","connections":[["O8","N9"]],"hexes":["O8","N9"],"revenue":80,"revenue_str":"O8-N9","nodes":["O8-0","N9-0"]}]},{"type":"dividend","entity":"SPS","entity_type":"corporation","id":612,"created_at":1684896814,"kind":"payout"},{"type":"buy_train","entity":"SPS","entity_type":"corporation","id":613,"created_at":1684896823,"train":"3-2","price":200,"variant":"3"},{"type":"buy_train","entity":"SPS","entity_type":"corporation","id":614,"created_at":1684896832,"auto_actions":[{"type":"pass","entity":"SPS","entity_type":"corporation","created_at":1684896831}],"train":"3-3","price":200,"variant":"3"},{"type":"pass","entity":"SPS","entity_type":"corporation","id":615,"created_at":1684896836},{"type":"acquire_company","entity":"NP","entity_type":"corporation","id":616,"created_at":1684896843,"company":"P9"},{"type":"acquire_company","entity":"NP","entity_type":"corporation","id":617,"created_at":1684896844,"company":"P14"},{"type":"pass","entity":"NP","entity_type":"corporation","id":618,"created_at":1684896845},{"type":"lay_tile","entity":"NP","entity_type":"corporation","id":619,"created_at":1684896849,"hex":"J11","tile":"8-11","rotation":1},{"type":"lay_tile","entity":"NP","entity_type":"corporation","id":620,"created_at":1684896857,"auto_actions":[{"type":"hex_token","entity":"NP","entity_type":"corporation","created_at":1684896856,"hex":"I12","token_type":"destination"}],"hex":"F3","tile":"8-12","rotation":2},{"type":"pass","entity":"NP","entity_type":"corporation","id":621,"user":1324,"created_at":1684896861},{"type":"undo","entity":"NP","entity_type":"corporation","id":622,"user":1324,"created_at":1684896873},{"type":"place_token","entity":"NP","entity_type":"corporation","id":623,"created_at":1684896875,"city":"X21-0-0","slot":1,"tokener":"NP"},{"type":"run_routes","entity":"NP","entity_type":"corporation","id":624,"created_at":1684896903,"routes":[{"train":"LP-1","connections":[["H11","G12"]],"hexes":["G12","H11"],"revenue":70,"revenue_str":"G12-H11","nodes":["H11-0","G12-0"]},{"train":"L-1","connections":[["H11","H13","I12"]],"hexes":["I12","H11"],"revenue":90,"revenue_str":"I12-H11","nodes":["H11-0","I12-0"]},{"train":"L-15","connections":[["H11","I12"]],"hexes":["I12","H11"],"revenue":90,"revenue_str":"I12-H11 (+$0 LB) ","nodes":["H11-0","I12-0"]}]},{"type":"dividend","entity":"NP","entity_type":"corporation","id":625,"created_at":1684896905,"kind":"payout"},{"type":"buy_train","entity":"NP","entity_type":"corporation","id":626,"created_at":1684896907,"train":"3-4","price":200,"variant":"3"},{"type":"buy_train","entity":"NP","entity_type":"corporation","id":627,"created_at":1684896908,"train":"3-5","price":200,"variant":"3"},{"type":"merge","entity":"7","entity_type":"corporation","id":628,"created_at":1684896918,"corporation":"9"},{"type":"choose","entity":"7","entity_type":"corporation","id":629,"created_at":1684896921,"choice":"100"},{"type":"choose","entity":"7","entity_type":"corporation","id":630,"created_at":1684896925,"choice":"4"},{"type":"choose","entity":"7","entity_type":"corporation","id":631,"created_at":1684896930,"choice":"exchange"},{"type":"pass","entity":"8","entity_type":"corporation","id":632,"created_at":1684896938},{"type":"lay_tile","entity":"8","entity_type":"corporation","id":633,"created_at":1684896964,"hex":"I16","tile":"7-3","rotation":5},{"type":"run_routes","entity":"8","entity_type":"corporation","id":634,"created_at":1684896969,"routes":[{"train":"LP-0","connections":[["H11","G12"]],"hexes":["H11","G12"],"revenue":70,"revenue_str":"H11-G12","nodes":["H11-0","G12-0"]},{"train":"L-9","connections":[["H11","H13","I12"]],"hexes":["H11","I12"],"revenue":90,"revenue_str":"H11-I12","nodes":["H11-0","I12-0"]}]},{"type":"buy_train","entity":"8","entity_type":"corporation","id":635,"created_at":1684896971,"train":"3-6","price":200,"variant":"3"},{"type":"pass","entity":"2","entity_type":"corporation","id":636,"created_at":1684896975},{"type":"lay_tile","entity":"2","entity_type":"corporation","id":637,"created_at":1684896987,"hex":"B19","tile":"15-2","rotation":0},{"type":"run_routes","entity":"2","entity_type":"corporation","id":639,"created_at":1684896996,"routes":[{"train":"L-2","connections":[["B19","A20","A22"]],"hexes":["B19","A22"],"revenue":70,"revenue_str":"B19-A22","nodes":["B19-0","A22-0"]}]},{"type":"pass","entity":"2","entity_type":"corporation","id":640,"created_at":1684897002},{"type":"pass","entity":"4","entity_type":"corporation","id":641,"user":2089,"created_at":1684897009},{"type":"undo","entity":"4","action_id":640,"entity_type":"corporation","id":642,"user":13048,"created_at":1684897019},{"type":"pass","entity":"4","entity_type":"corporation","id":643,"created_at":1684897044},{"type":"lay_tile","entity":"4","entity_type":"corporation","id":644,"created_at":1684897053,"hex":"C20","tile":"82-0","rotation":3},{"type":"run_routes","entity":"4","entity_type":"corporation","id":645,"created_at":1684897060,"routes":[{"train":"L-3","connections":[["D19","C18","B19"]],"hexes":["D19","B19"],"revenue":60,"revenue_str":"D19-B19","nodes":["D19-0","B19-0"]}]},{"type":"buy_train","entity":"4","entity_type":"corporation","id":646,"created_at":1684897078,"train":"3-2","price":115},{"type":"pass","entity":"15","entity_type":"corporation","id":647,"created_at":1684897083},{"type":"lay_tile","entity":"15","entity_type":"corporation","id":648,"created_at":1684897107,"hex":"J9","tile":"207-1","rotation":4},{"type":"run_routes","entity":"15","entity_type":"corporation","id":649,"created_at":1684897113,"routes":[{"train":"L-12","connections":[["J5","K4","L5","M4"]],"hexes":["J5","M4"],"revenue":40,"revenue_str":"J5-M4","nodes":["J5-0","M4-0"]}]},{"type":"pass","entity":"15","entity_type":"corporation","id":650,"created_at":1684897116},{"type":"pass","entity":"3","entity_type":"corporation","id":651,"created_at":1684897123},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":652,"created_at":1684897134,"hex":"A8","tile":"405-0","rotation":5},{"type":"run_routes","entity":"3","entity_type":"corporation","id":653,"created_at":1684897138,"routes":[{"train":"3-1","connections":[["D11","C10","B9","A8"]],"hexes":["D11","A8"],"revenue":80,"revenue_str":"D11-A8","nodes":["D11-0","A8-0"]}]},{"type":"pass","entity":"3","entity_type":"corporation","id":654,"created_at":1684897142},{"type":"pass","entity":"1","entity_type":"corporation","id":655,"created_at":1684897147},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":656,"created_at":1684897154,"hex":"A16","tile":"9-7","rotation":1},{"type":"run_routes","entity":"1","entity_type":"corporation","id":657,"created_at":1684897167,"routes":[{"train":"L-13","connections":[["A8","B9","C10","D11"]],"hexes":["A8","D11"],"revenue":80,"revenue_str":"A8-D11","nodes":["A8-0","D11-0"]}]},{"type":"pass","entity":"1","entity_type":"corporation","id":658,"created_at":1684897174},{"type":"pass","entity":"NP","entity_type":"corporation","id":660,"created_at":1684897201},{"type":"lay_tile","entity":"NP","entity_type":"corporation","id":661,"created_at":1684897222,"hex":"F9","tile":"15-3","rotation":4},{"type":"pass","entity":"NP","entity_type":"corporation","id":662,"created_at":1684897233},{"type":"run_routes","entity":"NP","entity_type":"corporation","id":663,"created_at":1684897260,"routes":[{"train":"LP-1","connections":[["H11","G12"]],"hexes":["H11","G12"],"revenue":70,"revenue_str":"H11-G12","nodes":["H11-0","G12-0"]},{"train":"L-1","connections":[["H11","H13","I12"]],"hexes":["H11","I12"],"revenue":90,"revenue_str":"H11-I12","nodes":["H11-0","I12-0"]},{"train":"L-15","connections":[["H11","I12"]],"hexes":["H11","I12"],"revenue":90,"revenue_str":"H11-I12","nodes":["H11-0","I12-0"]},{"train":"3-4","connections":[["F5","F3","E2"],["F9","F7","G6","F5"]],"hexes":["E2","F5","F9"],"revenue":120,"revenue_str":"E2-F5-F9 (+$30 LB) ","nodes":["F5-0","E2-0","F9-0"]},{"train":"3-5","connections":[["G8","H7","I8"],["F9","G8"]],"hexes":["I8","G8","F9"],"revenue":60,"revenue_str":"I8-G8-F9","nodes":["G8-0","I8-0","F9-0"]}]},{"type":"dividend","entity":"NP","entity_type":"corporation","id":664,"created_at":1684897262,"kind":"payout"},{"type":"merge","entity":"NP","entity_type":"corporation","id":665,"created_at":1684897264,"corporation":"15"},{"type":"choose","entity":"NP","entity_type":"corporation","id":666,"created_at":1684897271,"choice":"two_shares"},{"type":"choose","entity":"NP","entity_type":"corporation","id":667,"created_at":1684897275,"choice":"exchange"},{"type":"discard_train","entity":"NP","entity_type":"corporation","id":668,"created_at":1684897278,"train":"L-15"},{"type":"pass","entity":"NP","entity_type":"corporation","id":669,"created_at":1684897281},{"type":"pass","entity":"SPS","entity_type":"corporation","id":670,"created_at":1684897307},{"type":"lay_tile","entity":"SPS","entity_type":"corporation","id":671,"created_at":1684897339,"auto_actions":[{"type":"pass","entity":"SPS","entity_type":"corporation","created_at":1684897337}],"hex":"N5","tile":"619-0","rotation":0},{"type":"run_routes","entity":"SPS","entity_type":"corporation","id":672,"created_at":1684897350,"routes":[{"train":"3-3","connections":[["O8","P7","P5"],["P5","O4","N5"]],"hexes":["O8","P5","N5"],"revenue":90,"revenue_str":"O8-P5-N5","nodes":["O8-0","P5-0","N5-0"]},{"train":"L-8","connections":[["O8","N7","N5"]],"hexes":["O8","N5"],"revenue":70,"revenue_str":"O8-N5","nodes":["O8-0","N5-0"]},{"train":"L-7","connections":[["O8","N9"]],"hexes":["O8","N9"],"revenue":80,"revenue_str":"O8-N9","nodes":["O8-0","N9-0"]}]},{"type":"dividend","entity":"SPS","entity_type":"corporation","id":673,"created_at":1684897369,"kind":"withhold"},{"type":"buy_train","entity":"SPS","entity_type":"corporation","id":674,"created_at":1684897374,"train":"4-0","price":300,"variant":"4"},{"type":"pass","entity":"SPS","entity_type":"corporation","id":675,"created_at":1684897384,"auto_actions":[{"type":"pass","entity":"SPS","entity_type":"corporation","created_at":1684897383}]},{"type":"pass","entity":"SPS","entity_type":"corporation","id":676,"created_at":1684897388},{"type":"acquire_company","entity":"CMPS","entity_type":"corporation","id":677,"created_at":1684897397,"company":"P2"},{"type":"pass","entity":"CMPS","entity_type":"corporation","id":678,"created_at":1684897411},{"type":"lay_tile","entity":"CMPS","entity_type":"corporation","id":679,"created_at":1684897416,"hex":"A18","tile":"9-8","rotation":1},{"type":"lay_tile","entity":"CMPS","entity_type":"corporation","id":680,"created_at":1684897421,"auto_actions":[{"type":"pass","entity":"CMPS","entity_type":"corporation","created_at":1684897420}],"hex":"E12","tile":"9-9","rotation":2},{"type":"pass","entity":"CMPS","entity_type":"corporation","id":681,"created_at":1684897426},{"type":"run_routes","entity":"CMPS","entity_type":"corporation","id":682,"created_at":1684897443,"routes":[{"train":"2P-0","connections":[["F23","G22","H21"]],"hexes":["F23","H21"],"revenue":60,"revenue_str":"F23-H21","nodes":["F23-0","H21-0"]}]},{"type":"dividend","entity":"CMPS","entity_type":"corporation","id":683,"created_at":1684897446,"kind":"half"},{"type":"undo","entity":"CMPS","action_id":679,"entity_type":"corporation","id":684,"user":605,"created_at":1684897461},{"type":"redo","entity":"CMPS","entity_type":"corporation","id":685,"user":605,"created_at":1684897478},{"type":"buy_train","entity":"CMPS","entity_type":"corporation","id":686,"created_at":1684897482,"train":"4-1","price":300,"variant":"4"},{"type":"merge","entity":"1","entity_type":"corporation","id":687,"created_at":1684897493,"corporation":"2"},{"type":"choose","entity":"1","entity_type":"corporation","id":688,"created_at":1684897505,"choice":"100"},{"type":"choose","entity":"1","entity_type":"corporation","id":689,"created_at":1684897511,"choice":"4"},{"type":"choose","entity":"1","entity_type":"corporation","id":690,"created_at":1684897519,"choice":"replace"},{"type":"buy_shares","entity":1324,"entity_type":"player","id":691,"created_at":1684897574,"shares":["CMPS_3"],"percent":10,"share_price":false},{"type":"bid","entity":2089,"entity_type":"player","id":692,"created_at":1684897637,"company":"P15","price":20},{"type":"bid","entity":2089,"entity_type":"player","id":693,"created_at":1684897641,"company":"P11","price":20},{"type":"bid","entity":2089,"entity_type":"player","id":694,"created_at":1684897645,"company":"P17","price":20},{"type":"buy_shares","entity":605,"entity_type":"player","id":695,"created_at":1684897673,"shares":["SPS_5"],"percent":10,"share_price":false},{"type":"buy_shares","entity":13048,"entity_type":"player","id":696,"created_at":1684897690,"shares":["CPR_3"],"percent":10,"share_price":false},{"type":"buy_shares","entity":1324,"entity_type":"player","id":697,"created_at":1684897731,"shares":["CMPS_4"],"percent":10,"share_price":false},{"type":"buy_shares","entity":2089,"entity_type":"player","id":698,"created_at":1684897741,"shares":["SPS_6"],"percent":10,"share_price":false},{"type":"buy_shares","entity":605,"entity_type":"player","id":699,"created_at":1684897755,"shares":["CMPS_5"],"percent":10,"share_price":false},{"type":"buy_shares","entity":13048,"entity_type":"player","id":700,"created_at":1684897769,"shares":["NP_8"],"percent":10,"share_price":false},{"type":"pass","entity":1324,"entity_type":"player","id":701,"created_at":1684897784},{"type":"pass","entity":2089,"entity_type":"player","id":702,"created_at":1684897803},{"type":"sell_shares","entity":605,"entity_type":"player","id":703,"created_at":1684897826,"shares":["SPS_5"],"percent":10},{"type":"buy_shares","entity":605,"entity_type":"player","id":704,"created_at":1684897829,"shares":["CMPS_6"],"percent":10,"share_price":false},{"type":"bid","entity":13048,"entity_type":"player","id":705,"created_at":1684897852,"company":"P11","price":25},{"type":"bid","entity":13048,"entity_type":"player","id":706,"created_at":1684897853,"company":"P15","price":25},{"type":"pass","entity":13048,"entity_type":"player","id":707,"created_at":1684897855},{"type":"pass","entity":1324,"entity_type":"player","id":708,"created_at":1684897863},{"type":"bid","entity":2089,"entity_type":"player","id":709,"created_at":1684897889,"company":"P15","price":30},{"type":"pass","entity":2089,"entity_type":"player","id":710,"created_at":1684897894},{"type":"pass","entity":605,"entity_type":"player","id":711,"created_at":1684897900},{"type":"program_share_pass","entity":605,"entity_type":"player","id":712,"created_at":1684897904,"unconditional":false,"indefinite":false},{"type":"pass","entity":13048,"entity_type":"player","id":713,"created_at":1684897930},{"type":"pass","entity":1324,"entity_type":"player","id":714,"created_at":1684897939},{"type":"buy_shares","entity":2089,"entity_type":"player","id":715,"created_at":1684897965,"auto_actions":[{"type":"pass","entity":605,"entity_type":"player","created_at":1684897964}],"shares":["CMPS_7"],"percent":10,"share_price":false},{"type":"pass","entity":13048,"entity_type":"player","id":716,"created_at":1684897986},{"type":"pass","entity":1324,"entity_type":"player","id":717,"created_at":1684897991},{"type":"pass","entity":2089,"entity_type":"player","id":718,"created_at":1684897997},{"type":"pass","entity":"8","entity_type":"corporation","id":719,"created_at":1684898011},{"type":"lay_tile","entity":"8","entity_type":"corporation","id":720,"created_at":1684898026,"hex":"J17","tile":"BC-0","rotation":0},{"type":"run_routes","entity":"8","entity_type":"corporation","id":721,"created_at":1684898033,"routes":[{"train":"LP-0","connections":[["H11","G12"]],"hexes":["H11","G12"],"revenue":70,"revenue_str":"H11-G12","nodes":["H11-0","G12-0"]},{"train":"3-6","connections":[["H11","I12"],["I12","J11","J9"]],"hexes":["H11","I12","J9"],"revenue":130,"revenue_str":"H11-I12-J9","nodes":["H11-0","I12-0","J9-0"]}]},{"type":"pass","entity":"4","entity_type":"corporation","id":722,"created_at":1684898043},{"type":"lay_tile","entity":"4","entity_type":"corporation","id":723,"created_at":1684898061,"hex":"B21","tile":"9-10","rotation":0},{"type":"run_routes","entity":"4","entity_type":"corporation","id":724,"created_at":1684898068,"routes":[{"train":"3-2","connections":[["D19","C18","B19"],["B19","A20","A18","A16","A14","A12","A10","A8"]],"hexes":["D19","B19","A8"],"revenue":110,"revenue_str":"D19-B19-A8","nodes":["D19-0","B19-0","A8-0"]}]},{"type":"pass","entity":"3","entity_type":"corporation","id":725,"created_at":1684898076},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":726,"created_at":1684898081,"hex":"F13","tile":"6-4","rotation":0},{"type":"run_routes","entity":"3","entity_type":"corporation","id":727,"created_at":1684898086,"routes":[{"train":"3-1","connections":[["D11","C10","B9","A8"],["A8","A10","A12","A14","A16","A18","A20","A22"]],"hexes":["D11","A8","A22"],"revenue":130,"revenue_str":"D11-A8-A22","nodes":["D11-0","A8-0","A22-0"]}]},{"type":"pass","entity":"NP","entity_type":"corporation","id":728,"user":1324,"created_at":1684898095},{"hex":"K10","tile":"9-11","type":"lay_tile","entity":"NP","rotation":2,"entity_type":"corporation","id":729,"user":1324,"created_at":1684898117},{"hex":"L11","tile":"57-1","type":"lay_tile","entity":"NP","rotation":2,"entity_type":"corporation","id":730,"user":1324,"created_at":1684898124},{"type":"undo","entity":"NP","action_id":727,"entity_type":"corporation","id":731,"user":1324,"created_at":1684898130},{"type":"pass","entity":"NP","entity_type":"corporation","id":732,"created_at":1684898132},{"type":"lay_tile","entity":"NP","entity_type":"corporation","id":733,"created_at":1684898137,"hex":"K10","tile":"8-13","rotation":2},{"type":"lay_tile","entity":"NP","entity_type":"corporation","id":734,"created_at":1684898142,"hex":"K12","tile":"58-0","rotation":5},{"type":"pass","entity":"NP","entity_type":"corporation","id":735,"created_at":1684898144},{"type":"run_routes","entity":"NP","entity_type":"corporation","id":736,"created_at":1684898179,"routes":[{"train":"LP-1","connections":[["H11","G12"]],"hexes":["H11","G12"],"revenue":70,"revenue_str":"H11-G12","nodes":["H11-0","G12-0"]},{"train":"3-4","connections":[["F5","F3","E2"],["F9","F7","G6","F5"]],"hexes":["E2","F5","F9"],"revenue":120,"revenue_str":"E2-F5-F9 (+$30 LB) ","nodes":["F5-0","E2-0","F9-0"]},{"train":"3-5","connections":[["I12","J11","J9"],["H11","H13","I12"]],"hexes":["J9","I12","H11"],"revenue":130,"revenue_str":"J9-I12-H11","nodes":["I12-0","J9-0","H11-0"]}]},{"type":"dividend","entity":"NP","entity_type":"corporation","id":737,"created_at":1684898181,"kind":"payout"},{"type":"pass","entity":"NP","entity_type":"corporation","id":738,"created_at":1684898184},{"type":"pass","entity":"NP","entity_type":"corporation","id":739,"created_at":1684898187},{"type":"acquire_company","entity":"CMPS","entity_type":"corporation","id":740,"created_at":1684898195,"company":"P7"},{"type":"pass","entity":"CMPS","entity_type":"corporation","id":741,"created_at":1684898196},{"type":"lay_tile","entity":"P7","entity_type":"company","id":742,"created_at":1684898202,"hex":"J19","tile":"8-14","rotation":1},{"type":"lay_tile","entity":"CMPS","entity_type":"corporation","id":743,"created_at":1684898206,"auto_actions":[{"type":"hex_token","entity":"CMPS","entity_type":"corporation","created_at":1684898205,"hex":"H11","token_type":"destination"}],"hex":"J17","tile":"8-15","rotation":2},{"type":"place_token","entity":"CMPS","entity_type":"corporation","id":744,"created_at":1684898220,"city":"I12-0-0","slot":2,"tokener":"CMPS"},{"type":"run_routes","entity":"CMPS","entity_type":"corporation","id":745,"created_at":1684898251,"routes":[{"train":"4-1","connections":[["H11","H13","I12"],["I12","I14","J15","I16","J17","J19","I20","H21"],["H21","G22","F23"]],"hexes":["H11","I12","H21","F23"],"revenue":240,"revenue_str":"H11-I12-H21-F23 ($60)","nodes":["H11-0","I12-0","H21-0","F23-0"]},{"train":"2P-0","connections":[["H11","I12"]],"hexes":["H11","I12"],"revenue":90,"revenue_str":"H11-I12","nodes":["H11-0","I12-0"]}]},{"type":"choose","entity":"CMPS","entity_type":"corporation","id":746,"created_at":1684898256,"choice":"payout"},{"type":"dividend","entity":"CMPS","entity_type":"corporation","id":747,"created_at":1684898262,"kind":"half"},{"type":"pass","entity":"CMPS","entity_type":"corporation","id":748,"created_at":1684898264},{"type":"pass","entity":"CMPS","entity_type":"corporation","id":749,"created_at":1684898267},{"type":"pass","entity":"CMPS","entity_type":"corporation","id":750,"created_at":1684898270},{"type":"acquire_company","entity":"CPR","entity_type":"corporation","id":751,"created_at":1684898280,"company":"P13"},{"type":"pass","entity":"CPR","entity_type":"corporation","id":752,"created_at":1684898290},{"type":"lay_tile","entity":"P13","entity_type":"company","id":753,"created_at":1684898299,"hex":"B7","tile":"P2-0","rotation":3},{"type":"lay_tile","entity":"CPR","entity_type":"corporation","id":754,"created_at":1684898308,"auto_actions":[{"type":"hex_token","entity":"CPR","entity_type":"corporation","created_at":1684898307,"hex":"A22","token_type":"destination"}],"hex":"A18","tile":"82-1","rotation":4},{"type":"pass","entity":"CPR","entity_type":"corporation","id":755,"created_at":1684898320},{"type":"buy_train","entity":"CPR","entity_type":"corporation","id":756,"created_at":1684898322,"train":"4-3","price":300,"variant":"4"},{"type":"pass","entity":"CPR","entity_type":"corporation","id":757,"created_at":1684898333},{"type":"acquire_company","entity":"SPS","entity_type":"corporation","id":758,"created_at":1684898373,"company":"P15"},{"type":"acquire_company","entity":"SPS","entity_type":"corporation","id":759,"created_at":1684898379,"company":"P16"},{"type":"pass","entity":"SPS","entity_type":"corporation","id":760,"created_at":1684898382},{"type":"assign","entity":"P15","entity_type":"company","id":761,"created_at":1684898396,"target":"N5","target_type":"hex"},{"type":"lay_tile","entity":"P16","entity_type":"company","id":762,"created_at":1684898417,"hex":"M6","tile":"PNW1-0","rotation":0},{"type":"lay_tile","entity":"P16","entity_type":"company","id":763,"created_at":1684898485,"hex":"M8","tile":"PNW2-0","rotation":0},{"type":"pass","entity":"SPS","entity_type":"corporation","id":764,"created_at":1684898500,"auto_actions":[{"type":"pass","entity":"SPS","entity_type":"corporation","created_at":1684898498}]},{"type":"run_routes","entity":"SPS","entity_type":"corporation","id":765,"created_at":1684898507,"routes":[{"train":"4-0","connections":[["O8","P7","P5"],["P5","O4","N5"]],"hexes":["O8","P5","N5"],"revenue":90,"revenue_str":"O8-P5-N5","nodes":["O8-0","P5-0","N5-0"]},{"train":"3-3","connections":[["N5","N7","O8"],["O8","N9"]],"hexes":["N5","O8","N9"],"revenue":120,"revenue_str":"N5-O8-N9 (+$10 Mill) ","nodes":["N5-0","O8-0","N9-0"]}]},{"type":"dividend","entity":"SPS","entity_type":"corporation","id":766,"created_at":1684898514,"kind":"payout"},{"type":"pass","entity":"SPS","entity_type":"corporation","id":767,"created_at":1684898527,"auto_actions":[{"type":"pass","entity":"SPS","entity_type":"corporation","created_at":1684898525}]},{"type":"buy_shares","entity":"SPS","entity_type":"corporation","id":768,"created_at":1684898531,"shares":["SPS_5"],"percent":10},{"type":"merge","entity":"8","entity_type":"corporation","id":769,"created_at":1684898544,"corporation":"3"},{"type":"choose","entity":"8","entity_type":"corporation","id":770,"created_at":1684898545,"choice":"100"},{"type":"choose","entity":"8","entity_type":"corporation","id":771,"created_at":1684898547,"choice":"6"},{"type":"choose","entity":"8","entity_type":"corporation","id":772,"created_at":1684898550,"choice":"replace"},{"type":"pass","entity":"4","entity_type":"corporation","id":773,"created_at":1684898558},{"type":"lay_tile","entity":"4","entity_type":"corporation","id":774,"created_at":1684898572,"hex":"D21","tile":"8-16","rotation":5},{"type":"run_routes","entity":"4","entity_type":"corporation","id":775,"created_at":1684898580,"routes":[{"train":"3-2","connections":[["D19","C18","B19"],["B19","A20","A18","A16","A14","A12","A10","A8"]],"hexes":["D19","B19","A8"],"revenue":110,"revenue_str":"D19-B19-A8","nodes":["D19-0","B19-0","A8-0"]}]},{"type":"pass","entity":"NP","entity_type":"corporation","id":776,"created_at":1684898586},{"type":"lay_tile","entity":"NP","entity_type":"corporation","id":777,"created_at":1684898602,"hex":"L13","tile":"8-17","rotation":0},{"type":"lay_tile","entity":"NP","entity_type":"corporation","id":778,"created_at":1684898606,"hex":"M12","tile":"9-11","rotation":0},{"type":"place_token","entity":"NP","entity_type":"corporation","id":779,"created_at":1684898613,"city":"207-1-0","slot":1,"tokener":"NP"},{"type":"run_routes","entity":"NP","entity_type":"corporation","id":780,"created_at":1684898632,"routes":[{"train":"LP-1","connections":[["H11","G12"]],"hexes":["H11","G12"],"revenue":70,"revenue_str":"H11-G12","nodes":["H11-0","G12-0"]},{"train":"3-4","connections":[["I12","I14","J15","I16","J17","J19","I20","H21"],["H11","I12"]],"hexes":["H21","I12","H11"],"revenue":180,"revenue_str":"H21-I12-H11 (+$30 LB) ","nodes":["I12-0","H21-0","H11-0"]},{"train":"3-5","connections":[["I12","J11","J9"],["H11","H13","I12"]],"hexes":["J9","I12","H11"],"revenue":130,"revenue_str":"J9-I12-H11","nodes":["I12-0","J9-0","H11-0"]}]},{"type":"dividend","entity":"NP","entity_type":"corporation","id":781,"created_at":1684898636,"kind":"payout"},{"type":"buy_train","entity":"NP","entity_type":"corporation","id":782,"created_at":1684898638,"train":"5-0","price":500,"variant":"5"},{"type":"discard_train","entity":"NP","entity_type":"corporation","id":783,"created_at":1684898640,"train":"3-4"},{"type":"pass","entity":"NP","entity_type":"corporation","id":784,"created_at":1684898650},{"type":"pass","entity":"CMPS","entity_type":"corporation","id":785,"created_at":1684898657},{"type":"lay_tile","entity":"CMPS","entity_type":"corporation","id":786,"created_at":1684898661,"hex":"H11","tile":"X22-0","rotation":0},{"type":"pass","entity":"CMPS","entity_type":"corporation","id":787,"created_at":1684898671},{"type":"run_routes","entity":"CMPS","entity_type":"corporation","id":788,"created_at":1684898677,"routes":[{"train":"4-1","connections":[["H11","H13","I12"],["I12","I14","J15","I16","J17","J19","I20","H21"],["H21","G22","F23"]],"hexes":["H11","I12","H21","F23"],"revenue":300,"revenue_str":"H11-I12-H21-F23 ($80)","nodes":["H11-0","I12-0","H21-0","F23-0"]},{"train":"2P-0","connections":[["H11","I12"]],"hexes":["H11","I12"],"revenue":120,"revenue_str":"H11-I12","nodes":["H11-0","I12-0"]}]},{"type":"choose","entity":"CMPS","entity_type":"corporation","id":789,"created_at":1684898679,"choice":"withhold"},{"type":"dividend","entity":"CMPS","entity_type":"corporation","id":790,"created_at":1684898682,"kind":"payout"},{"type":"buy_train","entity":"CMPS","entity_type":"corporation","id":791,"created_at":1684898684,"train":"5-1","price":500,"variant":"5"},{"type":"pass","entity":"CMPS","entity_type":"corporation","id":792,"created_at":1684898686},{"type":"pass","entity":"SPS","entity_type":"corporation","id":793,"created_at":1684898710},{"type":"lay_tile","entity":"SPS","entity_type":"corporation","id":794,"created_at":1684898723,"hex":"L7","tile":"9-12","rotation":0},{"type":"lay_tile","entity":"SPS","entity_type":"corporation","id":795,"created_at":1684898727,"auto_actions":[{"type":"hex_token","entity":"SPS","entity_type":"corporation","created_at":1684898725,"hex":"F23","token_type":"destination"}],"hex":"K8","tile":"9-13","rotation":0},{"type":"place_token","entity":"SPS","entity_type":"corporation","id":796,"created_at":1684898784,"city":"6-4-0","slot":0,"tokener":"SPS"},{"type":"run_routes","entity":"SPS","entity_type":"corporation","id":797,"created_at":1684898797,"routes":[{"train":"4-0","connections":[["F23","G22","H21"],["H21","I20","J19","J17","I16","J15","I14","I12"],["I12","H13","H11"]],"hexes":["F23","H21","I12","H11"],"revenue":220,"revenue_str":"F23-H21-I12-H11","nodes":["F23-0","H21-0","I12-0","H11-0"]},{"train":"3-3","connections":[["N5","N7","O8"],["O8","N9"]],"hexes":["N5","O8","N9"],"revenue":140,"revenue_str":"N5-O8-N9 (+$30 Mill) ","nodes":["N5-0","O8-0","N9-0"]}]},{"type":"dividend","entity":"SPS","entity_type":"corporation","id":798,"created_at":1684898827,"kind":"payout"},{"type":"merge","entity":"SPS","entity_type":"corporation","id":799,"created_at":1684898844,"corporation":"4"},{"type":"choose","entity":"SPS","entity_type":"corporation","id":800,"created_at":1684898853,"choice":"two_shares"},{"type":"choose","entity":"SPS","entity_type":"corporation","id":801,"created_at":1684898858,"choice":"replace"},{"type":"discard_train","entity":"SPS","entity_type":"corporation","id":802,"created_at":1684898876,"train":"3-2"},{"type":"sell_shares","entity":"SPS","shares":["SPS_5"],"percent":10,"entity_type":"corporation","share_price":135,"id":803,"user":2089,"created_at":1684898885},{"type":"undo","entity":"SWW","entity_type":"corporation","id":804,"user":2089,"created_at":1684898892},{"type":"pass","entity":"SPS","entity_type":"corporation","id":805,"user":2089,"created_at":1684898894},{"type":"pass","entity":"SWW","entity_type":"corporation","id":806,"user":605,"created_at":1684898895},{"type":"pass","entity":"SWW","entity_type":"corporation","auto_actions":[{"type":"pass","entity":"SWW","created_at":1684898898,"entity_type":"corporation"}],"id":807,"user":605,"created_at":1684898898},{"type":"pass","entity":"SWW","entity_type":"corporation","id":808,"user":605,"created_at":1684898910},{"type":"undo","entity":"SWW","action_id":804,"entity_type":"corporation","id":809,"user":605,"created_at":1684898919},{"type":"pass","entity":"SPS","entity_type":"corporation","id":810,"created_at":1684898930},{"type":"pass","entity":"SWW","entity_type":"corporation","id":811,"created_at":1684898942},{"type":"lay_tile","entity":"SWW","entity_type":"corporation","id":812,"created_at":1684898949,"auto_actions":[{"type":"pass","entity":"SWW","entity_type":"corporation","created_at":1684898948}],"hex":"J19","tile":"81-0","rotation":1},{"type":"pass","entity":"SWW","entity_type":"corporation","id":813,"created_at":1684898952},{"type":"run_routes","entity":"SWW","entity_type":"corporation","id":814,"created_at":1684898958,"routes":[{"train":"LP-0","connections":[["H11","G12"]],"hexes":["H11","G12"],"revenue":90,"revenue_str":"H11-G12","nodes":["H11-0","G12-0"]},{"train":"3-1","connections":[["H11","H13","I12"],["I12","J11","J9"]],"hexes":["H11","I12","J9"],"revenue":160,"revenue_str":"H11-I12-J9","nodes":["H11-0","I12-0","J9-0"]},{"train":"3-6","connections":[["H11","I12"],["I12","I14","J15","I16","J17","J19","I20","H21"]],"hexes":["H11","I12","H21"],"revenue":180,"revenue_str":"H11-I12-H21","nodes":["H11-0","I12-0","H21-0"]}]},{"type":"choose","choice":"payout","entity":"SWW","entity_type":"corporation","id":815,"user":605,"created_at":1684898964},{"type":"undo","entity":"SWW","entity_type":"corporation","id":816,"user":605,"created_at":1684898969},{"type":"dividend","entity":"SWW","entity_type":"corporation","id":817,"created_at":1684898972,"kind":"payout"},{"type":"acquire_company","entity":"CPR","entity_type":"corporation","id":818,"created_at":1684898986,"company":"P1"},{"type":"pass","entity":"CPR","entity_type":"corporation","id":819,"created_at":1684898992},{"type":"lay_tile","entity":"CPR","entity_type":"corporation","id":820,"created_at":1684899000,"hex":"E22","tile":"9-14","rotation":2},{"type":"pass","entity":"CPR","entity_type":"corporation","id":821,"created_at":1684899001},{"type":"run_routes","entity":"CPR","entity_type":"corporation","id":822,"created_at":1684899029,"routes":[{"train":"5P-0","connections":[["A22","B23","C22"],["C22","C20","D19"],["D19","E20"],["E20","F21","F23"]],"hexes":["A22","C22","D19","E20","F23"],"revenue":140,"revenue_str":"A22-C22-D19-E20-F23","nodes":["A22-0","C22-0","D19-0","E20-0","F23-0"]},{"train":"4-3","connections":[["A22","A20","B19"],["B19","A18","A16","A14","A12","A10","A8"],["A8","B7"]],"hexes":["A22","B19","A8","B7"],"revenue":230,"revenue_str":"A22-B19-A8-B7 ($50)","nodes":["A22-0","B19-0","A8-0","B7-0"]}]},{"type":"dividend","entity":"CPR","entity_type":"corporation","id":823,"created_at":1684899033,"kind":"payout"},{"type":"pass","entity":"CPR","entity_type":"corporation","id":824,"created_at":1684899039},{"type":"buy_shares","entity":1324,"entity_type":"player","id":825,"created_at":1684899048,"shares":["CMPS_8"],"percent":10,"share_price":false},{"type":"par","entity":2089,"entity_type":"player","id":826,"created_at":1684899147,"corporation":"ORNC","share_price":"100,0,9"},{"type":"bid","price":0,"entity":13048,"company":"P18","entity_type":"player","id":827,"user":13048,"created_at":1684899157},{"type":"bid","price":0,"entity":13048,"company":"P5","entity_type":"player","id":828,"user":13048,"created_at":1684899159},{"type":"undo","entity":13048,"action_id":826,"entity_type":"player","id":829,"user":13048,"created_at":1684899220},{"type":"buy_shares","entity":13048,"entity_type":"player","id":830,"created_at":1684899226,"shares":["SPS_5"],"percent":10,"share_price":false},{"type":"buy_shares","entity":605,"entity_type":"player","id":831,"created_at":1684899237,"shares":["CPR_4"],"percent":10,"share_price":false},{"type":"buy_shares","entity":1324,"entity_type":"player","id":832,"created_at":1684899243,"shares":["SWW_5"],"percent":10,"share_price":false},{"type":"buy_shares","entity":2089,"entity_type":"player","id":833,"created_at":1684899285,"shares":["CPR_5"],"percent":10,"share_price":false},{"type":"bid","entity":13048,"entity_type":"player","id":834,"created_at":1684899374,"company":"P18","price":0},{"type":"bid","entity":13048,"entity_type":"player","id":835,"created_at":1684899378,"company":"P5","price":0},{"type":"pass","entity":13048,"entity_type":"player","id":836,"created_at":1684899401},{"type":"buy_shares","entity":605,"entity_type":"player","id":837,"created_at":1684899417,"shares":["CPR_6"],"percent":10,"share_price":false},{"type":"buy_shares","entity":1324,"entity_type":"player","id":838,"created_at":1684899427,"shares":["SWW_6"],"percent":10,"share_price":false},{"type":"buy_shares","entity":2089,"entity_type":"player","id":839,"created_at":1684899443,"shares":["ORNC_1"],"percent":10,"share_price":false},{"type":"buy_shares","entity":13048,"entity_type":"player","id":840,"created_at":1684899462,"shares":["SWW_7"],"percent":10,"share_price":false},{"type":"buy_shares","entity":605,"entity_type":"player","id":841,"created_at":1684899474,"shares":["CPR_7"],"percent":10,"share_price":false},{"type":"bid","entity":1324,"entity_type":"player","id":842,"created_at":1684899484,"company":"P6","price":0},{"type":"bid","entity":1324,"entity_type":"player","id":843,"created_at":1684899485,"company":"P18","price":5},{"type":"pass","entity":1324,"entity_type":"player","id":844,"created_at":1684899486},{"type":"sell_shares","entity":2089,"entity_type":"player","id":845,"created_at":1684899592,"shares":["NP_5"],"percent":10},{"type":"buy_shares","entity":2089,"entity_type":"player","id":846,"created_at":1684899619,"shares":["SWW_8"],"percent":10,"share_price":false},{"type":"buy_shares","entity":13048,"entity_type":"player","id":847,"created_at":1684899628,"shares":["NP_5"],"percent":10,"share_price":false},{"type":"buy_shares","entity":605,"entity_type":"player","id":848,"created_at":1684899655,"shares":["CPR_8"],"percent":10,"share_price":false},{"type":"pass","entity":1324,"entity_type":"player","id":849,"created_at":1684899670},{"type":"sell_shares","entity":2089,"entity_type":"player","id":850,"created_at":1684899681,"shares":["SWW_8"],"percent":10},{"type":"buy_shares","entity":2089,"entity_type":"player","id":851,"created_at":1684899693,"shares":["ORNC_2"],"percent":10,"share_price":false},{"type":"bid","entity":13048,"entity_type":"player","id":852,"created_at":1684899708,"company":"P18","price":10},{"type":"pass","entity":13048,"entity_type":"player","id":853,"created_at":1684899710},{"type":"bid","entity":605,"entity_type":"player","id":854,"created_at":1684899738,"company":"P6","price":20},{"type":"pass","entity":605,"entity_type":"player","id":855,"created_at":1684899742},{"type":"bid","entity":1324,"entity_type":"player","id":856,"created_at":1684899763,"company":"P5","price":5},{"type":"pass","entity":1324,"entity_type":"player","id":857,"created_at":1684899765},{"type":"sell_shares","entity":2089,"entity_type":"player","id":858,"created_at":1684899775,"shares":["CMPS_7"],"percent":10},{"type":"buy_shares","entity":2089,"entity_type":"player","id":859,"created_at":1684899778,"shares":["ORNC_3"],"percent":10,"share_price":false},{"type":"bid","entity":13048,"entity_type":"player","id":860,"created_at":1684899799,"company":"P5","price":10},{"type":"pass","entity":13048,"entity_type":"player","id":861,"created_at":1684899821},{"type":"pass","entity":605,"entity_type":"player","id":862,"created_at":1684899833},{"type":"bid","entity":1324,"entity_type":"player","id":863,"created_at":1684899839,"company":"P5","price":15},{"type":"pass","entity":1324,"entity_type":"player","id":864,"created_at":1684899841},{"type":"pass","entity":2089,"entity_type":"player","id":865,"created_at":1684899875},{"type":"bid","entity":13048,"entity_type":"player","id":866,"created_at":1684899902,"company":"P5","price":20},{"type":"pass","entity":13048,"entity_type":"player","id":867,"created_at":1684899944},{"type":"pass","entity":605,"entity_type":"player","id":868,"created_at":1684899957},{"type":"bid","entity":1324,"entity_type":"player","id":869,"created_at":1684899976,"company":"P5","price":60},{"type":"bid","entity":1324,"entity_type":"player","id":870,"created_at":1684899987,"company":"P18","price":60},{"type":"pass","entity":1324,"entity_type":"player","id":871,"created_at":1684899989},{"type":"pass","entity":2089,"entity_type":"player","id":872,"created_at":1684899999},{"type":"bid","entity":13048,"entity_type":"player","id":873,"created_at":1684900023,"company":"P6","price":55},{"type":"pass","entity":13048,"entity_type":"player","id":874,"created_at":1684900053},{"type":"bid","entity":605,"entity_type":"player","id":875,"created_at":1684900060,"company":"P6","price":60},{"type":"pass","entity":605,"entity_type":"player","id":876,"created_at":1684900064},{"type":"pass","entity":1324,"entity_type":"player","id":877,"created_at":1684900069},{"type":"program_share_pass","entity":2089,"entity_type":"player","id":878,"created_at":1684900077,"auto_actions":[{"type":"pass","entity":2089,"entity_type":"player","created_at":1684900075}],"unconditional":false,"indefinite":false},{"type":"program_share_pass","entity":13048,"entity_type":"player","id":879,"created_at":1684900095,"auto_actions":[{"type":"pass","entity":13048,"entity_type":"player","created_at":1684900094}],"unconditional":false,"indefinite":false},{"type":"pass","entity":605,"entity_type":"player","id":880,"created_at":1684900113},{"type":"acquire_company","entity":"NP","entity_type":"corporation","id":881,"created_at":1684900119,"company":"P5"},{"type":"acquire_company","entity":"NP","entity_type":"corporation","id":882,"created_at":1684900121,"company":"P18"},{"type":"pass","entity":"NP","entity_type":"corporation","id":883,"created_at":1684900122},{"type":"lay_tile","entity":"P18","entity_type":"company","id":884,"created_at":1684900133,"hex":"J11","tile":"PNW3-0","rotation":0},{"type":"lay_tile","entity":"NP","entity_type":"corporation","id":885,"created_at":1684900141,"hex":"J9","tile":"X5-0","rotation":3},{"type":"pass","entity":"NP","entity_type":"corporation","id":886,"created_at":1684900173},{"type":"choose","entity":"NP","entity_type":"corporation","id":887,"created_at":1684900177,"choice":"0"},{"type":"run_routes","entity":"NP","entity_type":"corporation","id":888,"created_at":1684900237,"routes":[{"train":"LP-1","connections":[["H11","G12"]],"hexes":["H11","G12"],"revenue":90,"revenue_str":"H11-G12","nodes":["H11-0","G12-0"]},{"train":"5-0","connections":[["I12","H11"],["J11","I12"],["J9","J11"],["J7","J9"],["I8","J7"],["G8","H7","I8"],["F9","G8"],["F5","G6","F7","F9"],["E2","F3","F5"]],"hexes":["H11","I12","J11","J9","J7","I8","G8","F9","F5","E2"],"revenue":410,"revenue_str":"H11-I12-J11-J9-J7-I8-G8-F9-F5-E2 ($40) (+$40 LB) ","nodes":["I12-0","H11-0","J11-0","J9-0","J7-0","I8-0","G8-0","F9-0","F5-0","E2-0"]}]},{"type":"choose","choice":"withhold","entity":"NP","entity_type":"corporation","id":889,"user":1324,"created_at":1684900247},{"type":"undo","entity":"NP","entity_type":"corporation","id":890,"user":1324,"created_at":1684900253},{"type":"choose","entity":"NP","entity_type":"corporation","id":891,"created_at":1684900253,"choice":"half"},{"type":"dividend","entity":"NP","entity_type":"corporation","id":892,"created_at":1684900258,"kind":"payout"},{"type":"pass","entity":"NP","entity_type":"corporation","id":893,"created_at":1684900274},{"type":"pass","entity":"NP","entity_type":"corporation","id":894,"created_at":1684900278},{"type":"pass","entity":"SPS","entity_type":"corporation","id":895,"created_at":1684900299},{"type":"lay_tile","entity":"SPS","entity_type":"corporation","id":896,"created_at":1684900314,"hex":"O8","tile":"X25-0","rotation":0},{"type":"run_routes","entity":"SPS","entity_type":"corporation","id":897,"created_at":1684900325,"routes":[{"train":"4-0","connections":[["F23","G22","H21"],["H21","I20","J19","J17","I16","J15","I14","I12"],["I12","H13","H11"]],"hexes":["F23","H21","I12","H11"],"revenue":220,"revenue_str":"F23-H21-I12-H11","nodes":["F23-0","H21-0","I12-0","H11-0"]}]},{"type":"dividend","entity":"SPS","entity_type":"corporation","id":898,"created_at":1684900339,"kind":"half"},{"type":"buy_train","entity":"SPS","entity_type":"corporation","id":899,"created_at":1684900347,"train":"6-1","price":600,"variant":"6"},{"type":"acquire_company","entity":"CMPS","entity_type":"corporation","id":900,"created_at":1684900369,"company":"P6"},{"type":"pass","entity":"CMPS","entity_type":"corporation","id":901,"created_at":1684900370},{"hex":"F13","tile":"14-0","type":"lay_tile","entity":"CMPS","rotation":2,"entity_type":"corporation","id":902,"user":605,"created_at":1684900419},{"type":"pass","entity":"CMPS","entity_type":"corporation","id":903,"user":605,"created_at":1684900443},{"type":"choose","choice":"2","entity":"CMPS","entity_type":"corporation","id":904,"user":605,"created_at":1684900447},{"type":"undo","entity":"CMPS","action_id":902,"entity_type":"corporation","id":905,"user":605,"created_at":1684900533},{"city":"X5-0-0","slot":2,"type":"place_token","entity":"CMPS","tokener":"CMPS","entity_type":"corporation","id":906,"user":605,"created_at":1684900537},{"type":"choose","choice":"2","entity":"CMPS","entity_type":"corporation","id":907,"user":605,"created_at":1684900546},{"type":"undo","entity":"CMPS","action_id":901,"entity_type":"corporation","id":908,"user":605,"created_at":1684900558},{"type":"lay_tile","entity":"CMPS","entity_type":"corporation","id":909,"created_at":1684900579,"hex":"K20","tile":"9-15","rotation":2},{"type":"lay_tile","entity":"CMPS","entity_type":"corporation","id":910,"created_at":1684900582,"hex":"L21","tile":"9-16","rotation":2},{"type":"place_token","entity":"CMPS","entity_type":"corporation","id":911,"created_at":1684900587,"city":"X5-0-0","slot":2,"tokener":"CMPS"},{"type":"choose","entity":"CMPS","entity_type":"corporation","id":912,"created_at":1684900597,"choice":"2"},{"type":"run_routes","entity":"CMPS","entity_type":"corporation","id":913,"created_at":1684900646,"routes":[{"train":"4-1","connections":[["H11","H13","I12"],["I12","I14","J15","I16","J17","J19","I20","H21"],["H21","G22","F23"]],"hexes":["H11","I12","H21","F23"],"revenue":300,"revenue_str":"H11-I12-H21-F23 ($80)","nodes":["H11-0","I12-0","H21-0","F23-0"]},{"train":"2P-0","connections":[["J9","K8","L7","M6","N5"]],"hexes":["N5","J9"],"revenue":100,"revenue_str":"N5-J9 (+$30 Mill) (-$10 Portage) ","nodes":["J9-0","N5-0"]},{"train":"5-1","connections":[["G12","F13"],["H11","G12"],["I12","H11"],["J11","I12"],["J9","J11"],["J7","J9"],["I8","J7"],["G8","H7","I8"],["F9","G8"],["F5","G6","F7","F9"],["E2","F3","F5"]],"hexes":["F13","G12","H11","I12","J11","J9","J7","I8","G8","F9","F5","E2"],"revenue":360,"revenue_str":"F13-G12-H11-I12-J11-J9-J7-I8-G8-F9-F5-E2","nodes":["G12-0","F13-0","H11-0","I12-0","J11-0","J9-0","J7-0","I8-0","G8-0","F9-0","F5-0","E2-0"]}]},{"type":"dividend","entity":"CMPS","entity_type":"corporation","id":914,"created_at":1684900650,"kind":"half"},{"type":"pass","entity":"CMPS","entity_type":"corporation","id":915,"created_at":1684900664},{"type":"buy_shares","entity":"CMPS","entity_type":"corporation","id":916,"created_at":1684900670,"shares":["CMPS_7"],"percent":10},{"type":"acquire_company","entity":"CPR","entity_type":"corporation","id":917,"created_at":1684900683,"company":"P11"},{"type":"pass","entity":"CPR","entity_type":"corporation","id":918,"created_at":1684900685},{"type":"lay_tile","entity":"CPR","entity_type":"corporation","id":919,"created_at":1684900711,"hex":"B21","tile":"82-2","rotation":3},{"type":"pass","entity":"CPR","entity_type":"corporation","id":920,"created_at":1684900715},{"type":"place_token","entity":"CPR","entity_type":"corporation","id":921,"created_at":1684900716,"city":"F23-0-0","slot":3,"tokener":"CPR"},{"type":"run_routes","entity":"CPR","entity_type":"corporation","id":922,"created_at":1684900738,"routes":[{"train":"5P-0","connections":[["A22","B23","B21","C20","D19"],["D19","C18","B19"],["B19","A20","A18","A16","A14","A12","A10","A8"],["A8","B7"]],"hexes":["A22","D19","B19","A8","B7"],"revenue":260,"revenue_str":"A22-D19-B19-A8-B7 ($50)","nodes":["A22-0","D19-0","B19-0","A8-0","B7-0"]},{"train":"4-3","connections":[["F23","G22","H21"],["H21","I20","J19","J17","I16","J15","I14","I12"],["I12","H13","H11"]],"hexes":["F23","H21","I12","H11"],"revenue":220,"revenue_str":"F23-H21-I12-H11","nodes":["F23-0","H21-0","I12-0","H11-0"]}]},{"type":"dividend","entity":"CPR","entity_type":"corporation","id":923,"created_at":1684900742,"kind":"payout"},{"type":"merge","entity":"CPR","entity_type":"corporation","id":924,"created_at":1684900777,"corporation":"A"},{"type":"choose","entity":"CPR","entity_type":"corporation","id":925,"created_at":1684900789,"choice":"money"},{"type":"choose","entity":"CPR","entity_type":"corporation","id":926,"created_at":1684900800,"choice":"exchange"},{"type":"pass","entity":"SWW","entity_type":"corporation","id":927,"created_at":1684900811},{"type":"lay_tile","entity":"SWW","entity_type":"corporation","id":928,"created_at":1684900818,"hex":"M22","tile":"9-17","rotation":2},{"type":"lay_tile","entity":"SWW","entity_type":"corporation","id":929,"created_at":1684900825,"auto_actions":[{"type":"hex_token","entity":"SWW","entity_type":"corporation","created_at":1684900824,"hex":"O22","token_type":"destination"}],"hex":"J13","tile":"3-0","rotation":1},{"type":"pass","entity":"SWW","entity_type":"corporation","id":930,"created_at":1684900832},{"type":"run_routes","entity":"SWW","entity_type":"corporation","id":931,"created_at":1684900839,"routes":[{"train":"LP-0","connections":[["H11","G12"]],"hexes":["H11","G12"],"revenue":90,"revenue_str":"H11-G12","nodes":["H11-0","G12-0"]}]},{"type":"dividend","entity":"SWW","entity_type":"corporation","id":932,"created_at":1684900841,"kind":"half"},{"type":"buy_train","entity":"SWW","entity_type":"corporation","id":933,"created_at":1684900842,"train":"6-2","price":600,"variant":"6"},{"type":"buy_train","entity":"SWW","entity_type":"corporation","id":934,"created_at":1684900878,"train":"4-1","price":326},{"type":"merge","entity":"SWW","entity_type":"corporation","id":935,"created_at":1684900884,"corporation":"10"},{"type":"choose","entity":"SWW","entity_type":"corporation","id":936,"created_at":1684900886,"choice":"money"},{"type":"choose","entity":"SWW","entity_type":"corporation","id":937,"created_at":1684900893,"choice":"replace"},{"type":"pass","entity":"ORNC","entity_type":"corporation","id":938,"created_at":1684900927},{"type":"lay_tile","entity":"ORNC","entity_type":"corporation","id":939,"created_at":1684900984,"auto_actions":[{"type":"pass","entity":"ORNC","entity_type":"corporation","created_at":1684900983}],"hex":"N5","tile":"611-0","rotation":2},{"type":"pass","entity":"ORNC","entity_type":"corporation","id":940,"created_at":1684901006},{"type":"buy_train","entity":"ORNC","entity_type":"corporation","id":941,"created_at":1684901035,"train":"7-0","price":750,"variant":"7"},{"type":"pass","entity":"NP","entity_type":"corporation","id":942,"created_at":1684901043},{"type":"lay_tile","entity":"NP","entity_type":"corporation","id":943,"created_at":1684901048,"hex":"H11","tile":"X23-0","rotation":0},{"type":"pass","entity":"NP","entity_type":"corporation","id":944,"created_at":1684901059},{"type":"choose","entity":"NP","entity_type":"corporation","id":945,"created_at":1684901061,"choice":"0"},{"type":"run_routes","entity":"NP","entity_type":"corporation","id":946,"created_at":1684901068,"routes":[{"train":"LP-1","connections":[["H11","G12"]],"hexes":["H11","G12"],"revenue":110,"revenue_str":"H11-G12","nodes":["H11-0","G12-0"]},{"train":"5-0","connections":[["I12","H11"],["J11","I12"],["J9","J11"],["J7","J9"],["I8","J7"],["G8","H7","I8"],["F9","G8"],["F5","G6","F7","F9"],["E2","F3","F5"]],"hexes":["H11","I12","J11","J9","J7","I8","G8","F9","F5","E2"],"revenue":450,"revenue_str":"H11-I12-J11-J9-J7-I8-G8-F9-F5-E2 ($50) (+$40 LB) ","nodes":["I12-0","H11-0","J11-0","J9-0","J7-0","I8-0","G8-0","F9-0","F5-0","E2-0"]}]},{"type":"choose","choice":"withhold","entity":"NP","entity_type":"corporation","id":947,"user":1324,"created_at":1684901086},{"kind":"half","type":"dividend","entity":"NP","entity_type":"corporation","id":948,"user":1324,"created_at":1684901090},{"type":"undo","entity":"NP","entity_type":"corporation","id":949,"user":1324,"created_at":1684901121},{"type":"undo","entity":"NP","entity_type":"corporation","id":950,"user":1324,"created_at":1684901125},{"type":"dividend","entity":"NP","entity_type":"corporation","id":951,"created_at":1684901135,"kind":"payout"},{"type":"pass","entity":"NP","entity_type":"corporation","id":952,"created_at":1684901159,"auto_actions":[{"type":"pass","entity":"NP","entity_type":"corporation","created_at":1684901157}]},{"type":"pass","entity":"CPR","entity_type":"corporation","id":953,"created_at":1684901167},{"type":"lay_tile","entity":"CPR","entity_type":"corporation","id":954,"created_at":1684901172,"hex":"F13","tile":"14-0","rotation":2},{"type":"pass","entity":"CPR","entity_type":"corporation","id":955,"created_at":1684901175},{"type":"pass","entity":"CPR","entity_type":"corporation","id":956,"created_at":1684901185},{"type":"run_routes","entity":"CPR","entity_type":"corporation","id":957,"created_at":1684901196,"routes":[{"train":"5P-0","connections":[["A22","B23","B21","C20","D19"],["D19","C18","B19"],["B19","A20","A18","A16","A14","A12","A10","A8"],["A8","B7"]],"hexes":["A22","D19","B19","A8","B7"],"revenue":290,"revenue_str":"A22-D19-B19-A8-B7 ($60)","nodes":["A22-0","D19-0","B19-0","A8-0","B7-0"]}]},{"type":"dividend","entity":"CPR","entity_type":"corporation","id":958,"created_at":1684901215,"kind":"withhold"},{"type":"buy_train","entity":"CPR","entity_type":"corporation","id":959,"created_at":1684901217,"train":"7-1","price":750,"variant":"7"},{"type":"acquire_company","entity":"SPS","entity_type":"corporation","id":960,"created_at":1684901262,"company":"P19"},{"type":"acquire_company","entity":"SPS","entity_type":"corporation","id":961,"created_at":1684901265,"company":"P21"},{"type":"acquire_company","entity":"SPS","entity_type":"corporation","id":962,"created_at":1684901269,"company":"P17"},{"type":"lay_tile","entity":"SPS","entity_type":"corporation","id":963,"created_at":1684901316,"hex":"E14","tile":"8-18","rotation":4},{"type":"lay_tile","entity":"P19","entity_type":"company","id":964,"created_at":1684901331,"hex":"E16","tile":"PNW4-0","rotation":1},{"type":"run_routes","entity":"SPS","entity_type":"corporation","id":965,"created_at":1684901365,"routes":[{"train":"6-1","connections":[["I12","J11"],["J11","J9"],["J9","K8","L7","M6","N5"],["N5","N7","O8"],["O8","N9"]],"hexes":["I12","J11","J9","N5","O8","N9"],"revenue":300,"revenue_str":"I12-J11-J9-N5-O8-N9 (+$30 Mill) ","nodes":["I12-0","J11-0","J9-0","N5-0","O8-0","N9-0"]}]},{"type":"dividend","entity":"SPS","entity_type":"corporation","id":966,"created_at":1684901369,"kind":"payout"},{"type":"pass","entity":"SPS","entity_type":"corporation","id":967,"created_at":1684901374},{"type":"pass","entity":"SPS","entity_type":"corporation","id":968,"created_at":1684901378},{"type":"lay_tile","entity":"CMPS","entity_type":"corporation","id":969,"created_at":1684901401,"hex":"H13","tile":"80-0","rotation":5},{"type":"choose","entity":"CMPS","entity_type":"corporation","id":970,"created_at":1684901408,"choice":"1"},{"type":"run_routes","entity":"CMPS","entity_type":"corporation","id":971,"created_at":1684901468,"routes":[{"train":"2P-0","connections":[["H11","I12"]],"hexes":["I12","H11"],"revenue":150,"revenue_str":"I12-H11","nodes":["H11-0","I12-0"]},{"train":"5-1","connections":[["G12","F13"],["H11","G12"],["I12","H13","H11"],["H21","I20","J19","J17","I16","J15","I14","I12"],["F23","G22","H21"]],"hexes":["F13","G12","H11","I12","H21","F23"],"revenue":400,"revenue_str":"F13-G12-H11-I12-H21-F23 ($100)","nodes":["G12-0","F13-0","H11-0","I12-0","H21-0","F23-0"]}]},{"type":"choose","entity":"CMPS","entity_type":"corporation","id":972,"created_at":1684901480,"choice":"payout"},{"type":"dividend","entity":"CMPS","entity_type":"corporation","id":973,"created_at":1684901484,"kind":"withhold"},{"type":"buy_train","entity":"CMPS","entity_type":"corporation","id":974,"created_at":1684901485,"train":"7-2","price":1000,"variant":"E"},{"type":"pass","entity":"CMPS","entity_type":"corporation","id":975,"created_at":1684901488},{"type":"lay_tile","entity":"SWW","entity_type":"corporation","id":976,"created_at":1684901496,"hex":"I14","tile":"83-1","rotation":2},{"type":"run_routes","entity":"SWW","entity_type":"corporation","id":977,"created_at":1684901521,"routes":[{"train":"LP-0","connections":[["H11","G12"]],"hexes":["H11","G12"],"revenue":110,"revenue_str":"H11-G12","nodes":["H11-0","G12-0"]},{"train":"6-2","connections":[["J9","K8","L7","M6","N5"],["J11","J9"],["I12","J11"],["H11","I12"],["O22","N23","M22","L21","K20","J19","J17","I16","J15","I14","H13","H11"]],"hexes":["N5","J9","J11","I12","H11","O22"],"revenue":410,"revenue_str":"N5-J9-J11-I12-H11-O22 ($50) (+$30 Mill) (-$10 Portage) ","nodes":["J9-0","N5-0","J11-0","I12-0","H11-0","O22-0"]}]},{"type":"dividend","entity":"SWW","entity_type":"corporation","id":978,"created_at":1684901556,"kind":"half"},{"type":"pass","entity":"SWW","entity_type":"corporation","id":979,"created_at":1684901558,"auto_actions":[{"type":"pass","entity":"SWW","entity_type":"corporation","created_at":1684901558}]},{"type":"buy_shares","entity":"SWW","entity_type":"corporation","id":980,"created_at":1684901559,"shares":["SWW_8"],"percent":10},{"type":"lay_tile","entity":"ORNC","entity_type":"corporation","id":981,"created_at":1684901656,"auto_actions":[{"type":"pass","entity":"ORNC","entity_type":"corporation","created_at":1684901654}],"hex":"J13","tile":"141-0","rotation":1},{"type":"run_routes","entity":"ORNC","entity_type":"corporation","id":982,"created_at":1684901663,"routes":[{"train":"7-0","connections":[["I12","J11"],["J11","J9"],["J9","K8","L7","M6","N5"],["N5","O4","P5"],["P5","P7","O8"],["O8","N9"]],"hexes":["I12","J11","J9","N5","P5","O8","N9"],"revenue":310,"revenue_str":"I12-J11-J9-N5-P5-O8-N9 (+$30 Mill) (-$10 Portage) ","nodes":["I12-0","J11-0","J9-0","N5-0","P5-0","O8-0","N9-0"]}]},{"type":"dividend","entity":"ORNC","entity_type":"corporation","id":983,"created_at":1684901665,"kind":"payout"},{"type":"pass","entity":"ORNC","entity_type":"corporation","id":984,"created_at":1684901668},{"type":"pass","entity":"ORNC","entity_type":"corporation","id":986,"created_at":1684901685},{"type":"buy_shares","entity":2089,"entity_type":"player","id":987,"created_at":1684901706,"shares":["CMPS_7"],"percent":10,"share_price":false},{"type":"bid","entity":605,"entity_type":"player","id":989,"created_at":1684901847,"company":"M13","price":1000},{"type":"pass","entity":605,"entity_type":"player","id":990,"created_at":1684901852},{"type":"par","entity":13048,"entity_type":"player","id":991,"created_at":1684901889,"corporation":"GNR","share_price":"100,0,9"},{"type":"buy_shares","entity":1324,"entity_type":"player","id":992,"created_at":1684901901,"shares":["SWW_8"],"percent":10,"share_price":false},{"type":"buy_shares","entity":2089,"entity_type":"player","id":993,"created_at":1684901922,"shares":["ORNC_4"],"percent":10,"share_price":false},{"type":"pass","entity":605,"entity_type":"player","id":994,"created_at":1684901929},{"type":"buy_shares","entity":13048,"entity_type":"player","id":995,"created_at":1684901944,"shares":["GNR_1"],"percent":10,"share_price":false},{"type":"buy_shares","entity":1324,"entity_type":"player","id":996,"created_at":1684901949,"shares":["ORNC_5"],"percent":10,"share_price":false},{"type":"pass","entity":2089,"entity_type":"player","id":997,"created_at":1684901955},{"type":"pass","entity":605,"entity_type":"player","id":999,"created_at":1684902082},{"type":"program_share_pass","entity":605,"entity_type":"player","id":1000,"created_at":1684902087,"unconditional":false,"indefinite":false},{"type":"buy_shares","entity":13048,"entity_type":"player","id":1001,"created_at":1684902088,"shares":["GNR_2"],"percent":10,"share_price":false},{"type":"buy_shares","entity":1324,"entity_type":"player","id":1002,"created_at":1684902094,"shares":["ORNC_6"],"percent":10,"share_price":false},{"type":"pass","entity":2089,"entity_type":"player","id":1003,"created_at":1684902121,"auto_actions":[{"type":"pass","entity":605,"entity_type":"player","created_at":1684902120}]},{"type":"buy_shares","entity":13048,"entity_type":"player","id":1004,"created_at":1684902151,"shares":["GNR_3"],"percent":10,"share_price":false},{"type":"buy_shares","entity":1324,"entity_type":"player","id":1006,"created_at":1684902158,"shares":["ORNC_7"],"percent":10,"share_price":false},{"type":"buy_shares","entity":2089,"entity_type":"player","id":1007,"created_at":1684902166,"auto_actions":[{"type":"pass","entity":605,"entity_type":"player","created_at":1684902164}],"shares":["GNR_4"],"percent":10,"share_price":false},{"type":"pass","entity":13048,"entity_type":"player","id":1008,"created_at":1684902183},{"type":"buy_shares","entity":1324,"entity_type":"player","id":1009,"created_at":1684902189,"shares":["ORNC_8"],"percent":10,"share_price":false},{"type":"pass","entity":2089,"entity_type":"player","id":1011,"created_at":1684902196,"auto_actions":[{"type":"pass","entity":605,"entity_type":"player","created_at":1684902195}]},{"type":"program_share_pass","entity":13048,"entity_type":"player","id":1013,"created_at":1684902202,"auto_actions":[{"type":"pass","entity":13048,"entity_type":"player","created_at":1684902201}],"unconditional":false,"indefinite":false},{"type":"program_share_pass","entity":1324,"entity_type":"player","id":1014,"created_at":1684902210,"auto_actions":[{"type":"pass","entity":1324,"entity_type":"player","created_at":1684902208}],"unconditional":false,"indefinite":false},{"type":"lay_tile","entity":"13","entity_type":"corporation","id":1015,"created_at":1684902226,"hex":"L19","tile":"5-2","rotation":3},{"type":"buy_train","entity":"13","entity_type":"corporation","id":1016,"created_at":1684902232,"train":"7-4","price":1000,"variant":"E"},{"type":"lay_tile","entity":"NP","entity_type":"corporation","id":1017,"created_at":1684902240,"hex":"J9","tile":"X11-0","rotation":3},{"type":"pass","entity":"NP","entity_type":"corporation","id":1018,"created_at":1684902243},{"type":"choose","entity":"NP","entity_type":"corporation","id":1019,"created_at":1684902245,"choice":"0"},{"type":"run_routes","entity":"NP","entity_type":"corporation","id":1020,"created_at":1684902247,"routes":[{"train":"LP-1","connections":[["H11","G12"]],"hexes":["H11","G12"],"revenue":110,"revenue_str":"H11-G12","nodes":["H11-0","G12-0"]},{"train":"5-0","connections":[["I12","H11"],["J11","I12"],["J9","J11"],["J7","J9"],["I8","J7"],["G8","H7","I8"],["F9","G8"],["F5","G6","F7","F9"],["E2","F3","F5"]],"hexes":["H11","I12","J11","J9","J7","I8","G8","F9","F5","E2"],"revenue":460,"revenue_str":"H11-I12-J11-J9-J7-I8-G8-F9-F5-E2 ($50) (+$40 LB) ","nodes":["I12-0","H11-0","J11-0","J9-0","J7-0","I8-0","G8-0","F9-0","F5-0","E2-0"]}]},{"type":"choose","entity":"NP","entity_type":"corporation","id":1021,"created_at":1684902281,"choice":"withhold"},{"type":"dividend","entity":"NP","entity_type":"corporation","id":1022,"created_at":1684902283,"kind":"half"},{"type":"pass","entity":"NP","entity_type":"corporation","id":1023,"created_at":1684902288},{"type":"lay_tile","entity":"SPS","entity_type":"corporation","id":1024,"created_at":1684902320,"hex":"D19","tile":"63-0","rotation":0},{"type":"run_routes","entity":"SPS","entity_type":"corporation","id":1025,"created_at":1684902329,"routes":[{"train":"6-1","connections":[["I12","J11"],["J11","J9"],["J9","K8","L7","M6","N5"],["N5","N7","O8"],["O8","N9"]],"hexes":["I12","J11","J9","N5","O8","N9"],"revenue":310,"revenue_str":"I12-J11-J9-N5-O8-N9 (+$30 Mill) ","nodes":["I12-0","J11-0","J9-0","N5-0","O8-0","N9-0"]}]},{"type":"dividend","entity":"SPS","entity_type":"corporation","id":1026,"created_at":1684902332,"kind":"payout"},{"type":"pass","entity":"SPS","entity_type":"corporation","id":1027,"created_at":1684902336},{"type":"pass","entity":"SPS","entity_type":"corporation","id":1028,"created_at":1684902339},{"type":"lay_tile","entity":"CMPS","entity_type":"corporation","id":1029,"created_at":1684902353,"hex":"H21","tile":"63-1","rotation":0},{"type":"choose","entity":"CMPS","entity_type":"corporation","id":1030,"created_at":1684902360,"choice":"1"},{"type":"run_routes","entity":"CMPS","entity_type":"corporation","id":1031,"created_at":1684902427,"routes":[{"train":"2P-0","connections":[["H11","G12"]],"hexes":["G12","H11"],"revenue":110,"revenue_str":"G12-H11","nodes":["H11-0","G12-0"]},{"train":"5-1","connections":[["H21","G22","F23"],["H21","I20","J19","J17","I16","J15","I14","H13","H11"],["H11","I12"],["I12","J13"],["J13","J11"],["J11","J9"],["J9","J7"],["J7","I8"],["I8","H7","G8"]],"hexes":["F23","H21","H11","I12","J13","J11","J9","J7","I8","G8"],"revenue":410,"revenue_str":"F23-H21-H11-I12-J13-J11-J9-J7-I8-G8","nodes":["H21-0","F23-0","H11-0","I12-0","J13-0","J11-0","J9-0","J7-0","I8-0","G8-0"]},{"train":"7-2","connections":[["H21","G22","F23"],["H21","I20","J19","J17","I16","J15","I14","H13","H11"],["H11","I12"],["I12","J11"],["J11","J9"]],"hexes":["F23","H21","H11","I12","J11","J9"],"revenue":720,"revenue_str":"F23-H21-H11-I12-J11-J9 ($200)","nodes":["H21-0","F23-0","H11-0","I12-0","J11-0","J9-0"]}]},{"type":"dividend","entity":"CMPS","entity_type":"corporation","id":1032,"created_at":1684902430,"kind":"payout"},{"type":"lay_tile","entity":"CPR","entity_type":"corporation","id":1033,"created_at":1684902442,"hex":"D21","tile":"82-3","rotation":4},{"type":"lay_tile","entity":"P11","entity_type":"company","id":1034,"created_at":1684902447,"hex":"E22","tile":"82-4","rotation":2},{"type":"run_routes","entity":"CPR","entity_type":"corporation","id":1035,"created_at":1684902464,"routes":[{"train":"7-1","connections":[["A22","A20","B19"],["B19","A18","A16","A14","A12","A10","A8"],["A8","B9","C10","D11"],["D11","E12","F13"],["F13","G12"],["G12","H11"]],"hexes":["A22","B19","A8","D11","F13","G12","H11"],"revenue":380,"revenue_str":"A22-B19-A8-D11-F13-G12-H11 ($60)","nodes":["A22-0","B19-0","A8-0","D11-0","F13-0","G12-0","H11-0"]},{"train":"5P-0","connections":[["F23","G22","H21"],["H21","I20","J19","J17","I16","J15","I14","H13","H11"]],"hexes":["F23","H21","H11"],"revenue":220,"revenue_str":"F23-H21-H11","nodes":["F23-0","H21-0","H11-0"]}]},{"type":"dividend","entity":"CPR","entity_type":"corporation","id":1036,"created_at":1684902467,"kind":"payout"},{"type":"lay_tile","entity":"SWW","entity_type":"corporation","id":1037,"created_at":1684902488,"hex":"F13","tile":"63-2","rotation":0},{"type":"place_token","entity":"SWW","entity_type":"corporation","id":1038,"created_at":1684902496,"city":"63-2-0","slot":1,"tokener":"SWW"},{"type":"run_routes","entity":"SWW","entity_type":"corporation","id":1039,"created_at":1684902520,"routes":[{"train":"LP-0","connections":[["H11","G12"]],"hexes":["H11","G12"],"revenue":110,"revenue_str":"H11-G12","nodes":["H11-0","G12-0"]},{"train":"6-2","connections":[["J9","K8","L7","M6","N5"],["J11","J9"],["I12","J11"],["H11","I12"],["O22","N23","M22","L21","K20","J19","J17","I16","J15","I14","H13","H11"]],"hexes":["N5","J9","J11","I12","H11","O22"],"revenue":420,"revenue_str":"N5-J9-J11-I12-H11-O22 ($50) (+$30 Mill) (-$10 Portage) ","nodes":["J9-0","N5-0","J11-0","I12-0","H11-0","O22-0"]}]},{"type":"dividend","entity":"SWW","entity_type":"corporation","id":1040,"created_at":1684902524,"kind":"payout"},{"type":"buy_train","entity":"SWW","entity_type":"corporation","id":1041,"created_at":1684902532,"train":"7-4","price":1},{"type":"lay_tile","entity":"ORNC","entity_type":"corporation","id":1042,"created_at":1684902578,"auto_actions":[{"type":"pass","entity":"ORNC","entity_type":"corporation","created_at":1684902576}],"hex":"M12","tile":"82-5","rotation":3},{"type":"pass","entity":"ORNC","entity_type":"corporation","id":1043,"created_at":1684902593},{"type":"run_routes","entity":"ORNC","entity_type":"corporation","id":1044,"created_at":1684902604,"routes":[{"train":"7-0","connections":[["I12","J11"],["J11","J9"],["J9","K8","L7","M6","N5"],["N5","O4","P5"],["P5","P7","O8"],["O8","N9"]],"hexes":["I12","J11","J9","N5","P5","O8","N9"],"revenue":320,"revenue_str":"I12-J11-J9-N5-P5-O8-N9 (+$30 Mill) (-$10 Portage) ","nodes":["I12-0","J11-0","J9-0","N5-0","P5-0","O8-0","N9-0"]}]},{"type":"dividend","entity":"ORNC","entity_type":"corporation","id":1045,"created_at":1684902617,"kind":"payout"},{"type":"buy_train","entity":"ORNC","entity_type":"corporation","id":1046,"created_at":1684902621,"train":"7-5","price":750,"variant":"7"},{"type":"lay_tile","entity":"GNR","entity_type":"corporation","id":1047,"created_at":1684902681,"hex":"D23","tile":"5-3","rotation":0},{"type":"pass","entity":"GNR","entity_type":"corporation","id":1048,"created_at":1684902684,"auto_actions":[{"type":"hex_token","entity":"GNR","entity_type":"corporation","created_at":1684902683,"hex":"D11","token_type":"destination"}]},{"type":"pass","entity":"GNR","entity_type":"corporation","id":1049,"created_at":1684902687},{"type":"buy_train","entity":"GNR","entity_type":"corporation","id":1050,"created_at":1684902693,"train":"7-6","price":1000,"variant":"E"},{"type":"lay_tile","entity":"13","entity_type":"corporation","id":1051,"created_at":1684902702,"hex":"K20","tile":"82-6","rotation":5},{"type":"buy_train","entity":"13","entity_type":"corporation","id":1052,"created_at":1684902707,"train":"6-2","price":1},{"hex":"F9","tile":"611-1","type":"lay_tile","entity":"NP","rotation":3,"entity_type":"corporation","id":1053,"user":1324,"created_at":1684902719},{"type":"undo","entity":"NP","entity_type":"corporation","id":1054,"user":1324,"created_at":1684902731},{"type":"lay_tile","entity":"NP","entity_type":"corporation","id":1055,"created_at":1684902747,"hex":"F13","tile":"895-0","rotation":0},{"type":"pass","entity":"NP","entity_type":"corporation","id":1056,"created_at":1684902751},{"type":"choose","entity":"NP","entity_type":"corporation","id":1057,"created_at":1684902753,"choice":"0"},{"type":"run_routes","entity":"NP","entity_type":"corporation","id":1058,"created_at":1684902771,"routes":[{"train":"LP-1","connections":[["local","H11"]],"hexes":["H11"],"revenue":100,"revenue_str":"H11","nodes":[]},{"train":"5-0","connections":[["G12","F13"],["H11","G12"],["I12","H11"],["J11","I12"],["J9","J11"],["J7","J9"],["I8","J7"],["G8","H7","I8"],["F9","G8"],["F5","G6","F7","F9"],["E2","F3","F5"]],"hexes":["F13","G12","H11","I12","J11","J9","J7","I8","G8","F9","F5","E2"],"revenue":520,"revenue_str":"F13-G12-H11-I12-J11-J9-J7-I8-G8-F9-F5-E2 ($50) (+$40 LB) ","nodes":["G12-0","F13-0","H11-0","I12-0","J11-0","J9-0","J7-0","I8-0","G8-0","F9-0","F5-0","E2-0"]}]},{"type":"choose","entity":"NP","entity_type":"corporation","id":1059,"created_at":1684902782,"choice":"payout"},{"type":"dividend","entity":"NP","entity_type":"corporation","id":1060,"created_at":1684902790,"kind":"half"},{"type":"buy_train","entity":"NP","entity_type":"corporation","id":1061,"created_at":1684902792,"train":"7-7","price":1000,"variant":"E"},{"type":"lay_tile","entity":"SPS","entity_type":"corporation","id":1062,"created_at":1684902811,"hex":"M14","tile":"9-18","rotation":1},{"type":"assign","entity":"P17","entity_type":"company","id":1063,"created_at":1684902820,"target":"M14","target_type":"hex"},{"type":"lay_tile","entity":"SPS","entity_type":"corporation","id":1064,"created_at":1684902830,"hex":"M16","tile":"8-19","rotation":1},{"type":"run_routes","entity":"SPS","entity_type":"corporation","id":1065,"created_at":1684902839,"routes":[{"train":"6-1","connections":[["I12","J11"],["J11","J9"],["J9","K8","L7","M6","N5"],["N5","N7","O8"],["O8","N9"]],"hexes":["I12","J11","J9","N5","O8","N9"],"revenue":310,"revenue_str":"I12-J11-J9-N5-O8-N9 (+$30 Mill) ","nodes":["I12-0","J11-0","J9-0","N5-0","O8-0","N9-0"]}]},{"type":"dividend","entity":"SPS","entity_type":"corporation","id":1066,"created_at":1684902843,"kind":"payout"},{"type":"buy_train","entity":"SPS","entity_type":"corporation","id":1067,"created_at":1684902880,"train":"7-0","price":43},{"hex":"F9","tile":"63-2","type":"lay_tile","entity":"CMPS","rotation":0,"entity_type":"corporation","id":1068,"user":605,"created_at":1684902910},{"type":"undo","entity":"CMPS","entity_type":"corporation","id":1069,"user":605,"created_at":1684902919},{"hex":"H21","tile":"895-1","type":"lay_tile","entity":"CMPS","rotation":0,"entity_type":"corporation","id":1070,"user":605,"created_at":1684902924},{"type":"undo","entity":"CMPS","action_id":1067,"entity_type":"corporation","id":1071,"user":605,"created_at":1684902941},{"type":"lay_tile","entity":"CMPS","entity_type":"corporation","id":1072,"created_at":1684902945,"hex":"J19","tile":"546-0","rotation":1},{"type":"choose","entity":"CMPS","entity_type":"corporation","id":1073,"created_at":1684902955,"choice":"1"},{"type":"run_routes","entity":"CMPS","entity_type":"corporation","id":1074,"created_at":1684902960,"routes":[{"train":"2P-0","connections":[["H11","G12"]],"hexes":["H11","G12"],"revenue":110,"revenue_str":"H11-G12","nodes":["H11-0","G12-0"]},{"train":"5-1","connections":[["H21","G22","F23"],["H21","I20","J19","J17","I16","J15","I14","H13","H11"],["H11","I12"],["I12","J13"],["J13","J11"],["J11","J9"],["J9","J7"],["J7","I8"],["I8","H7","G8"]],"hexes":["F23","H21","H11","I12","J13","J11","J9","J7","I8","G8"],"revenue":410,"revenue_str":"F23-H21-H11-I12-J13-J11-J9-J7-I8-G8","nodes":["H21-0","F23-0","H11-0","I12-0","J13-0","J11-0","J9-0","J7-0","I8-0","G8-0"]},{"train":"7-2","connections":[["H21","G22","F23"],["H21","I20","J19","J17","I16","J15","I14","H13","H11"],["H11","I12"],["I12","J11"],["J11","J9"]],"hexes":["F23","H21","H11","I12","J11","J9"],"revenue":720,"revenue_str":"F23-H21-H11-I12-J11-J9 ($200)","nodes":["H21-0","F23-0","H11-0","I12-0","J11-0","J9-0"]}]},{"type":"dividend","entity":"CMPS","entity_type":"corporation","id":1075,"created_at":1684902964,"kind":"payout"},{"type":"pass","entity":"CMPS","entity_type":"corporation","id":1076,"created_at":1684902970},{"type":"lay_tile","entity":"CPR","entity_type":"corporation","id":1077,"created_at":1684902985,"hex":"D11","tile":"X5-1","rotation":1},{"type":"run_routes","entity":"CPR","entity_type":"corporation","id":1078,"created_at":1684903004,"routes":[{"train":"7-1","connections":[["A22","B23","C22"],["C22","C20","D19"],["D19","C18","B19"],["B19","A20","A18","A16","A14","A12","A10","A8"],["A8","B9","C10","D11"],["D11","E12","F13"]],"hexes":["A22","C22","D19","B19","A8","D11","F13"],"revenue":350,"revenue_str":"A22-C22-D19-B19-A8-D11-F13 ($60)","nodes":["A22-0","C22-0","D19-0","B19-0","A8-0","D11-0","F13-0"]},{"train":"5P-0","connections":[["F23","G22","H21"],["H21","I20","J19","J17","I16","J15","I14","H13","H11"]],"hexes":["F23","H21","H11"],"revenue":220,"revenue_str":"F23-H21-H11","nodes":["F23-0","H21-0","H11-0"]}]},{"type":"dividend","entity":"CPR","entity_type":"corporation","id":1079,"created_at":1684903006,"kind":"payout"},{"type":"lay_tile","entity":"SWW","entity_type":"corporation","id":1080,"created_at":1684903020,"hex":"D11","tile":"X11-1","rotation":1},{"type":"run_routes","entity":"SWW","entity_type":"corporation","id":1081,"created_at":1684903040,"routes":[{"train":"LP-0","connections":[["H11","G12"]],"hexes":["H11","G12"],"revenue":110,"revenue_str":"H11-G12","nodes":["H11-0","G12-0"]},{"train":"7-4","connections":[["I12","I14","J15","I16","J17","J19","K20","L21","M22","N23","O22"],["H11","H13","I12"],["G12","H11"],["F13","G12"],["D11","E12","F13"]],"hexes":["O22","I12","H11","G12","F13","D11"],"revenue":720,"revenue_str":"O22-I12-H11-G12-F13-D11 ($100)","nodes":["I12-0","O22-0","H11-0","G12-0","F13-0","D11-0"]}]},{"type":"choose","choice":"withhold","entity":"SWW","entity_type":"corporation","id":1082,"user":605,"created_at":1684903047},{"type":"undo","entity":"SWW","entity_type":"corporation","id":1083,"user":605,"created_at":1684903055},{"type":"choose","entity":"SWW","entity_type":"corporation","id":1084,"created_at":1684903058,"choice":"withhold"},{"type":"dividend","entity":"SWW","entity_type":"corporation","id":1085,"created_at":1684903060,"kind":"payout"},{"type":"pass","entity":"SWW","entity_type":"corporation","id":1086,"created_at":1684903062},{"type":"merge","entity":"SWW","entity_type":"corporation","id":1087,"created_at":1684903063,"corporation":"13"},{"type":"choose","entity":"SWW","entity_type":"corporation","id":1088,"created_at":1684903064,"choice":"money"},{"type":"choose","entity":"SWW","entity_type":"corporation","id":1089,"created_at":1684903069,"choice":"exchange"},{"hex":"L17","tile":"8-20","type":"lay_tile","entity":"ORNC","rotation":4,"entity_type":"corporation","id":1090,"user":2089,"created_at":1684903100},{"type":"undo","entity":"ORNC","entity_type":"corporation","id":1091,"user":2089,"created_at":1684903109},{"type":"lay_tile","entity":"ORNC","entity_type":"corporation","id":1092,"created_at":1684903115,"auto_actions":[{"type":"pass","entity":"ORNC","entity_type":"corporation","created_at":1684903113}],"hex":"O8","tile":"X26-0","rotation":0},{"type":"run_routes","entity":"ORNC","entity_type":"corporation","id":1093,"created_at":1684903123,"routes":[{"train":"7-5","connections":[["I12","J11"],["J11","J9"],["J9","K8","L7","M6","N5"],["N5","O4","P5"],["P5","P7","O8"],["O8","N9"]],"hexes":["I12","J11","J9","N5","P5","O8","N9"],"revenue":340,"revenue_str":"I12-J11-J9-N5-P5-O8-N9 (+$30 Mill) (-$10 Portage) ","nodes":["I12-0","J11-0","J9-0","N5-0","P5-0","O8-0","N9-0"]}]},{"type":"dividend","entity":"ORNC","entity_type":"corporation","id":1094,"created_at":1684903126,"kind":"payout"},{"type":"pass","entity":"ORNC","entity_type":"corporation","id":1095,"created_at":1684903128},{"hex":"D19","tile":"895-1","type":"lay_tile","entity":"GNR","rotation":0,"entity_type":"corporation","id":1096,"user":13048,"created_at":1684903147},{"type":"undo","entity":"GNR","action_id":1095,"entity_type":"corporation","id":1097,"user":13048,"created_at":1684903209},{"type":"lay_tile","entity":"GNR","entity_type":"corporation","id":1098,"created_at":1684903261,"hex":"F21","tile":"83-2","rotation":5},{"type":"run_routes","entity":"GNR","entity_type":"corporation","id":1099,"created_at":1684903267,"routes":[{"train":"7-6","connections":[["F23","E22","D23"],["D23","D21","D19"],["D19","C18","B19"],["B19","A20","A18","A16","A14","A12","A10","A8"],["A8","B9","C10","D11"],["D11","E12","F13"]],"hexes":["F23","D23","D19","B19","A8","D11","F13"],"revenue":280,"revenue_str":"F23-D23-D19-B19-A8-D11-F13 ($120)","nodes":["F23-0","D23-0","D19-0","B19-0","A8-0","D11-0","F13-0"]}]},{"type":"dividend","entity":"GNR","entity_type":"corporation","id":1100,"created_at":1684903269,"kind":"payout"},{"type":"program_share_pass","entity":2089,"entity_type":"player","id":1102,"created_at":1684903309,"auto_actions":[{"type":"pass","entity":2089,"entity_type":"player","created_at":1684903308}],"unconditional":false,"indefinite":false},{"type":"program_share_pass","entity":13048,"entity_type":"player","id":1103,"created_at":1684903318,"auto_actions":[{"type":"pass","entity":13048,"entity_type":"player","created_at":1684903316}],"unconditional":false,"indefinite":false},{"type":"program_share_pass","entity":1324,"entity_type":"player","id":1104,"created_at":1684903325,"auto_actions":[{"type":"pass","entity":1324,"entity_type":"player","created_at":1684903323}],"unconditional":false,"indefinite":false},{"type":"buy_shares","entity":605,"entity_type":"player","id":1105,"created_at":1684903337,"auto_actions":[{"type":"pass","entity":2089,"entity_type":"player","created_at":1684903337},{"type":"pass","entity":13048,"entity_type":"player","created_at":1684903337},{"type":"pass","entity":1324,"entity_type":"player","created_at":1684903337}],"shares":["GNR_5"],"percent":10,"share_price":false},{"type":"pass","entity":605,"entity_type":"player","id":1106,"created_at":1684903344},{"type":"lay_tile","entity":"NP","entity_type":"corporation","id":1107,"created_at":1684903354,"hex":"F9","tile":"63-2","rotation":0},{"type":"pass","entity":"NP","entity_type":"corporation","id":1108,"created_at":1684903356},{"type":"choose","entity":"NP","entity_type":"corporation","id":1109,"created_at":1684903359,"choice":"0"},{"type":"run_routes","entity":"NP","entity_type":"corporation","id":1110,"created_at":1684903377,"routes":[{"train":"LP-1","connections":[["local","H11"]],"hexes":["H11"],"revenue":100,"revenue_str":"H11","nodes":[]},{"train":"5-0","connections":[["G12","F13"],["H11","G12"],["I12","H11"],["J11","I12"],["J9","J11"],["J7","J9"],["I8","J7"],["G8","H7","I8"],["F9","G8"],["F5","G6","F7","F9"],["E2","F3","F5"]],"hexes":["F13","G12","H11","I12","J11","J9","J7","I8","G8","F9","F5","E2"],"revenue":480,"revenue_str":"F13-G12-H11-I12-J11-J9-J7-I8-G8-F9-F5-E2 (+$40 LB) ","nodes":["G12-0","F13-0","H11-0","I12-0","J11-0","J9-0","J7-0","I8-0","G8-0","F9-0","F5-0","E2-0"]},{"train":"7-7","connections":[["I12","H11"],["J11","I12"],["J9","J11"],["J7","J9"],["I8","J7"],["G8","H7","I8"],["F9","G8"]],"hexes":["H11","I12","J11","J9","J7","I8","G8","F9"],"revenue":600,"revenue_str":"H11-I12-J11-J9-J7-I8-G8-F9 ($100)","nodes":["I12-0","H11-0","J11-0","J9-0","J7-0","I8-0","G8-0","F9-0"]}]},{"type":"dividend","entity":"NP","entity_type":"corporation","id":1111,"created_at":1684903379,"kind":"payout"},{"type":"lay_tile","entity":"CMPS","entity_type":"corporation","id":1112,"created_at":1684903394,"hex":"J21","tile":"8-20","rotation":1},{"type":"lay_tile","entity":"CMPS","entity_type":"corporation","id":1113,"created_at":1684903397,"hex":"I22","tile":"9-19","rotation":0},{"type":"choose","entity":"CMPS","entity_type":"corporation","id":1114,"created_at":1684903403,"choice":"1"},{"type":"run_routes","entity":"CMPS","entity_type":"corporation","id":1115,"created_at":1684903483,"routes":[{"train":"2P-0","connections":[["H11","G12"]],"hexes":["H11","G12"],"revenue":110,"revenue_str":"H11-G12","nodes":["H11-0","G12-0"]},{"train":"5-1","connections":[["H21","G22","F23"],["H21","I20","J19","J17","I16","J15","I14","H13","H11"],["H11","I12"],["I12","J13"],["J13","J11"],["J11","J9"],["J9","J7"],["J7","I8"],["I8","H7","G8"]],"hexes":["F23","H21","H11","I12","J13","J11","J9","J7","I8","G8"],"revenue":410,"revenue_str":"F23-H21-H11-I12-J13-J11-J9-J7-I8-G8","nodes":["H21-0","F23-0","H11-0","I12-0","J13-0","J11-0","J9-0","J7-0","I8-0","G8-0"]},{"train":"7-2","connections":[["H21","G22","F23"],["H21","I20","J19","J17","I16","J15","I14","H13","H11"],["H11","I12"],["I12","J11"],["J11","J9"]],"hexes":["F23","H21","H11","I12","J11","J9"],"revenue":720,"revenue_str":"F23-H21-H11-I12-J11-J9 ($200)","nodes":["H21-0","F23-0","H11-0","I12-0","J11-0","J9-0"]}]},{"type":"dividend","entity":"CMPS","entity_type":"corporation","id":1116,"created_at":1684903484,"kind":"payout"},{"type":"lay_tile","entity":"CPR","entity_type":"corporation","id":1117,"created_at":1684903504,"hex":"G22","tile":"83-3","rotation":3},{"type":"run_routes","entity":"CPR","entity_type":"corporation","id":1118,"created_at":1684903514,"routes":[{"train":"7-1","connections":[["A22","B23","C22"],["C22","C20","D19"],["D19","C18","B19"],["B19","A20","A18","A16","A14","A12","A10","A8"],["A8","B9","C10","D11"],["D11","E12","F13"]],"hexes":["A22","C22","D19","B19","A8","D11","F13"],"revenue":360,"revenue_str":"A22-C22-D19-B19-A8-D11-F13 ($60)","nodes":["A22-0","C22-0","D19-0","B19-0","A8-0","D11-0","F13-0"]},{"train":"5P-0","connections":[["F23","E22","D21","D19"],["D19","E20"],["E20","F21","G22","H21"],["H21","I20","J19","J17","I16","J15","I14","H13","H11"]],"hexes":["F23","D19","E20","H21","H11"],"revenue":270,"revenue_str":"F23-D19-E20-H21-H11","nodes":["F23-0","D19-0","E20-0","H21-0","H11-0"]}]},{"type":"dividend","entity":"CPR","entity_type":"corporation","id":1119,"created_at":1684903517,"kind":"payout"},{"type":"lay_tile","entity":"SPS","entity_type":"corporation","id":1120,"created_at":1684903542,"hex":"L17","tile":"8-21","rotation":4},{"type":"pass","entity":"SPS","entity_type":"corporation","id":1121,"created_at":1684903547},{"type":"run_routes","entity":"SPS","entity_type":"corporation","id":1122,"created_at":1684903560,"routes":[{"train":"7-0","connections":[["H11","H13","I14","J15","I16","J17","J19","I20","H21"],["H21","G22","F21","E20"],["E20","D19"],["D19","C18","B19"],["B19","A20","A18","A16","A14","A12","A10","A8"],["A8","B7"]],"hexes":["H11","H21","E20","D19","B19","A8","B7"],"revenue":360,"revenue_str":"H11-H21-E20-D19-B19-A8-B7","nodes":["H11-0","H21-0","E20-0","D19-0","B19-0","A8-0","B7-0"]},{"train":"6-1","connections":[["I12","J11"],["J11","J9"],["J9","K8","L7","M6","N5"],["N5","N7","O8"],["O8","N9"]],"hexes":["I12","J11","J9","N5","O8","N9"],"revenue":330,"revenue_str":"I12-J11-J9-N5-O8-N9 (+$30 Mill) ","nodes":["I12-0","J11-0","J9-0","N5-0","O8-0","N9-0"]}]},{"type":"dividend","entity":"SPS","entity_type":"corporation","id":1123,"created_at":1684903562,"kind":"payout"},{"type":"lay_tile","entity":"SWW","entity_type":"corporation","id":1124,"created_at":1684903578,"hex":"G22","tile":"544-0","rotation":2},{"city":"405-0-0","slot":1,"type":"place_token","entity":"SWW","tokener":"SWW","entity_type":"corporation","id":1125,"user":605,"created_at":1684903584},{"type":"undo","entity":"SWW","entity_type":"corporation","id":1126,"user":605,"created_at":1684903590},{"type":"place_token","entity":"SWW","entity_type":"corporation","id":1127,"created_at":1684903600,"city":"A22-0-0","slot":0,"tokener":"SWW"},{"type":"run_routes","entity":"SWW","entity_type":"corporation","id":1128,"created_at":1684903671,"routes":[{"train":"LP-0","connections":[["H11","G12"]],"hexes":["G12","H11"],"revenue":110,"revenue_str":"G12-H11","nodes":["H11-0","G12-0"]},{"train":"7-4","connections":[["I12","I14","J15","I16","J17","J19","K20","L21","M22","N23","O22"],["H11","H13","I12"],["G12","H11"],["F13","G12"],["D11","E12","F13"],["D11","C10","B9","A8"],["A8","A10","A12","A14","A16","A18","A20","A22"]],"hexes":["O22","I12","H11","G12","F13","D11","A8","A22"],"revenue":840,"revenue_str":"O22-I12-H11-G12-F13-D11-A8-A22 ($100)","nodes":["I12-0","O22-0","H11-0","G12-0","F13-0","D11-0","A8-0","A22-0"]},{"train":"6-2","connections":[["F13","G12"],["D11","E12","F13"],["A8","B9","C10","D11"],["A22","A20","A18","A16","A14","A12","A10","A8"]],"hexes":["G12","F13","D11","A8","A22"],"revenue":230,"revenue_str":"G12-F13-D11-A8-A22","nodes":["F13-0","G12-0","D11-0","A8-0","A22-0"]}]},{"type":"dividend","entity":"SWW","entity_type":"corporation","id":1129,"created_at":1684903671,"kind":"payout"},{"type":"lay_tile","entity":"ORNC","entity_type":"corporation","id":1130,"created_at":1684903691,"auto_actions":[{"type":"pass","entity":"ORNC","entity_type":"corporation","created_at":1684903689}],"hex":"L19","tile":"14-1","rotation":0},{"type":"run_routes","entity":"ORNC","entity_type":"corporation","id":1131,"created_at":1684903703,"routes":[{"train":"7-5","connections":[["H11","H13","I14","J15","I16","J17","J19","K20","L19"],["L19","L17","M16","M14","M12","L13","K12"],["K12","K10","J9"],["J9","K8","L7","M6","N5"],["N5","N7","O8"],["O8","N9"]],"hexes":["H11","L19","K12","J9","N5","O8","N9"],"revenue":450,"revenue_str":"H11-L19-K12-J9-N5-O8-N9 (+$30 Mill) (+30 Ski Haus) (-$10 Portage) ","nodes":["H11-0","L19-0","K12-0","J9-0","N5-0","O8-0","N9-0"]}]},{"type":"dividend","entity":"ORNC","entity_type":"corporation","id":1132,"created_at":1684903705,"kind":"payout"},{"type":"pass","entity":"ORNC","entity_type":"corporation","id":1133,"created_at":1684903707},{"type":"lay_tile","entity":"GNR","entity_type":"corporation","id":1134,"created_at":1684903721,"hex":"E22","tile":"544-1","rotation":2},{"type":"run_routes","entity":"GNR","entity_type":"corporation","id":1135,"created_at":1684903734,"routes":[{"train":"7-6","connections":[["F23","E22","D23"],["D23","D21","D19"],["D19","C18","B19"],["B19","A20","A18","A16","A14","A12","A10","A8"],["A8","B9","C10","D11"],["D11","E12","F13"]],"hexes":["F23","D23","D19","B19","A8","D11","F13"],"revenue":280,"revenue_str":"F23-D23-D19-B19-A8-D11-F13 ($120)","nodes":["F23-0","D23-0","D19-0","B19-0","A8-0","D11-0","F13-0"]}]},{"type":"dividend","entity":"GNR","entity_type":"corporation","id":1136,"created_at":1684903735,"kind":"payout"},{"type":"lay_tile","entity":"NP","entity_type":"corporation","id":1137,"created_at":1684903749,"hex":"F9","tile":"895-1","rotation":0},{"type":"pass","entity":"NP","entity_type":"corporation","id":1138,"created_at":1684903751},{"type":"choose","entity":"NP","entity_type":"corporation","id":1139,"created_at":1684903754,"choice":"0"},{"type":"run_routes","entity":"NP","entity_type":"corporation","id":1141,"created_at":1684903802,"routes":[{"train":"LP-1","connections":[["H11","G12"]],"hexes":["G12","H11"],"revenue":110,"revenue_str":"G12-H11","nodes":["H11-0","G12-0"]},{"train":"5-0","connections":[["H21","G22","F21","E20"],["H11","H13","I14","J15","I16","J17","J19","I20","H21"],["I12","H11"],["J11","I12"],["J9","J11"],["J7","J9"],["I8","J7"],["G8","H7","I8"],["F9","G8"],["F5","G6","F7","F9"],["E2","F3","F5"]],"hexes":["E20","H21","H11","I12","J11","J9","J7","I8","G8","F9","F5","E2"],"revenue":540,"revenue_str":"E20-H21-H11-I12-J11-J9-J7-I8-G8-F9-F5-E2 (+$70 LB) ","nodes":["H21-0","E20-0","H11-0","I12-0","J11-0","J9-0","J7-0","I8-0","G8-0","F9-0","F5-0","E2-0"]},{"train":"7-7","connections":[["I12","H11"],["J11","I12"],["J9","J11"],["J7","J9"],["I8","J7"],["G8","H7","I8"],["F9","G8"]],"hexes":["H11","I12","J11","J9","J7","I8","G8","F9"],"revenue":620,"revenue_str":"H11-I12-J11-J9-J7-I8-G8-F9 ($100)","nodes":["I12-0","H11-0","J11-0","J9-0","J7-0","I8-0","G8-0","F9-0"]}]},{"type":"dividend","entity":"NP","entity_type":"corporation","id":1142,"created_at":1684903804,"kind":"payout"},{"type":"lay_tile","entity":"CMPS","entity_type":"corporation","id":1143,"created_at":1684903814,"hex":"H23","tile":"8-22","rotation":0},{"type":"lay_tile","entity":"CMPS","entity_type":"corporation","id":1145,"created_at":1684903821,"hex":"F1","tile":"8-23","rotation":3},{"type":"choose","entity":"CMPS","entity_type":"corporation","id":1146,"created_at":1684903826,"choice":"1"},{"type":"run_routes","entity":"CMPS","entity_type":"corporation","id":1147,"created_at":1684903881,"routes":[{"train":"2P-0","connections":[["H11","G12"]],"hexes":["H11","G12"],"revenue":110,"revenue_str":"H11-G12","nodes":["H11-0","G12-0"]},{"train":"5-1","connections":[["F5","F3","E2"],["F9","F7","G6","F5"],["G8","F9"],["I8","H7","G8"],["J7","I8"],["J9","J7"],["J11","J9"],["J13","J11"],["I12","J13"],["H11","I12"],["F23","G22","H23","I22","J21","J19","J17","I16","J15","I14","H13","H11"]],"hexes":["E2","F5","F9","G8","I8","J7","J9","J11","J13","I12","H11","F23"],"revenue":470,"revenue_str":"E2-F5-F9-G8-I8-J7-J9-J11-J13-I12-H11-F23","nodes":["F5-0","E2-0","F9-0","G8-0","I8-0","J7-0","J9-0","J11-0","J13-0","I12-0","H11-0","F23-0"]},{"train":"7-2","connections":[["H21","G22","F23"],["H21","I20","J19","J17","I16","J15","I14","H13","H11"],["H11","I12"],["I12","J11"],["J11","J9"]],"hexes":["F23","H21","H11","I12","J11","J9"],"revenue":720,"revenue_str":"F23-H21-H11-I12-J11-J9 ($200)","nodes":["H21-0","F23-0","H11-0","I12-0","J11-0","J9-0"]}]},{"type":"dividend","entity":"CMPS","entity_type":"corporation","id":1148,"created_at":1684903884,"kind":"payout"},{"type":"pass","entity":"CPR","entity_type":"corporation","id":1149,"user":13048,"created_at":1684903899},{"type":"undo","entity":"CPR","action_id":1148,"entity_type":"corporation","id":1150,"user":13048,"created_at":1684903928},{"type":"lay_tile","entity":"CPR","entity_type":"corporation","id":1151,"created_at":1684903943,"hex":"A8","tile":"X10-0","rotation":5},{"type":"run_routes","entity":"CPR","entity_type":"corporation","id":1152,"created_at":1684903957,"routes":[{"train":"7-1","connections":[["F23","F21","G22","H21"],["H21","I20","J19","K20","L19"],["L19","L17","M16","M14","M12","L13","K12"],["K12","K10","J9"],["J9","K8","L7","M6","N5"],["N5","N7","O8"]],"hexes":["F23","H21","L19","K12","J9","N5","O8"],"revenue":390,"revenue_str":"F23-H21-L19-K12-J9-N5-O8 (+$30 Mill) (+30 Ski Haus) (-$10 Portage) ","nodes":["F23-0","H21-0","L19-0","K12-0","J9-0","N5-0","O8-0"]},{"train":"5P-0","connections":[["A22","A20","B19"],["B19","A18","A16","A14","A12","A10","A8"],["A8","B9","C10","D11"],["D11","E12","F13"]],"hexes":["A22","B19","A8","D11","F13"],"revenue":320,"revenue_str":"A22-B19-A8-D11-F13 ($60)","nodes":["A22-0","B19-0","A8-0","D11-0","F13-0"]}]},{"type":"dividend","entity":"CPR","entity_type":"corporation","id":1153,"created_at":1684903975,"kind":"payout"},{"type":"lay_tile","entity":"SPS","entity_type":"corporation","id":1154,"created_at":1684904010,"hex":"L19","tile":"63-2","rotation":0},{"type":"run_routes","entity":"SPS","entity_type":"corporation","id":1155,"created_at":1684904032,"routes":[{"train":"7-0","connections":[["H11","H13","I14","J15","I16","J17","J19","K20","L19"],["L19","L17","M16","M14","M12","L13","K12"],["K12","K10","J9"],["J9","K8","L7","M6","N5"],["N5","N7","O8"],["O8","N9"]],"hexes":["H11","L19","K12","J9","N5","O8","N9"],"revenue":470,"revenue_str":"H11-L19-K12-J9-N5-O8-N9 (+$30 Mill) (+30 Ski Haus) ","nodes":["H11-0","L19-0","K12-0","J9-0","N5-0","O8-0","N9-0"]},{"train":"6-1","connections":[["H11","G12"],["G12","F13"],["F13","E12","D11"],["D11","C10","B9","A8"],["A8","A10","A12","A14","A16","A18","A20","A22"]],"hexes":["H11","G12","F13","D11","A8","A22"],"revenue":340,"revenue_str":"H11-G12-F13-D11-A8-A22","nodes":["H11-0","G12-0","F13-0","D11-0","A8-0","A22-0"]}]},{"type":"dividend","entity":"SPS","entity_type":"corporation","id":1156,"created_at":1684904035,"kind":"payout"},{"type":"pass","entity":"SWW","entity_type":"corporation","id":1157,"created_at":1684904053},{"type":"run_routes","entity":"SWW","entity_type":"corporation","id":1158,"created_at":1684904065,"routes":[{"train":"LP-0","connections":[["H11","G12"]],"hexes":["H11","G12"],"revenue":110,"revenue_str":"H11-G12","nodes":["H11-0","G12-0"]},{"train":"7-4","connections":[["I12","I14","J15","I16","J17","J19","K20","L21","M22","N23","O22"],["H11","H13","I12"],["G12","H11"],["F13","G12"],["D11","E12","F13"],["D11","C10","B9","A8"],["A8","A10","A12","A14","A16","A18","A20","A22"]],"hexes":["O22","I12","H11","G12","F13","D11","A8","A22"],"revenue":840,"revenue_str":"O22-I12-H11-G12-F13-D11-A8-A22 ($100)","nodes":["I12-0","O22-0","H11-0","G12-0","F13-0","D11-0","A8-0","A22-0"]},{"train":"6-2","connections":[["F13","G12"],["D11","E12","F13"],["A8","B9","C10","D11"],["A22","A20","A18","A16","A14","A12","A10","A8"]],"hexes":["G12","F13","D11","A8","A22"],"revenue":240,"revenue_str":"G12-F13-D11-A8-A22","nodes":["F13-0","G12-0","D11-0","A8-0","A22-0"]}]},{"type":"dividend","entity":"SWW","entity_type":"corporation","id":1159,"created_at":1684904066,"kind":"payout"},{"type":"lay_tile","entity":"ORNC","entity_type":"corporation","id":1161,"created_at":1684904098,"auto_actions":[{"type":"pass","entity":"ORNC","entity_type":"corporation","created_at":1684904096}],"hex":"N5","tile":"51-0","rotation":2},{"type":"run_routes","entity":"ORNC","entity_type":"corporation","id":1162,"created_at":1684904108,"routes":[{"train":"7-5","connections":[["H11","H13","I14","J15","I16","J17","J19","K20","L19"],["L19","L17","M16","M14","M12","L13","K12"],["K12","K10","J9"],["J9","K8","L7","M6","N5"],["N5","N7","O8"],["O8","N9"]],"hexes":["H11","L19","K12","J9","N5","O8","N9"],"revenue":470,"revenue_str":"H11-L19-K12-J9-N5-O8-N9 (+$30 Mill) (+30 Ski Haus) (-$10 Portage) ","nodes":["H11-0","L19-0","K12-0","J9-0","N5-0","O8-0","N9-0"]}]},{"type":"dividend","entity":"ORNC","entity_type":"corporation","id":1163,"created_at":1684904110,"kind":"payout"},{"type":"pass","entity":"ORNC","entity_type":"corporation","id":1164,"created_at":1684904113},{"type":"lay_tile","entity":"GNR","entity_type":"corporation","id":1166,"created_at":1684904129,"hex":"F21","tile":"545-0","rotation":2},{"type":"run_routes","entity":"GNR","entity_type":"corporation","id":1172,"user":605,"created_at":1684904352,"routes":[{"train":"7-6","connections":[["F23","E22","D23"],["D23","D21","D19"],["D19","C18","B19"],["B19","A20","A18","A16","A14","A12","A10","A8"],["A8","B9","C10","D11"],["D11","E12","F13"]],"hexes":["F23","D23","D19","B19","A8","D11","F13"],"revenue":280,"revenue_str":"F23-D23-D19-B19-A8-D11-F13 ($120)","nodes":["F23-0","D23-0","D19-0","B19-0","A8-0","D11-0","F13-0"]}]},{"type":"dividend","entity":"GNR","entity_type":"corporation","id":1173,"user":605,"created_at":1684904354,"kind":"payout"}],"loaded":true,"created_at":1684890083,"updated_at":1684904358,"finished_at":1684904358} \ No newline at end of file diff --git a/spec/fixtures/1822_PNW/p19_merge_coal_company_1.json b/public/fixtures/1822PNW/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/1822PNW/p19_merge_coal_company_1.json diff --git a/spec/fixtures/1822_PNW/p19_merge_coal_company_2.json b/public/fixtures/1822PNW/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/1822PNW/p19_merge_coal_company_2.json diff --git a/spec/fixtures/1822_PNW/p19_merge_coal_company_3.json b/public/fixtures/1822PNW/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/1822PNW/p19_merge_coal_company_3.json diff --git a/spec/fixtures/1822_PNW/p19_merge_coal_company_4.json b/public/fixtures/1822PNW/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/1822PNW/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/public/fixtures/1846/19962.json b/public/fixtures/1846/19962.json new file mode 100755 index 0000000000..8b78dce3f9 --- /dev/null +++ b/public/fixtures/1846/19962.json @@ -0,0 +1 @@ +{"id":19962,"description":"Live - Open","user":{"id":512,"name":"DrAwesome"},"players":[{"id":4338,"name":"EAB"},{"id":3739,"name":"Random Guy"},{"id":512,"name":"DrAwesome"},{"id":762,"name":"Talbatross"}],"max_players":5,"title":"1846","settings":{"seed":1198354547,"unlisted":false,"optional_rules":["first_ed"]},"user_settings":null,"status":"finished","turn":5,"round":"Operating Round","acting":[4338,3739,512],"result":{"3739":1918,"512":1910,"4338":1828,"762":0},"actions":[{"type":"bid","entity":762,"entity_type":"player","id":1,"company":"LSL","price":40,"original_id":1},{"type":"bid","entity":512,"entity_type":"player","id":2,"company":"SC","price":40,"original_id":2},{"type":"bid","entity":3739,"entity_type":"player","id":3,"company":"Pass (4)","price":0,"original_id":3},{"type":"bid","entity":4338,"entity_type":"player","id":4,"company":"C&WI","price":60,"original_id":4},{"type":"bid","entity":762,"entity_type":"player","id":5,"company":"O&I","price":40,"original_id":5},{"type":"bid","entity":512,"entity_type":"player","id":6,"company":"Pass (1)","price":0,"original_id":6},{"type":"bid","entity":3739,"entity_type":"player","id":7,"company":"BIG4","price":40,"original_id":7},{"type":"bid","entity":4338,"entity_type":"player","id":8,"company":"MPC","price":60,"original_id":8},{"type":"bid","entity":762,"entity_type":"player","id":9,"company":"Pass (3)","price":0,"original_id":9},{"type":"bid","entity":512,"entity_type":"player","id":10,"company":"MS","price":60,"original_id":10},{"type":"bid","entity":3739,"entity_type":"player","id":11,"company":"Pass (2)","price":0,"original_id":11},{"type":"pass","entity":4338,"entity_type":"player","id":12,"original_id":14},{"type":"bid","entity":762,"entity_type":"player","id":13,"company":"MAIL","price":80,"original_id":15},{"type":"par","entity":4338,"entity_type":"player","id":14,"corporation":"NYC","share_price":"40,0,4","original_id":16},{"type":"par","entity":3739,"entity_type":"player","id":15,"corporation":"B&O","share_price":"60,0,6","original_id":17},{"type":"par","entity":512,"entity_type":"player","id":16,"corporation":"IC","share_price":"70,0,7","original_id":20},{"type":"message","entity":762,"entity_type":"player","id":17,"message":"sorry, still thinking","original_id":21},{"type":"par","entity":762,"entity_type":"player","id":18,"corporation":"ERIE","share_price":"50,0,5","original_id":22},{"type":"buy_shares","entity":4338,"entity_type":"player","id":19,"shares":["NYC_1"],"percent":10,"original_id":23},{"type":"buy_shares","entity":3739,"entity_type":"player","id":20,"shares":["B&O_1"],"percent":10,"original_id":24},{"type":"buy_shares","entity":512,"entity_type":"player","id":21,"shares":["IC_1"],"percent":10,"original_id":25},{"type":"buy_shares","entity":762,"entity_type":"player","id":22,"shares":["ERIE_1"],"percent":10,"original_id":26},{"type":"buy_shares","entity":4338,"entity_type":"player","id":23,"shares":["NYC_2"],"percent":10,"original_id":27},{"type":"buy_shares","entity":3739,"entity_type":"player","id":24,"shares":["B&O_2"],"percent":10,"original_id":28},{"type":"pass","entity":512,"entity_type":"player","id":25,"original_id":29},{"type":"buy_shares","entity":762,"entity_type":"player","id":26,"shares":["ERIE_2"],"percent":10,"original_id":30},{"type":"buy_shares","entity":4338,"entity_type":"player","id":27,"shares":["NYC_3"],"percent":10,"original_id":31},{"type":"buy_shares","entity":3739,"entity_type":"player","id":28,"shares":["B&O_3"],"percent":10,"original_id":32},{"type":"pass","entity":512,"entity_type":"player","id":29,"original_id":33},{"type":"buy_shares","entity":762,"entity_type":"player","id":30,"shares":["ERIE_3"],"percent":10,"original_id":34},{"type":"buy_shares","entity":4338,"entity_type":"player","id":31,"shares":["NYC_4"],"percent":10,"original_id":35},{"type":"pass","entity":3739,"entity_type":"player","id":32,"original_id":36},{"type":"pass","entity":512,"entity_type":"player","id":33,"original_id":37},{"type":"pass","entity":762,"entity_type":"player","id":34,"original_id":38},{"type":"sell_shares","entity":4338,"entity_type":"player","id":35,"shares":["NYC_1","NYC_2","NYC_3","NYC_4"],"percent":40,"original_id":39},{"type":"par","entity":4338,"entity_type":"player","id":36,"corporation":"PRR","share_price":"100,0,10","original_id":40},{"type":"pass","entity":3739,"entity_type":"player","id":37,"original_id":41},{"type":"pass","entity":512,"entity_type":"player","id":38,"original_id":42},{"type":"pass","entity":762,"entity_type":"player","id":39,"original_id":43},{"type":"assign","entity":"SC","entity_type":"company","id":40,"target":"MS","target_type":"minor","original_id":44},{"type":"assign","entity":"SC","entity_type":"company","id":41,"target":"D14","target_type":"hex","original_id":45},{"type":"lay_tile","entity":"MS","entity_type":"minor","id":42,"hex":"C13","tile":"7-0","rotation":4,"original_id":46},{"type":"lay_tile","entity":"MS","entity_type":"minor","id":43,"hex":"D14","tile":"5-0","rotation":1,"original_id":47},{"type":"run_routes","entity":"MS","entity_type":"minor","id":44,"routes":[{"train":"2-0","connections":[["D14","C13","C15"]]}],"original_id":48},{"type":"lay_tile","entity":"BIG4","entity_type":"minor","id":45,"hex":"G9","tile":"6-0","rotation":2,"original_id":53},{"type":"lay_tile","entity":"BIG4","entity_type":"minor","id":46,"hex":"G11","tile":"8-0","rotation":5,"original_id":54},{"type":"pass","entity":"NYC","entity_type":"corporation","id":47,"original_id":63},{"type":"buy_train","entity":"NYC","entity_type":"corporation","id":48,"train":"2-2","price":80,"variant":"2","original_id":64},{"type":"buy_train","entity":"NYC","entity_type":"corporation","id":49,"train":"2-3","price":80,"variant":"2","original_id":65},{"type":"buy_train","entity":"NYC","entity_type":"corporation","id":50,"train":"2-4","price":80,"variant":"2","original_id":66},{"type":"lay_tile","entity":"ERIE","entity_type":"corporation","id":51,"hex":"E19","tile":"9-0","rotation":1,"original_id":67},{"type":"lay_tile","entity":"ERIE","entity_type":"corporation","id":52,"hex":"E17","tile":"291-0","rotation":3,"original_id":68},{"type":"pass","entity":"ERIE","entity_type":"corporation","id":53,"original_id":69},{"type":"buy_train","entity":"ERIE","entity_type":"corporation","id":54,"train":"2-5","price":80,"variant":"2","original_id":70},{"type":"pass","entity":"ERIE","entity_type":"corporation","id":55,"original_id":71},{"type":"pass","entity":"ERIE","entity_type":"corporation","id":56,"original_id":72},{"type":"place_token","entity":"B&O","entity_type":"corporation","id":57,"city":"H12-0-0","slot":0,"original_id":73},{"type":"lay_tile","entity":"B&O","entity_type":"corporation","id":58,"hex":"H12","tile":"292-0","rotation":0,"original_id":76},{"type":"sell_shares","entity":"B&O","entity_type":"corporation","id":59,"shares":["B&O_4"],"percent":10,"share_price":50,"original_id":77},{"type":"pass","entity":"B&O","entity_type":"corporation","id":60,"original_id":78},{"type":"buy_train","entity":"B&O","entity_type":"corporation","id":61,"train":"2-6","price":80,"variant":"2","original_id":79},{"type":"buy_train","entity":"B&O","entity_type":"corporation","id":62,"train":"2-7","price":80,"variant":"2","original_id":80},{"type":"pass","entity":"B&O","entity_type":"corporation","id":63,"original_id":81},{"type":"pass","entity":"B&O","entity_type":"corporation","id":64,"original_id":82},{"type":"lay_tile","entity":"IC","entity_type":"corporation","id":65,"hex":"J4","tile":"9-1","rotation":0,"original_id":85},{"type":"lay_tile","entity":"IC","entity_type":"corporation","id":66,"hex":"H6","tile":"8-1","rotation":0,"original_id":86},{"type":"sell_shares","entity":"IC","entity_type":"corporation","id":67,"shares":["IC_2"],"percent":10,"share_price":60,"original_id":87},{"type":"pass","entity":"IC","entity_type":"corporation","id":68,"original_id":88},{"type":"buy_train","entity":"IC","entity_type":"corporation","id":69,"train":"4-0","price":160,"variant":"3/5","original_id":89},{"type":"pass","entity":"IC","entity_type":"corporation","id":70,"original_id":90},{"type":"pass","entity":"IC","entity_type":"corporation","id":71,"original_id":91},{"type":"sell_shares","entity":"PRR","entity_type":"corporation","id":72,"shares":["PRR_1","PRR_2"],"percent":20,"share_price":90,"original_id":92},{"type":"buy_company","entity":"PRR","entity_type":"corporation","id":73,"company":"C&WI","price":60,"original_id":93},{"type":"buy_company","entity":"PRR","entity_type":"corporation","id":74,"company":"MPC","price":60,"original_id":94},{"type":"place_token","entity":"C&WI","entity_type":"company","id":75,"city":"D6-0-3","slot":0,"original_id":95},{"type":"assign","entity":"MPC","entity_type":"company","id":76,"target":"D6","target_type":"hex","original_id":96},{"type":"lay_tile","entity":"PRR","entity_type":"corporation","id":77,"hex":"D6","tile":"298-0","rotation":0,"original_id":97},{"type":"lay_tile","entity":"PRR","entity_type":"corporation","id":78,"hex":"E7","tile":"9-2","rotation":2,"original_id":98},{"type":"pass","entity":"PRR","entity_type":"corporation","id":79,"original_id":99},{"type":"buy_train","entity":"PRR","entity_type":"corporation","id":80,"train":"2-2","price":1,"original_id":100},{"type":"buy_train","entity":"PRR","entity_type":"corporation","id":81,"train":"2-3","price":1,"original_id":101},{"type":"buy_train","entity":"PRR","entity_type":"corporation","id":82,"train":"2-4","price":1,"original_id":102},{"type":"buy_train","entity":"PRR","entity_type":"corporation","id":83,"train":"4-1","price":180,"variant":"4","original_id":103},{"type":"pass","entity":"PRR","entity_type":"corporation","id":84,"original_id":104},{"type":"pass","entity":"SC","entity_type":"company","id":85,"original_id":105},{"type":"lay_tile","entity":"MS","entity_type":"minor","id":86,"hex":"D12","tile":"9-3","rotation":1,"original_id":106},{"type":"lay_tile","entity":"MS","entity_type":"minor","id":87,"hex":"D10","tile":"9-4","rotation":1,"original_id":107},{"type":"run_routes","entity":"MS","entity_type":"minor","id":88,"routes":[{"train":"2-0","connections":[["D14","C13","C15"]]}],"original_id":108},{"type":"run_routes","entity":"BIG4","entity_type":"minor","id":89,"routes":[{"train":"2-1","connections":[["H12","G11","G9"]]}],"original_id":111},{"type":"lay_tile","entity":"PRR","entity_type":"corporation","id":90,"hex":"F8","tile":"9-5","rotation":2,"original_id":112},{"type":"lay_tile","entity":"PRR","entity_type":"corporation","id":91,"hex":"G9","tile":"15-0","rotation":1,"original_id":113},{"type":"run_routes","entity":"PRR","entity_type":"corporation","id":92,"routes":[{"train":"2-2","connections":[["C5","D6"]]},{"train":"2-3","connections":[["F20","F22"]]},{"train":"2-4","connections":[["F20","G21"]]},{"train":"4-1","connections":[["G9","G11","H12"],["G9","F8","E7","D6"]]}],"original_id":114},{"type":"dividend","entity":"PRR","entity_type":"corporation","id":93,"kind":"payout","original_id":115},{"type":"pass","entity":"PRR","entity_type":"corporation","id":94,"original_id":116},{"type":"buy_company","entity":"IC","entity_type":"corporation","id":95,"company":"MS","price":60,"original_id":117},{"type":"lay_tile","entity":"IC","entity_type":"corporation","id":96,"hex":"D8","tile":"9-6","rotation":1,"original_id":118},{"type":"lay_tile","entity":"IC","entity_type":"corporation","id":97,"hex":"C15","tile":"294-0","rotation":0,"original_id":119},{"type":"buy_company","entity":"IC","entity_type":"corporation","id":98,"company":"SC","price":17,"original_id":130},{"type":"assign","entity":"SC","entity_type":"company","id":99,"target":"C5","target_type":"hex","original_id":131},{"type":"pass","entity":"IC","entity_type":"corporation","id":100,"original_id":132},{"type":"run_routes","entity":"IC","entity_type":"corporation","id":101,"routes":[{"train":"4-0","connections":[["C5","D6"],["D6","D8","D10","D12","D14"],["C15","C13","D14"],["C15","C17"]]}],"original_id":133},{"type":"dividend","entity":"IC","entity_type":"corporation","id":102,"kind":"payout","original_id":134},{"type":"buy_train","entity":"IC","entity_type":"corporation","id":103,"train":"4-2","price":160,"variant":"3/5","original_id":135},{"type":"pass","entity":"IC","entity_type":"corporation","id":104,"original_id":136},{"type":"pass","entity":"IC","entity_type":"corporation","id":105,"original_id":137},{"type":"lay_tile","entity":"B&O","entity_type":"corporation","id":106,"hex":"I11","tile":"9-7","rotation":0,"original_id":138},{"type":"pass","entity":"B&O","entity_type":"corporation","id":107,"original_id":139},{"type":"run_routes","entity":"B&O","entity_type":"corporation","id":108,"routes":[{"train":"2-6","connections":[["G9","G11","H12"]]},{"train":"2-7","connections":[["J10","I11","H12"]]}],"original_id":140},{"type":"dividend","entity":"B&O","entity_type":"corporation","id":109,"kind":"payout","original_id":149},{"type":"pass","entity":"B&O","entity_type":"corporation","id":110,"original_id":150},{"type":"buy_company","entity":"B&O","entity_type":"corporation","id":111,"company":"BIG4","price":40,"original_id":151},{"type":"pass","entity":"B&O","entity_type":"corporation","id":112,"original_id":152},{"type":"lay_tile","entity":"ERIE","entity_type":"corporation","id":113,"hex":"D20","tile":"619-0","rotation":3,"original_id":153},{"type":"place_token","entity":"ERIE","entity_type":"corporation","id":114,"city":"619-0-0","slot":1,"original_id":154},{"type":"lay_tile","entity":"ERIE","entity_type":"corporation","id":115,"hex":"D18","tile":"8-2","rotation":4,"original_id":155},{"type":"buy_company","entity":"ERIE","entity_type":"corporation","id":116,"company":"LSL","price":40,"original_id":156},{"type":"lay_tile","entity":"LSL","entity_type":"company","id":117,"hex":"E17","tile":"294-1","rotation":0,"original_id":157},{"type":"run_routes","entity":"ERIE","entity_type":"corporation","id":118,"routes":[{"train":"2-5","connections":[["E17","D18","D20"]]}],"original_id":158},{"type":"dividend","entity":"ERIE","entity_type":"corporation","id":119,"kind":"payout","original_id":159},{"type":"buy_company","entity":"ERIE","entity_type":"corporation","id":120,"company":"O&I","price":40,"original_id":160},{"type":"pass","entity":"ERIE","entity_type":"corporation","id":121,"original_id":161},{"type":"pass","entity":"ERIE","entity_type":"corporation","id":122,"original_id":162},{"type":"message","entity":3739,"entity_type":"player","id":123,"message":"been a long time since I played","original_id":163},{"type":"message","entity":3739,"entity_type":"player","id":124,"message":"shares in market affect stock price?","original_id":164},{"type":"message","entity":762,"entity_type":"player","id":125,"message":"at the end of the SR","original_id":165},{"type":"message","entity":762,"entity_type":"player","id":126,"message":"drops by 1 if any shares are in market","original_id":166},{"type":"message","entity":762,"entity_type":"player","id":127,"message":"also drops by one if the director sells","original_id":167},{"type":"buy_shares","entity":3739,"entity_type":"player","id":128,"shares":["B&O_4"],"percent":10,"original_id":168},{"type":"buy_shares","entity":512,"entity_type":"player","id":129,"shares":["IC_2"],"percent":10,"original_id":169},{"type":"buy_shares","entity":762,"entity_type":"player","id":130,"shares":["IC_3"],"percent":10,"original_id":170},{"type":"buy_shares","entity":4338,"entity_type":"player","id":131,"shares":["PRR_1"],"percent":10,"original_id":171},{"type":"buy_shares","entity":3739,"entity_type":"player","id":132,"shares":["IC_4"],"percent":10,"original_id":172},{"type":"buy_shares","entity":512,"entity_type":"player","id":133,"shares":["IC_5"],"percent":10,"original_id":173},{"type":"buy_shares","entity":762,"entity_type":"player","id":134,"shares":["B&O_5"],"percent":10,"original_id":174},{"type":"buy_shares","entity":4338,"entity_type":"player","id":135,"shares":["IC_6"],"percent":10,"original_id":175},{"type":"pass","entity":3739,"entity_type":"player","id":136,"original_id":176},{"type":"buy_shares","entity":512,"entity_type":"player","id":137,"shares":["IC_7"],"percent":10,"original_id":177},{"type":"pass","entity":762,"entity_type":"player","id":138,"original_id":178},{"type":"pass","entity":4338,"entity_type":"player","id":139,"original_id":179},{"type":"pass","entity":3739,"entity_type":"player","id":140,"original_id":180},{"type":"pass","entity":512,"entity_type":"player","id":141,"original_id":181},{"type":"place_token","entity":"PRR","entity_type":"corporation","id":142,"city":"E11-1-0","slot":0,"original_id":182},{"type":"lay_tile","entity":"PRR","entity_type":"corporation","id":143,"hex":"E11","tile":"5-1","rotation":2,"original_id":183},{"type":"lay_tile","entity":"PRR","entity_type":"corporation","id":144,"hex":"D10","tile":"23-0","rotation":1,"original_id":186},{"type":"buy_shares","entity":"PRR","entity_type":"corporation","id":145,"shares":["PRR_2"],"percent":10,"share_price":112,"original_id":187},{"type":"run_routes","entity":"PRR","entity_type":"corporation","id":146,"routes":[{"train":"2-2","connections":[["C5","D6"]]},{"train":"2-3","connections":[["D6","D8","D10","E11"]]},{"train":"2-4","connections":[["F20","G21"]]},{"train":"4-1","connections":[["G9","G11","H12"],["G9","F8","E7","D6"]]}],"original_id":188},{"type":"dividend","entity":"PRR","entity_type":"corporation","id":147,"kind":"payout","original_id":189},{"type":"pass","entity":"PRR","entity_type":"corporation","id":148,"original_id":190},{"type":"lay_tile","entity":"IC","entity_type":"corporation","id":149,"hex":"D14","tile":"619-1","rotation":5,"original_id":191},{"type":"lay_tile","entity":"IC","entity_type":"corporation","id":150,"hex":"E15","tile":"8-3","rotation":2,"original_id":192},{"type":"place_token","entity":"IC","entity_type":"corporation","id":151,"city":"619-1-0","slot":1,"original_id":193},{"type":"assign","entity":"SC","entity_type":"company","id":152,"target":"D14","target_type":"hex","original_id":194},{"type":"run_routes","entity":"IC","entity_type":"corporation","id":153,"routes":[{"train":"4-0","connections":[["C5","D6"],["D14","D12","D10","D8","D6"],["D14","C13","C15"],["C15","C17"]]},{"train":"2-0","connections":[["D14","C15"]]},{"train":"4-2","connections":[["E17","D18","D20"],["D14","E15","E17"]]}],"original_id":195},{"type":"dividend","entity":"IC","entity_type":"corporation","id":154,"kind":"payout","original_id":196},{"type":"buy_train","entity":"IC","entity_type":"corporation","id":155,"train":"4-3","price":180,"variant":"4","original_id":197},{"type":"pass","entity":"IC","entity_type":"corporation","id":156,"original_id":198},{"type":"lay_tile","entity":"B&O","entity_type":"corporation","id":157,"hex":"H12","tile":"295-0","rotation":0,"original_id":199},{"type":"pass","entity":"B&O","entity_type":"corporation","id":158,"original_id":200},{"type":"run_routes","entity":"B&O","entity_type":"corporation","id":159,"routes":[{"train":"2-6","connections":[["H12","G11","G9"]]},{"train":"2-7","connections":[["H12","I11","J10"]]},{"train":"2-1","connections":[["G9","F8","E7","D6"]]}],"original_id":201},{"type":"dividend","entity":"B&O","entity_type":"corporation","id":160,"kind":"payout","original_id":204},{"type":"pass","entity":"B&O","entity_type":"corporation","id":161,"original_id":207},{"type":"pass","entity":"B&O","entity_type":"corporation","id":162,"original_id":208},{"type":"message","entity":3739,"entity_type":"player","id":163,"message":"no rust 2day :D","original_id":210},{"type":"sell_shares","entity":"ERIE","entity_type":"corporation","id":164,"shares":["ERIE_4","ERIE_5"],"percent":20,"share_price":50,"original_id":218},{"type":"place_token","entity":"ERIE","entity_type":"corporation","id":165,"city":"619-1-0","slot":1,"original_id":219},{"type":"lay_tile","entity":"ERIE","entity_type":"corporation","id":166,"hex":"D8","tile":"23-1","rotation":4,"original_id":220},{"type":"lay_tile","entity":"O&I","entity_type":"company","id":167,"hex":"F16","tile":"8-4","rotation":1,"original_id":221},{"type":"lay_tile","entity":"O&I","entity_type":"company","id":168,"hex":"F14","tile":"8-5","rotation":4,"original_id":222},{"type":"pass","entity":"ERIE","entity_type":"corporation","id":169,"original_id":223},{"type":"run_routes","entity":"ERIE","entity_type":"corporation","id":170,"routes":[{"train":"2-5","connections":[["E17","D18","D20"]]}],"original_id":224},{"type":"dividend","entity":"ERIE","entity_type":"corporation","id":171,"kind":"payout","original_id":227},{"type":"buy_company","entity":"ERIE","entity_type":"corporation","id":172,"company":"MAIL","price":64,"original_id":228},{"type":"lay_tile","entity":"PRR","entity_type":"corporation","id":173,"hex":"E11","tile":"619-2","rotation":0,"original_id":229},{"type":"lay_tile","entity":"PRR","entity_type":"corporation","id":174,"hex":"F10","tile":"9-8","rotation":0,"original_id":230},{"type":"place_token","entity":"PRR","entity_type":"corporation","id":175,"city":"15-0-0","slot":1,"original_id":231},{"type":"run_routes","entity":"PRR","entity_type":"corporation","id":176,"routes":[{"train":"2-2","connections":[["C5","D6"]]},{"train":"2-3","connections":[["E11","D10","D8","D6"]]},{"train":"2-4","connections":[["G9","F10","E11"]]},{"train":"4-1","connections":[["H12","I11","J10"],["H12","G11","G9"],["G9","F8","E7","D6"]]}],"original_id":232},{"type":"dividend","entity":"PRR","entity_type":"corporation","id":177,"kind":"payout","original_id":233},{"type":"lay_tile","entity":"IC","entity_type":"corporation","id":178,"hex":"B16","tile":"6-1","rotation":4,"original_id":246},{"type":"place_token","entity":"IC","entity_type":"corporation","id":179,"city":"298-0-2","slot":0,"original_id":247},{"type":"pass","entity":"IC","entity_type":"corporation","id":180,"original_id":248},{"type":"run_routes","entity":"IC","entity_type":"corporation","id":181,"routes":[{"train":"4-0","connections":[["B16","C15"],["B16","B18"]]},{"train":"2-0","connections":[["D14","C15"]]},{"train":"4-2","connections":[["C15","C17"],["D14","C13","C15"],["D14","D12","D10","D8","D6"],["C5","D6"]]},{"train":"4-3","connections":[["D20","C21"],["E17","D18","D20"],["D14","E15","E17"]]}],"original_id":249},{"type":"dividend","entity":"IC","entity_type":"corporation","id":182,"kind":"payout","original_id":250},{"type":"lay_tile","entity":"B&O","entity_type":"corporation","id":183,"hex":"H10","tile":"8-6","rotation":4,"original_id":252},{"type":"lay_tile","entity":"B&O","entity_type":"corporation","id":184,"hex":"I9","tile":"8-7","rotation":3,"original_id":253},{"type":"pass","entity":"B&O","entity_type":"corporation","id":185,"original_id":254},{"type":"run_routes","entity":"B&O","entity_type":"corporation","id":186,"routes":[{"train":"2-6","connections":[["H12","G11","G9"]]},{"train":"2-7","connections":[["H12","I11","J10"]]},{"train":"2-1","connections":[["H12","H10","I9","J10"]]}],"original_id":255},{"type":"dividend","entity":"B&O","entity_type":"corporation","id":187,"kind":"payout","original_id":256},{"type":"buy_train","entity":"B&O","entity_type":"corporation","id":188,"train":"4-4","price":180,"variant":"4","original_id":257},{"type":"pass","entity":"ERIE","entity_type":"corporation","id":189,"original_id":258},{"type":"run_routes","entity":"ERIE","entity_type":"corporation","id":190,"routes":[{"train":"2-5","connections":[["E17","D18","D20"]]}],"original_id":259},{"type":"dividend","entity":"ERIE","entity_type":"corporation","id":191,"kind":"payout","original_id":260},{"type":"pass","entity":"ERIE","entity_type":"corporation","id":192,"original_id":261},{"type":"sell_shares","entity":762,"entity_type":"player","id":193,"shares":["B&O_5"],"percent":10,"original_id":266},{"type":"sell_shares","entity":762,"entity_type":"player","id":194,"shares":["ERIE_1","ERIE_2"],"percent":20,"original_id":267},{"type":"par","entity":762,"entity_type":"player","id":195,"corporation":"GT","share_price":"150,0,14","original_id":268},{"type":"message","entity":3739,"entity_type":"player","id":196,"message":"what's the operation order again?","original_id":269},{"type":"buy_shares","entity":4338,"entity_type":"player","id":197,"shares":["PRR_3"],"percent":10,"original_id":270},{"type":"message","entity":3739,"entity_type":"player","id":198,"message":"which corp operates first?","original_id":271},{"type":"message","entity":4338,"entity_type":"player","id":199,"message":"by stock price, high to low, right?","original_id":272},{"type":"buy_shares","entity":3739,"entity_type":"player","id":200,"shares":["PRR_4"],"percent":10,"original_id":273},{"type":"message","entity":762,"entity_type":"player","id":201,"message":"high to low","original_id":274},{"type":"message","entity":762,"entity_type":"player","id":202,"message":"it's only low to high in the 1st OR","original_id":275},{"type":"buy_shares","entity":512,"entity_type":"player","id":203,"shares":["PRR_5"],"percent":10,"original_id":276},{"type":"buy_shares","entity":762,"entity_type":"player","id":204,"shares":["PRR_6"],"percent":10,"original_id":277},{"type":"buy_shares","entity":4338,"entity_type":"player","id":205,"shares":["PRR_7"],"percent":10,"original_id":278},{"type":"buy_shares","entity":3739,"entity_type":"player","id":206,"shares":["PRR_8"],"percent":10,"original_id":279},{"type":"buy_shares","entity":512,"entity_type":"player","id":207,"shares":["PRR_2"],"percent":10,"original_id":280},{"type":"sell_shares","entity":762,"entity_type":"player","id":208,"shares":["PRR_6"],"percent":10,"original_id":281},{"type":"buy_shares","entity":762,"entity_type":"player","id":209,"shares":["GT_1"],"percent":10,"original_id":282},{"type":"pass","entity":4338,"entity_type":"player","id":210,"original_id":283},{"type":"sell_shares","entity":3739,"entity_type":"player","id":211,"shares":["B&O_1"],"percent":10,"original_id":292},{"type":"buy_shares","entity":3739,"entity_type":"player","id":212,"shares":["PRR_6"],"percent":10,"original_id":293},{"type":"buy_shares","entity":512,"entity_type":"player","id":213,"shares":["B&O_6"],"percent":10,"original_id":294},{"type":"buy_shares","entity":762,"entity_type":"player","id":214,"shares":["GT_2"],"percent":10,"original_id":295},{"type":"pass","entity":4338,"entity_type":"player","id":215,"original_id":296},{"type":"message","entity":3739,"entity_type":"player","id":216,"message":"so is erie going to liquidate?","original_id":297},{"type":"message","entity":762,"entity_type":"player","id":217,"message":"probably not","original_id":298},{"type":"message","entity":762,"entity_type":"player","id":218,"message":"it has a friend","original_id":299},{"type":"message","entity":3739,"entity_type":"player","id":219,"message":"how does that work again?","original_id":300},{"type":"buy_shares","entity":3739,"entity_type":"player","id":220,"shares":["ERIE_6"],"percent":10,"original_id":301},{"type":"buy_shares","entity":512,"entity_type":"player","id":221,"shares":["B&O_7"],"percent":10,"original_id":302},{"type":"pass","entity":762,"entity_type":"player","id":222,"original_id":303},{"type":"pass","entity":4338,"entity_type":"player","id":223,"original_id":304},{"type":"pass","entity":3739,"entity_type":"player","id":224,"original_id":305},{"type":"buy_shares","entity":512,"entity_type":"player","id":225,"shares":["ERIE_7"],"percent":10,"original_id":306},{"type":"pass","entity":762,"entity_type":"player","id":226,"original_id":307},{"type":"pass","entity":4338,"entity_type":"player","id":227,"original_id":308},{"type":"pass","entity":3739,"entity_type":"player","id":228,"original_id":309},{"type":"sell_shares","entity":512,"entity_type":"player","id":229,"shares":["ERIE_7"],"percent":10,"original_id":310},{"type":"sell_shares","entity":512,"entity_type":"player","id":230,"shares":["B&O_6","B&O_7"],"percent":20,"original_id":311},{"type":"sell_shares","entity":512,"entity_type":"player","id":231,"shares":["PRR_5","PRR_2"],"percent":20,"original_id":312},{"type":"sell_shares","entity":512,"entity_type":"player","id":232,"shares":["IC_1"],"percent":10,"original_id":313},{"type":"buy_shares","entity":512,"entity_type":"player","id":233,"shares":["GT_3"],"percent":10,"original_id":314},{"type":"pass","entity":762,"entity_type":"player","id":234,"original_id":315},{"type":"pass","entity":4338,"entity_type":"player","id":235,"original_id":316},{"type":"pass","entity":3739,"entity_type":"player","id":236,"original_id":317},{"type":"buy_shares","entity":512,"entity_type":"player","id":237,"shares":["GT_4"],"percent":10,"original_id":318},{"type":"pass","entity":762,"entity_type":"player","id":238,"original_id":319},{"type":"pass","entity":4338,"entity_type":"player","id":239,"original_id":320},{"type":"pass","entity":3739,"entity_type":"player","id":240,"original_id":321},{"type":"buy_shares","entity":512,"entity_type":"player","id":241,"shares":["GT_5"],"percent":10,"original_id":322},{"type":"message","entity":3739,"entity_type":"player","id":242,"message":"talb buy 1 share GT","original_id":323},{"type":"message","entity":3739,"entity_type":"player","id":243,"message":"i'll buy other","original_id":324},{"type":"message","entity":762,"entity_type":"player","id":244,"message":"I can't","original_id":325},{"type":"message","entity":3739,"entity_type":"player","id":245,"message":"sell IC+Erie","original_id":326},{"type":"message","entity":4338,"entity_type":"player","id":246,"message":"he can't sell more erie","original_id":327},{"type":"message","entity":762,"entity_type":"player","id":247,"message":"can't sell Erie","original_id":328},{"type":"message","entity":3739,"entity_type":"player","id":248,"message":"ah ok","original_id":329},{"type":"pass","entity":762,"entity_type":"player","id":249,"original_id":330},{"type":"pass","entity":4338,"entity_type":"player","id":250,"original_id":331},{"type":"pass","entity":3739,"entity_type":"player","id":251,"original_id":332},{"type":"buy_shares","entity":512,"entity_type":"player","id":252,"shares":["GT_6"],"percent":10,"original_id":333},{"type":"pass","entity":762,"entity_type":"player","id":253,"original_id":334},{"type":"pass","entity":4338,"entity_type":"player","id":254,"original_id":335},{"type":"pass","entity":3739,"entity_type":"player","id":255,"original_id":336},{"type":"sell_shares","entity":512,"entity_type":"player","id":256,"shares":["IC_2"],"percent":10,"original_id":337},{"type":"buy_shares","entity":512,"entity_type":"player","id":257,"shares":["GT_7"],"percent":10,"original_id":338},{"type":"pass","entity":762,"entity_type":"player","id":258,"original_id":339},{"type":"pass","entity":4338,"entity_type":"player","id":259,"original_id":340},{"type":"pass","entity":3739,"entity_type":"player","id":260,"original_id":341},{"type":"pass","entity":512,"entity_type":"player","id":261,"original_id":342},{"type":"lay_tile","entity":"GT","entity_type":"corporation","id":262,"hex":"C13","tile":"29-0","rotation":4,"original_id":343},{"type":"place_token","entity":"GT","entity_type":"corporation","id":263,"city":"294-0-0","slot":1,"original_id":344},{"type":"sell_shares","entity":"GT","entity_type":"corporation","id":264,"shares":["GT_8"],"percent":10,"share_price":137,"original_id":347},{"type":"pass","entity":"GT","entity_type":"corporation","id":265,"original_id":348},{"type":"buy_train","entity":"GT","entity_type":"corporation","id":266,"train":"4-0","price":200,"original_id":355},{"type":"buy_train","entity":"GT","entity_type":"corporation","id":267,"train":"5-0","price":500,"variant":"5","original_id":356},{"type":"buy_train","entity":"GT","entity_type":"corporation","id":268,"train":"5-1","price":500,"variant":"5","original_id":357},{"type":"lay_tile","entity":"PRR","entity_type":"corporation","id":269,"hex":"D6","tile":"299-0","rotation":0,"original_id":358},{"type":"message","entity":3739,"entity_type":"player","id":270,"message":"So it seems much better to use big 10 as teleport than to teleport for $100","original_id":365},{"type":"place_token","entity":"PRR","entity_type":"corporation","id":271,"city":"295-0-0","slot":1,"original_id":366},{"type":"lay_tile","entity":"PRR","entity_type":"corporation","id":272,"hex":"E13","tile":"9-9","rotation":1,"original_id":367},{"type":"buy_shares","entity":"PRR","entity_type":"corporation","id":273,"shares":["PRR_5","PRR_2"],"percent":20,"share_price":150,"original_id":368},{"type":"run_routes","entity":"PRR","entity_type":"corporation","id":274,"routes":[{"train":"2-2","connections":[["E11","D10","D8","D6"]]},{"train":"2-3","connections":[["C5","D6"]]},{"train":"2-4","connections":[["H12","I11","J10"]]},{"train":"4-1","connections":[["H12","H10","I9","J10"],["H12","G11","G9"],["D6","E7","F8","G9"]]}],"original_id":369},{"type":"dividend","entity":"PRR","entity_type":"corporation","id":275,"kind":"half","original_id":370},{"type":"buy_train","entity":"PRR","entity_type":"corporation","id":276,"train":"5-2","price":450,"variant":"4/6","original_id":371},{"type":"buy_train","entity":"PRR","entity_type":"corporation","id":277,"train":"5-3","price":500,"variant":"5","original_id":372},{"type":"message","entity":3739,"entity_type":"player","id":278,"message":"think I'm like 30 short","original_id":383},{"type":"message","entity":3739,"entity_type":"player","id":279,"message":"oh not if I issue","original_id":384},{"type":"sell_shares","entity":"B&O","entity_type":"corporation","id":280,"shares":["B&O_8"],"percent":10,"share_price":80,"original_id":385},{"type":"lay_tile","entity":"B&O","entity_type":"corporation","id":281,"hex":"H12","tile":"297-0","rotation":0,"original_id":386},{"type":"pass","entity":"B&O","entity_type":"corporation","id":282,"original_id":387},{"type":"run_routes","entity":"B&O","entity_type":"corporation","id":283,"routes":[{"train":"2-6","connections":[["D6","E7","F8","G9"]]},{"train":"2-7","connections":[["H12","I11","J10"]]},{"train":"2-1","connections":[["H12","H10","I9","J10"]]},{"train":"4-4","connections":[["E11","D10","D8","D6"],["G9","F10","E11"],["H12","G11","G9"]]}],"original_id":388},{"type":"dividend","entity":"B&O","entity_type":"corporation","id":284,"kind":"withhold","original_id":389},{"type":"buy_train","entity":"B&O","entity_type":"corporation","id":285,"train":"6-0","price":800,"variant":"6","original_id":390},{"type":"pass","entity":"B&O","entity_type":"corporation","id":286,"original_id":391},{"type":"lay_tile","entity":"IC","entity_type":"corporation","id":287,"hex":"D12","tile":"20-0","rotation":0,"original_id":392},{"type":"buy_shares","entity":"IC","entity_type":"corporation","id":288,"shares":["IC_1","IC_2"],"percent":20,"share_price":100,"original_id":393},{"type":"pass","entity":"IC","entity_type":"corporation","id":289,"original_id":394},{"type":"run_routes","entity":"IC","entity_type":"corporation","id":290,"routes":[{"train":"4-2","connections":[["C15","C17"],["C15","C13","D14"],["D6","D8","D10","D12","D14"],["C5","D6"]]},{"train":"4-3","connections":[["E17","D18","D20"],["D14","E15","E17"],["D14","C15"]]}],"original_id":395},{"type":"dividend","entity":"IC","entity_type":"corporation","id":291,"kind":"half","original_id":396},{"type":"buy_train","entity":"IC","entity_type":"corporation","id":292,"train":"5-0","price":20,"original_id":397},{"type":"pass","entity":"IC","entity_type":"corporation","id":293,"original_id":398},{"type":"buy_shares","entity":"ERIE","entity_type":"corporation","id":294,"shares":["ERIE_4","ERIE_5","ERIE_1"],"percent":30,"share_price":70,"original_id":399},{"type":"lay_tile","entity":"ERIE","entity_type":"corporation","id":295,"hex":"D20","tile":"611-0","rotation":3,"original_id":400},{"type":"sell_shares","entity":"ERIE","entity_type":"corporation","id":296,"shares":["ERIE_8","ERIE_4"],"percent":20,"share_price":20,"original_id":401},{"type":"sell_shares","entity":762,"entity_type":"player","id":297,"shares":["GT_1","GT_2","GT_3","GT_4"],"percent":40,"original_id":402},{"type":"sell_shares","entity":762,"entity_type":"player","id":298,"shares":["IC_3"],"percent":10,"original_id":403},{"type":"sell_shares","entity":762,"entity_type":"player","id":299,"shares":["ERIE_3"],"percent":10,"original_id":404},{"type":"bankrupt","entity":"ERIE","entity_type":"corporation","id":300,"original_id":405},{"type":"lay_tile","entity":"PRR","entity_type":"corporation","id":301,"hex":"E15","tile":"23-2","rotation":4,"original_id":406},{"type":"message","entity":3739,"entity_type":"player","id":302,"message":"gg talb","original_id":407},{"type":"message","entity":762,"entity_type":"player","id":303,"message":"gg]","original_id":408},{"type":"lay_tile","entity":"PRR","entity_type":"corporation","id":304,"hex":"G13","tile":"57-0","rotation":0,"original_id":409},{"type":"pass","entity":"PRR","entity_type":"corporation","id":305,"original_id":410},{"type":"run_routes","entity":"PRR","entity_type":"corporation","id":306,"routes":[{"train":"4-1","connections":[["H12","H10","I9","J10"],["H12","G11","G9"],["D6","E7","F8","G9"]]},{"train":"5-2","connections":[["D20","D22"],["D20","D18","E17"],["E17","E15","E13","E11"],["D6","C7","D8","D10","E11"],["C5","D6"]]},{"train":"5-3","connections":[["H12","I11","J10"],["G13","H12"],["G13","F14","F16","E17"],["E17","E19","E21"]]}],"original_id":411},{"type":"dividend","entity":"PRR","entity_type":"corporation","id":307,"kind":"payout","original_id":412},{"type":"place_token","entity":"GT","entity_type":"corporation","id":308,"city":"619-2-0","slot":1,"original_id":413},{"type":"lay_tile","entity":"GT","entity_type":"corporation","id":309,"hex":"C15","tile":"297-1","rotation":0,"original_id":414},{"type":"pass","entity":"GT","entity_type":"corporation","id":310,"original_id":415},{"type":"run_routes","entity":"GT","entity_type":"corporation","id":311,"routes":[{"train":"4-0","connections":[["C15","B16"],["B16","B18"]]},{"train":"5-1","connections":[["C5","D6"],["D6","C7","D8","D10","E11"],["C15","C13","D12","E11"],["C15","C17"]]}],"original_id":416},{"type":"dividend","entity":"GT","entity_type":"corporation","id":312,"kind":"payout","original_id":417},{"type":"pass","entity":"GT","entity_type":"corporation","id":313,"original_id":418},{"type":"buy_shares","entity":"IC","entity_type":"corporation","id":314,"shares":["IC_3"],"percent":10,"share_price":124,"original_id":419},{"type":"lay_tile","entity":"IC","entity_type":"corporation","id":315,"hex":"C15","tile":"290-0","rotation":0,"original_id":420},{"type":"pass","entity":"IC","entity_type":"corporation","id":316,"original_id":421},{"type":"run_routes","entity":"IC","entity_type":"corporation","id":317,"routes":[{"train":"5-0","connections":[["C5","D6"],["D6","D8","D10","D12","D14"],["C15","D14"],["C15","C17"]]}],"original_id":422},{"type":"dividend","entity":"IC","entity_type":"corporation","id":318,"kind":"payout","original_id":423},{"type":"pass","entity":"IC","entity_type":"corporation","id":319,"original_id":424},{"type":"message","entity":3739,"entity_type":"player","id":320,"message":"best to ignore chicago run","original_id":434},{"type":"message","entity":3739,"entity_type":"player","id":321,"message":"focus on local optima","original_id":435},{"type":"message","entity":3739,"entity_type":"player","id":322,"message":"as only 3 ORs remain","original_id":436},{"type":"message","entity":3739,"entity_type":"player","id":323,"message":"or less","original_id":437},{"type":"lay_tile","entity":"B&O","entity_type":"corporation","id":324,"hex":"G13","tile":"15-1","rotation":0,"original_id":439},{"type":"pass","entity":"B&O","entity_type":"corporation","id":325,"original_id":440},{"type":"run_routes","entity":"B&O","entity_type":"corporation","id":326,"routes":[{"train":"4-4","connections":[["H12","H10","I9","J10"],["H12","G11","G9"],["D6","E7","F8","G9"]]},{"train":"6-0","connections":[["D20","D22"],["D20","D18","E17"],["G13","F14","F16","E17"],["G13","H12"],["H12","I11","J10"]]}],"original_id":441},{"type":"dividend","entity":"B&O","entity_type":"corporation","id":327,"kind":"payout","original_id":442},{"type":"pass","entity":"B&O","entity_type":"corporation","id":328,"original_id":443},{"type":"buy_shares","entity":4338,"entity_type":"player","id":329,"shares":["PRR_5"],"percent":10,"original_id":444},{"type":"end_game","entity":3739,"entity_type":"player","id":330,"original_id":445}],"loaded":true,"created_at":1608781803,"updated_at":1608790489} \ No newline at end of file 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/public/fixtures/1846/hs_gcumggit_1595777670.json b/public/fixtures/1846/hs_gcumggit_1595777670.json new file mode 100644 index 0000000000..d1cc272e1e --- /dev/null +++ b/public/fixtures/1846/hs_gcumggit_1595777670.json @@ -0,0 +1 @@ +{"status":"finished","actions":[{"type":"bid","entity":"Player 3","entity_type":"player","id":1,"company":"BIG4","price":40,"original_id":1},{"type":"bid","entity":"Player 2","entity_type":"player","id":2,"company":"O&I","price":40,"original_id":2},{"type":"bid","entity":"Player 1","entity_type":"player","id":3,"company":"Pass (2)","price":0,"original_id":3},{"type":"bid","entity":"Player 3","entity_type":"player","id":4,"company":"SC","price":40,"original_id":4},{"type":"bid","entity":"Player 2","entity_type":"player","id":5,"company":"MS","price":60,"original_id":5},{"type":"bid","entity":"Player 1","entity_type":"player","id":6,"company":"Pass (3)","price":0,"original_id":6},{"type":"bid","entity":"Player 3","entity_type":"player","id":7,"company":"C&WI","price":60,"original_id":7},{"type":"bid","entity":"Player 2","entity_type":"player","id":8,"company":"MAIL","price":80,"original_id":8},{"type":"par","entity":"Player 1","entity_type":"player","id":9,"corporation":"NYC","share_price":"80,0,8","original_id":9},{"type":"par","entity":"Player 2","entity_type":"player","id":10,"corporation":"B&O","share_price":"70,0,7","original_id":10},{"type":"buy_shares","entity":"Player 3","entity_type":"player","id":11,"shares":["NYC_1"],"original_id":11},{"type":"buy_shares","entity":"Player 1","entity_type":"player","id":12,"shares":["NYC_2"],"original_id":12},{"type":"buy_shares","entity":"Player 3","entity_type":"player","id":13,"shares":["NYC_3"],"original_id":13},{"type":"buy_shares","entity":"Player 1","entity_type":"player","id":14,"shares":["NYC_4"],"original_id":14},{"type":"buy_shares","entity":"Player 1","entity_type":"player","id":15,"shares":["NYC_5"],"original_id":15},{"type":"pass","entity":"Player 1","entity_type":"player","id":16,"original_id":16},{"type":"pass","entity":"SC","entity_type":"company","id":17,"original_id":17},{"type":"pass","entity":"MS","entity_type":"minor","id":18,"original_id":18},{"type":"pass","entity":"BIG4","entity_type":"minor","id":19,"original_id":19},{"type":"buy_company","entity":"B&O","entity_type":"corporation","id":20,"company":"MS","price":1,"original_id":20},{"type":"buy_company","entity":"B&O","entity_type":"corporation","id":21,"company":"BIG4","price":1,"original_id":21},{"type":"lay_tile","entity":"B&O","entity_type":"corporation","id":22,"hex":"C13","tile":"7-0","rotation":4,"original_id":23},{"type":"lay_tile","entity":"B&O","entity_type":"corporation","id":23,"hex":"D14","tile":"5-0","rotation":1,"original_id":24},{"type":"pass","entity":"B&O","entity_type":"corporation","id":24,"original_id":25},{"type":"pass","entity":"B&O","entity_type":"corporation","id":25,"original_id":26},{"type":"pass","entity":"B&O","entity_type":"corporation","id":26,"original_id":27},{"type":"sell_shares","entity":"NYC","entity_type":"corporation","id":27,"shares":["NYC_6","NYC_7","NYC_8"],"percent":30,"share_price":70,"original_id":28},{"type":"pass","entity":"NYC","entity_type":"corporation","id":28,"original_id":29},{"type":"buy_train","entity":"NYC","entity_type":"corporation","id":29,"train":"2-0","price":769,"original_id":30},{"type":"buy_company","entity":"NYC","entity_type":"corporation","id":30,"company":"SC","price":1,"original_id":31},{"type":"run_routes","entity":"NYC","entity_type":"corporation","id":31,"routes":[],"original_id":32},{"type":"pass","entity":"NYC","entity_type":"corporation","id":32,"original_id":33},{"type":"pass","entity":"NYC","entity_type":"corporation","id":33,"original_id":34},{"type":"pass","entity":"B&O","entity_type":"corporation","id":34,"original_id":36},{"type":"run_routes","entity":"B&O","entity_type":"corporation","id":35,"routes":[{"train":"2-1","connections":[["C15","C13","D14"]]}],"original_id":37},{"type":"dividend","entity":"B&O","entity_type":"corporation","id":36,"kind":"payout","original_id":38},{"type":"buy_train","entity":"B&O","entity_type":"corporation","id":37,"train":"2-0","price":1,"original_id":39},{"type":"pass","entity":"B&O","entity_type":"corporation","id":38,"original_id":40},{"type":"pass","entity":"B&O","entity_type":"corporation","id":39,"original_id":41},{"type":"pass","entity":"Player 3","entity_type":"player","id":40,"original_id":42},{"type":"sell_shares","entity":"Player 1","entity_type":"player","id":41,"shares":["NYC_2"],"percent":10,"original_id":43},{"type":"pass","entity":"Player 3","entity_type":"player","id":42,"original_id":46},{"type":"sell_shares","entity":"Player 1","entity_type":"player","id":43,"shares":["NYC_4"],"percent":10,"original_id":47},{"type":"pass","entity":"Player 1","entity_type":"player","id":44,"original_id":48},{"type":"buy_shares","entity":"Player 2","entity_type":"player","id":45,"shares":["NYC_6"],"original_id":49},{"type":"pass","entity":"Player 3","entity_type":"player","id":46,"original_id":52},{"type":"sell_shares","entity":"Player 1","entity_type":"player","id":47,"shares":["NYC_5"],"percent":10,"original_id":53},{"type":"pass","entity":"Player 1","entity_type":"player","id":48,"original_id":54},{"type":"pass","entity":"Player 3","entity_type":"player","id":49,"original_id":55},{"type":"pass","entity":"Player 1","entity_type":"player","id":50,"original_id":56},{"type":"pass","entity":"B&O","entity_type":"corporation","id":51,"original_id":64},{"type":"run_routes","entity":"B&O","entity_type":"corporation","id":52,"routes":[{"train":"2-1","connections":[["C15","C13","D14"]]},{"train":"2-0","connections":[["H20","G19"]]}],"original_id":65},{"type":"dividend","entity":"B&O","entity_type":"corporation","id":53,"kind":"payout","original_id":66},{"type":"buy_train","entity":"B&O","entity_type":"corporation","id":54,"train":"2-2","price":80,"original_id":67},{"type":"buy_train","entity":"B&O","entity_type":"corporation","id":55,"train":"2-3","price":80,"original_id":68},{"type":"pass","entity":"B&O","entity_type":"corporation","id":56,"original_id":69},{"type":"pass","entity":"NYC","entity_type":"corporation","id":57,"original_id":70},{"type":"buy_train","entity":"NYC","entity_type":"corporation","id":58,"train":"2-0","price":1,"original_id":73},{"type":"buy_train","entity":"NYC","entity_type":"corporation","id":59,"train":"2-1","price":1,"original_id":74},{"type":"buy_train","entity":"NYC","entity_type":"corporation","id":60,"train":"2-2","price":19,"original_id":81},{"type":"pass","entity":"B&O","entity_type":"corporation","id":61,"original_id":83},{"type":"run_routes","entity":"B&O","entity_type":"corporation","id":62,"routes":[{"train":"2-3","connections":[["C15","C13","D14"]]}],"original_id":84},{"type":"dividend","entity":"B&O","entity_type":"corporation","id":63,"kind":"payout","original_id":85},{"type":"pass","entity":"B&O","entity_type":"corporation","id":64,"original_id":86},{"type":"pass","entity":"B&O","entity_type":"corporation","id":65,"original_id":93},{"type":"run_routes","entity":"NYC","entity_type":"corporation","id":66,"routes":[{"train":"2-0","connections":[["C21","D20"]]}],"original_id":94},{"type":"dividend","entity":"NYC","entity_type":"corporation","id":67,"kind":"half","original_id":95},{"type":"pass","entity":"NYC","entity_type":"corporation","id":68,"original_id":96},{"type":"pass","entity":"NYC","entity_type":"corporation","id":69,"original_id":97},{"type":"pass","entity":"Player 2","entity_type":"player","id":70,"original_id":98},{"type":"par","entity":"Player 3","entity_type":"player","id":71,"corporation":"GT","share_price":"40,0,4","original_id":99},{"type":"buy_shares","entity":"Player 1","entity_type":"player","id":72,"shares":["GT_1"],"original_id":100},{"type":"buy_shares","entity":"Player 2","entity_type":"player","id":73,"shares":["GT_2"],"original_id":101},{"type":"buy_shares","entity":"Player 1","entity_type":"player","id":74,"shares":["GT_3"],"original_id":102},{"type":"pass","entity":"Player 3","entity_type":"player","id":75,"original_id":103},{"type":"buy_shares","entity":"Player 1","entity_type":"player","id":76,"shares":["GT_4"],"original_id":104},{"type":"pass","entity":"Player 1","entity_type":"player","id":77,"original_id":105},{"type":"lay_tile","entity":"B&O","entity_type":"corporation","id":78,"hex":"D12","tile":"9-0","rotation":1,"original_id":107},{"type":"lay_tile","entity":"B&O","entity_type":"corporation","id":79,"hex":"D10","tile":"9-1","rotation":1,"original_id":108},{"type":"pass","entity":"B&O","entity_type":"corporation","id":80,"original_id":109},{"type":"run_routes","entity":"B&O","entity_type":"corporation","id":81,"routes":[{"train":"2-3","connections":[["C15","C13","D14"]]}],"original_id":110},{"type":"dividend","entity":"B&O","entity_type":"corporation","id":82,"kind":"payout","original_id":111},{"type":"pass","entity":"B&O","entity_type":"corporation","id":83,"original_id":112},{"type":"pass","entity":"B&O","entity_type":"corporation","id":84,"original_id":113},{"type":"sell_shares","entity":"GT","entity_type":"corporation","id":85,"shares":["GT_5","GT_6","GT_7","GT_8"],"percent":40,"share_price":30,"original_id":114},{"type":"lay_tile","entity":"GT","entity_type":"corporation","id":86,"hex":"B16","tile":"6-0","rotation":0,"original_id":115},{"type":"pass","entity":"GT","entity_type":"corporation","id":87,"original_id":116},{"type":"buy_train","entity":"GT","entity_type":"corporation","id":88,"train":"2-4","price":80,"original_id":117},{"type":"buy_train","entity":"GT","entity_type":"corporation","id":89,"train":"2-5","price":80,"original_id":118},{"type":"buy_train","entity":"GT","entity_type":"corporation","id":90,"train":"2-6","price":80,"original_id":119},{"type":"buy_train","entity":"GT","entity_type":"corporation","id":91,"train":"2-3","price":100,"original_id":120},{"type":"pass","entity":"NYC","entity_type":"corporation","id":92,"original_id":122},{"type":"run_routes","entity":"NYC","entity_type":"corporation","id":93,"routes":[{"train":"2-0","connections":[["C21","D20"]]}],"original_id":123},{"type":"dividend","entity":"NYC","entity_type":"corporation","id":94,"kind":"withhold","original_id":124},{"type":"pass","entity":"NYC","entity_type":"corporation","id":95,"original_id":125},{"type":"pass","entity":"NYC","entity_type":"corporation","id":96,"original_id":126},{"type":"sell_shares","entity":"B&O","entity_type":"corporation","id":97,"shares":["B&O_1","B&O_2"],"percent":20,"share_price":70,"original_id":129},{"type":"lay_tile","entity":"B&O","entity_type":"corporation","id":98,"hex":"D8","tile":"8-0","rotation":2,"original_id":130},{"type":"place_token","entity":"B&O","entity_type":"corporation","id":99,"city":"D6-0-1","slot":0,"original_id":131},{"type":"pass","entity":"B&O","entity_type":"corporation","id":100,"original_id":132},{"type":"buy_train","entity":"B&O","entity_type":"corporation","id":101,"train":"4-0","price":160,"variant":"3/5","original_id":133},{"type":"buy_train","entity":"B&O","entity_type":"corporation","id":102,"train":"4-1","price":160,"variant":"3/5","original_id":134},{"type":"buy_train","entity":"B&O","entity_type":"corporation","id":103,"train":"4-2","price":160,"variant":"3/5","original_id":135},{"type":"buy_train","entity":"B&O","entity_type":"corporation","id":104,"train":"4-3","price":160,"variant":"3/5","original_id":136},{"type":"pass","entity":"B&O","entity_type":"corporation","id":105,"original_id":137},{"type":"run_routes","entity":"GT","entity_type":"corporation","id":106,"routes":[{"train":"2-4","connections":[["C15","B16"]]}],"original_id":138},{"type":"dividend","entity":"GT","entity_type":"corporation","id":107,"kind":"withhold","original_id":139},{"type":"pass","entity":"GT","entity_type":"corporation","id":108,"original_id":140},{"type":"lay_tile","entity":"NYC","entity_type":"corporation","id":109,"hex":"E19","tile":"7-1","rotation":3,"original_id":144},{"type":"lay_tile","entity":"NYC","entity_type":"corporation","id":110,"hex":"D18","tile":"8-1","rotation":4,"original_id":145},{"type":"run_routes","entity":"NYC","entity_type":"corporation","id":111,"routes":[{"train":"2-0","connections":[["E21","E19","D20"]]}],"original_id":146},{"type":"dividend","entity":"NYC","entity_type":"corporation","id":112,"kind":"half","original_id":147},{"type":"buy_train","entity":"NYC","entity_type":"corporation","id":113,"train":"4-0","price":60,"variant":"3/5","original_id":148},{"type":"sell_shares","entity":"Player 2","entity_type":"player","id":114,"shares":["GT_2"],"percent":10,"original_id":149},{"type":"buy_shares","entity":"Player 2","entity_type":"player","id":115,"shares":["B&O_1"],"original_id":150},{"type":"pass","entity":"Player 3","entity_type":"player","id":116,"original_id":151},{"type":"pass","entity":"Player 1","entity_type":"player","id":117,"original_id":152},{"type":"pass","entity":"Player 2","entity_type":"player","id":118,"original_id":153},{"type":"sell_shares","entity":"B&O","entity_type":"corporation","id":119,"shares":["B&O_3","B&O_4"],"percent":20,"share_price":50,"original_id":154},{"type":"lay_tile","entity":"B&O","entity_type":"corporation","id":120,"hex":"G19","tile":"14-0","rotation":1,"original_id":155},{"type":"lay_tile","entity":"B&O","entity_type":"corporation","id":121,"hex":"F18","tile":"7-2","rotation":4,"original_id":156},{"type":"pass","entity":"B&O","entity_type":"corporation","id":122,"original_id":157},{"type":"run_routes","entity":"B&O","entity_type":"corporation","id":123,"routes":[{"train":"4-1","connections":[["G19","F18","F20"],["G21","G19"]]},{"train":"4-2","connections":[["H20","G19"]]},{"train":"4-3","connections":[["C15","B16"],["C15","C13","D14"],["D14","D12","D10","D8","C7","D6"]]}],"original_id":158},{"type":"dividend","entity":"B&O","entity_type":"corporation","id":124,"kind":"payout","original_id":159},{"type":"buy_company","entity":"B&O","entity_type":"corporation","id":125,"company":"C&WI","price":60,"original_id":160},{"type":"buy_company","entity":"B&O","entity_type":"corporation","id":126,"company":"MAIL","price":80,"original_id":161},{"type":"pass","entity":"B&O","entity_type":"corporation","id":127,"original_id":162},{"type":"pass","entity":"B&O","entity_type":"corporation","id":128,"original_id":163},{"type":"pass","entity":"GT","entity_type":"corporation","id":129,"original_id":165},{"type":"run_routes","entity":"GT","entity_type":"corporation","id":130,"routes":[{"train":"2-4","connections":[["C15","B16"]]}],"original_id":166},{"type":"dividend","entity":"GT","entity_type":"corporation","id":131,"kind":"half","original_id":167},{"type":"buy_company","entity":"GT","entity_type":"corporation","id":132,"company":"O&I","price":1,"original_id":168},{"id":133,"entity_type":"corporation","entity":"GT","type":"pass","original_id":0},{"type":"run_routes","entity":"NYC","entity_type":"corporation","id":134,"routes":[{"train":"2-0","connections":[["E21","E19","D20"]]}],"original_id":169},{"type":"dividend","entity":"NYC","entity_type":"corporation","id":135,"kind":"half","original_id":170},{"type":"lay_tile","entity":"B&O","entity_type":"corporation","id":136,"hex":"D6","tile":"298-0","rotation":0,"original_id":172},{"type":"pass","entity":"B&O","entity_type":"corporation","id":137,"original_id":173},{"type":"run_routes","entity":"B&O","entity_type":"corporation","id":138,"routes":[{"train":"4-1","connections":[["G19","F18","F20"],["G21","G19"]]},{"train":"4-2","connections":[["H20","G19"]]},{"train":"4-3","connections":[["C15","B16"],["C15","C13","D14"],["D14","D12","D10","D8","C7","D6"]]}],"original_id":174},{"type":"dividend","entity":"B&O","entity_type":"corporation","id":139,"kind":"half","original_id":175},{"type":"pass","entity":"B&O","entity_type":"corporation","id":140,"original_id":176},{"type":"buy_shares","entity":"GT","entity_type":"corporation","id":141,"shares":["GT_5","GT_6"],"share_price":40,"original_id":177},{"type":"pass","entity":"GT","entity_type":"corporation","id":142,"original_id":178},{"type":"run_routes","entity":"GT","entity_type":"corporation","id":143,"routes":[{"train":"2-4","connections":[["C15","B16"]]}],"original_id":179},{"type":"dividend","entity":"GT","entity_type":"corporation","id":144,"kind":"payout","original_id":180},{"type":"pass","entity":"GT","entity_type":"corporation","id":145,"original_id":182},{"id":146,"entity_type":"corporation","entity":"NYC","type":"pass","original_id":0},{"type":"run_routes","entity":"NYC","entity_type":"corporation","id":147,"routes":[{"train":"2-0","connections":[["E21","E19","D20"]]},{"train":"2-1","connections":[["C21","D20"]]}],"original_id":183},{"type":"dividend","entity":"NYC","entity_type":"corporation","id":148,"kind":"payout","original_id":184},{"type":"sell_shares","entity":"Player 3","entity_type":"player","id":149,"shares":["GT_1","GT_3"],"percent":20,"original_id":185},{"type":"par","entity":"Player 3","entity_type":"player","id":150,"corporation":"IC","share_price":"70,0,7","original_id":186},{"type":"pass","entity":"Player 1","entity_type":"player","id":151,"original_id":187},{"type":"par","entity":"Player 2","entity_type":"player","id":152,"corporation":"C&O","share_price":"70,0,7","original_id":188},{"type":"pass","entity":"Player 3","entity_type":"player","id":153,"original_id":189},{"type":"pass","entity":"Player 1","entity_type":"player","id":154,"original_id":190},{"type":"pass","entity":"Player 2","entity_type":"player","id":155,"original_id":191},{"type":"lay_tile","entity":"B&O","entity_type":"corporation","id":156,"hex":"C15","tile":"294-0","rotation":0,"original_id":193},{"type":"pass","entity":"B&O","entity_type":"corporation","id":157,"original_id":194},{"type":"run_routes","entity":"B&O","entity_type":"corporation","id":158,"routes":[{"train":"4-1","connections":[["G19","F18","F20"],["G21","G19"]]},{"train":"4-2","connections":[["H20","G19"]]},{"train":"4-3","connections":[["C5","D6"],["D14","D12","D10","D8","C7","D6"],["D14","C13","C15"],["C17","C15"]]}],"original_id":195},{"type":"dividend","entity":"B&O","entity_type":"corporation","id":159,"kind":"payout","original_id":196},{"type":"buy_train","entity":"B&O","entity_type":"corporation","id":160,"train":"2-3","price":13,"original_id":197},{"type":"lay_tile","entity":"IC","entity_type":"corporation","id":161,"hex":"J4","tile":"9-2","rotation":0,"original_id":203},{"type":"pass","entity":"IC","entity_type":"corporation","id":162,"original_id":204},{"type":"buy_train","entity":"IC","entity_type":"corporation","id":163,"train":"2-4","price":1,"original_id":205},{"type":"buy_train","entity":"IC","entity_type":"corporation","id":164,"train":"2-5","price":1,"original_id":206},{"type":"buy_train","entity":"IC","entity_type":"corporation","id":165,"train":"4-0","price":1,"variant":"3/5","original_id":207},{"type":"buy_train","entity":"IC","entity_type":"corporation","id":166,"train":"2-0","price":1,"original_id":208},{"type":"lay_tile","entity":"C&O","entity_type":"corporation","id":167,"hex":"H14","tile":"8-2","rotation":5,"original_id":210},{"type":"lay_tile","entity":"C&O","entity_type":"corporation","id":168,"hex":"H12","tile":"292-0","rotation":2,"original_id":211},{"type":"buy_train","entity":"C&O","entity_type":"corporation","id":169,"train":"2-1","price":1,"original_id":212},{"type":"buy_train","entity":"C&O","entity_type":"corporation","id":170,"train":"4-1","price":1,"variant":"3/5","original_id":213},{"type":"buy_train","entity":"C&O","entity_type":"corporation","id":171,"train":"4-2","price":1,"variant":"3/5","original_id":214},{"type":"pass","entity":"C&O","entity_type":"corporation","id":172,"original_id":215},{"type":"pass","entity":"GT","entity_type":"corporation","id":173,"original_id":217},{"type":"run_routes","entity":"GT","entity_type":"corporation","id":174,"routes":[{"train":"2-6","connections":[["B16","C15"]]}],"original_id":218},{"type":"dividend","entity":"GT","entity_type":"corporation","id":175,"kind":"payout","original_id":219},{"type":"pass","entity":"GT","entity_type":"corporation","id":176,"original_id":220},{"id":177,"entity_type":"corporation","entity":"GT","type":"pass","original_id":0},{"type":"pass","entity":"NYC","entity_type":"corporation","id":178,"original_id":222},{"type":"run_routes","entity":"NYC","entity_type":"corporation","id":179,"routes":[{"train":"2-2","connections":[["E21","E19","D20"]]}],"original_id":223},{"type":"dividend","entity":"NYC","entity_type":"corporation","id":180,"kind":"payout","original_id":226},{"type":"pass","entity":"NYC","entity_type":"corporation","id":181,"original_id":227},{"type":"pass","entity":"B&O","entity_type":"corporation","id":182,"original_id":229},{"type":"run_routes","entity":"B&O","entity_type":"corporation","id":183,"routes":[{"train":"4-3","connections":[["C5","D6"],["D14","D12","D10","D8","C7","D6"],["D14","C13","C15"],["C17","C15"]]},{"train":"2-3","connections":[["B16","C15"]]}],"original_id":230},{"type":"dividend","entity":"B&O","entity_type":"corporation","id":184,"kind":"payout","original_id":231},{"type":"pass","entity":"B&O","entity_type":"corporation","id":185,"original_id":232},{"type":"lay_tile","entity":"IC","entity_type":"corporation","id":186,"hex":"I3","tile":"9-3","rotation":1,"original_id":236},{"type":"place_token","entity":"IC","entity_type":"corporation","id":187,"city":"I5-0-0","slot":0,"original_id":237},{"type":"pass","entity":"IC","entity_type":"corporation","id":188,"original_id":238},{"type":"run_routes","entity":"IC","entity_type":"corporation","id":189,"routes":[{"train":"2-4","connections":[["I5","I3","I1"]]},{"train":"2-0","connections":[["I5","J4","K3"]]}],"original_id":239},{"type":"dividend","entity":"IC","entity_type":"corporation","id":190,"kind":"payout","original_id":240},{"type":"lay_tile","entity":"C&O","entity_type":"corporation","id":191,"hex":"G11","tile":"8-3","rotation":5,"original_id":242},{"type":"lay_tile","entity":"C&O","entity_type":"corporation","id":192,"hex":"G9","tile":"6-1","rotation":2,"original_id":243},{"type":"run_routes","entity":"C&O","entity_type":"corporation","id":193,"routes":[{"train":"2-1","connections":[["I15","I17"]]},{"train":"4-1","connections":[["I15","H14","H12"],["H12","G11","G9"]]}],"original_id":244},{"type":"dividend","entity":"C&O","entity_type":"corporation","id":194,"kind":"payout","original_id":245},{"type":"pass","entity":"C&O","entity_type":"corporation","id":195,"original_id":246},{"type":"pass","entity":"GT","entity_type":"corporation","id":196,"original_id":248},{"type":"run_routes","entity":"GT","entity_type":"corporation","id":197,"routes":[{"train":"2-6","connections":[["B16","C15"]]}],"original_id":249},{"type":"dividend","entity":"GT","entity_type":"corporation","id":198,"kind":"payout","original_id":250},{"type":"pass","entity":"GT","entity_type":"corporation","id":199,"original_id":251},{"id":200,"entity_type":"corporation","entity":"GT","type":"pass","original_id":0},{"type":"pass","entity":"NYC","entity_type":"corporation","id":201,"original_id":253},{"type":"run_routes","entity":"NYC","entity_type":"corporation","id":202,"routes":[{"train":"2-2","connections":[["E21","E19","D20"]]}],"original_id":254},{"type":"dividend","entity":"NYC","entity_type":"corporation","id":203,"kind":"payout","original_id":255},{"type":"pass","entity":"NYC","entity_type":"corporation","id":204,"original_id":256},{"type":"pass","entity":"Player 3","entity_type":"player","id":205,"original_id":257},{"type":"pass","entity":"Player 1","entity_type":"player","id":206,"original_id":258},{"type":"pass","entity":"Player 2","entity_type":"player","id":207,"original_id":259},{"type":"pass","entity":"B&O","entity_type":"corporation","id":208,"original_id":261},{"type":"run_routes","entity":"B&O","entity_type":"corporation","id":209,"routes":[{"train":"4-3","connections":[["C5","D6"],["D14","D12","D10","D8","C7","D6"],["D14","C13","C15"],["C17","C15"]]},{"train":"2-3","connections":[["B16","C15"]]}],"original_id":262},{"type":"dividend","entity":"B&O","entity_type":"corporation","id":210,"kind":"payout","original_id":263},{"type":"buy_train","entity":"B&O","entity_type":"corporation","id":211,"train":"2-6","price":38,"original_id":282},{"type":"pass","entity":"B&O","entity_type":"corporation","id":212,"original_id":283},{"type":"pass","entity":"C&O","entity_type":"corporation","id":213,"original_id":285},{"type":"run_routes","entity":"C&O","entity_type":"corporation","id":214,"routes":[{"train":"2-1","connections":[["I15","I17"]]},{"train":"4-1","connections":[["I15","H14","H12"],["H12","G11","G9"]]}],"original_id":286},{"type":"dividend","entity":"C&O","entity_type":"corporation","id":215,"kind":"payout","original_id":287},{"type":"pass","entity":"C&O","entity_type":"corporation","id":216,"original_id":288},{"type":"pass","entity":"IC","entity_type":"corporation","id":217,"original_id":290},{"type":"run_routes","entity":"IC","entity_type":"corporation","id":218,"routes":[{"train":"2-4","connections":[["I5","I3","I1"]]},{"train":"2-0","connections":[["I5","J4","K3"]]}],"original_id":291},{"type":"dividend","entity":"IC","entity_type":"corporation","id":219,"kind":"payout","original_id":292},{"type":"pass","entity":"GT","entity_type":"corporation","id":220,"original_id":294},{"type":"bankrupt","entity":"GT","entity_type":"corporation","id":221,"original_id":295},{"type":"pass","entity":"NYC","entity_type":"corporation","id":222,"original_id":297},{"type":"run_routes","entity":"NYC","entity_type":"corporation","id":223,"routes":[{"train":"2-2","connections":[["E21","E19","D20"]]}],"original_id":298},{"type":"dividend","entity":"NYC","entity_type":"corporation","id":224,"kind":"payout","original_id":299},{"type":"pass","entity":"NYC","entity_type":"corporation","id":225,"original_id":300},{"type":"pass","entity":"B&O","entity_type":"corporation","id":226,"original_id":302},{"type":"run_routes","entity":"B&O","entity_type":"corporation","id":227,"routes":[{"train":"4-3","connections":[["C5","D6"],["D14","D12","D10","D8","C7","D6"],["D14","C13","C15"],["C17","C15"]]},{"train":"2-3","connections":[["B16","C15"]]}],"original_id":303},{"type":"dividend","entity":"B&O","entity_type":"corporation","id":228,"kind":"payout","original_id":304},{"type":"pass","entity":"B&O","entity_type":"corporation","id":229,"original_id":305},{"type":"pass","entity":"C&O","entity_type":"corporation","id":230,"original_id":307},{"type":"run_routes","entity":"C&O","entity_type":"corporation","id":231,"routes":[{"train":"2-1","connections":[["I15","I17"]]},{"train":"4-1","connections":[["I15","H14","H12"],["H12","G11","G9"]]}],"original_id":308},{"type":"dividend","entity":"C&O","entity_type":"corporation","id":232,"kind":"payout","original_id":309},{"type":"pass","entity":"C&O","entity_type":"corporation","id":233,"original_id":310},{"type":"pass","entity":"IC","entity_type":"corporation","id":234,"original_id":312},{"type":"run_routes","entity":"IC","entity_type":"corporation","id":235,"routes":[{"train":"2-4","connections":[["I5","I3","I1"]]},{"train":"2-0","connections":[["I5","J4","K3"]]}],"original_id":313},{"type":"dividend","entity":"IC","entity_type":"corporation","id":236,"kind":"payout","original_id":314},{"type":"lay_tile","entity":"NYC","entity_type":"corporation","id":237,"hex":"E17","tile":"293-0","rotation":3,"original_id":316},{"type":"lay_tile","entity":"NYC","entity_type":"corporation","id":238,"hex":"E17","tile":"294-1","rotation":0,"original_id":317},{"type":"run_routes","entity":"NYC","entity_type":"corporation","id":239,"routes":[{"train":"2-2","connections":[["D20","D18","E17"]]}],"original_id":318},{"type":"dividend","entity":"NYC","entity_type":"corporation","id":240,"kind":"payout","original_id":319},{"type":"buy_train","entity":"NYC","entity_type":"corporation","id":241,"train":"4-1","price":1,"variant":"3/5","original_id":320},{"type":"pass","entity":"NYC","entity_type":"corporation","id":242,"original_id":321},{"type":"buy_shares","entity":"Player 3","entity_type":"player","id":243,"shares":["GT_7"],"original_id":322},{"type":"buy_shares","entity":"Player 2","entity_type":"player","id":244,"shares":["GT_8"],"original_id":323},{"type":"buy_shares","entity":"Player 3","entity_type":"player","id":245,"shares":["GT_2"],"original_id":324},{"type":"buy_shares","entity":"Player 2","entity_type":"player","id":246,"shares":["GT_1"],"original_id":325},{"type":"buy_shares","entity":"Player 3","entity_type":"player","id":247,"shares":["GT_3"],"original_id":326},{"type":"buy_shares","entity":"Player 2","entity_type":"player","id":248,"shares":["GT_4"],"original_id":327},{"type":"buy_shares","entity":"Player 3","entity_type":"player","id":249,"shares":["GT_7"],"original_id":328},{"type":"buy_shares","entity":"Player 2","entity_type":"player","id":250,"shares":["GT_2"],"original_id":329},{"type":"sell_shares","entity":"Player 3","entity_type":"player","id":251,"shares":["GT_3","GT_7","GT_0"],"percent":40,"original_id":330},{"type":"pass","entity":"Player 3","entity_type":"player","id":252,"original_id":331},{"type":"pass","entity":"Player 2","entity_type":"player","id":253,"original_id":332},{"type":"pass","entity":"Player 3","entity_type":"player","id":254,"original_id":333},{"type":"pass","entity":"B&O","entity_type":"corporation","id":255,"original_id":335},{"type":"run_routes","entity":"B&O","entity_type":"corporation","id":256,"routes":[{"train":"4-3","connections":[["C5","D6"],["D14","D12","D10","D8","C7","D6"],["D14","C13","C15"],["C17","C15"]]},{"train":"2-3","connections":[["B16","C15"]]}],"original_id":336},{"type":"dividend","entity":"B&O","entity_type":"corporation","id":257,"kind":"payout","original_id":337},{"type":"buy_train","entity":"B&O","entity_type":"corporation","id":258,"train":"4-1","price":1,"variant":"3/5","original_id":338},{"type":"buy_train","entity":"B&O","entity_type":"corporation","id":259,"train":"4-0","price":1,"variant":"3/5","original_id":339},{"type":"pass","entity":"C&O","entity_type":"corporation","id":260,"original_id":341},{"type":"run_routes","entity":"C&O","entity_type":"corporation","id":261,"routes":[{"train":"2-1","connections":[["I15","I17"]]}],"original_id":342},{"type":"dividend","entity":"C&O","entity_type":"corporation","id":262,"kind":"payout","original_id":343},{"type":"pass","entity":"C&O","entity_type":"corporation","id":263,"original_id":344},{"type":"lay_tile","entity":"IC","entity_type":"corporation","id":264,"hex":"H6","tile":"9-4","rotation":0,"original_id":348},{"type":"lay_tile","entity":"IC","entity_type":"corporation","id":265,"hex":"G7","tile":"6-2","rotation":0,"original_id":349},{"type":"place_token","entity":"IC","entity_type":"corporation","id":266,"city":"6-2-0","slot":0,"original_id":350},{"type":"run_routes","entity":"IC","entity_type":"corporation","id":267,"routes":[{"train":"2-4","connections":[["I5","I3","I1"]]},{"train":"2-0","connections":[["I5","J4","K3"]]},{"train":"2-5","connections":[["I5","H6","G7"]]}],"original_id":351},{"type":"dividend","entity":"IC","entity_type":"corporation","id":268,"kind":"payout","original_id":352},{"type":"sell_shares","entity":"IC","entity_type":"corporation","id":269,"shares":["IC_1","IC_2"],"percent":20,"share_price":70,"original_id":353},{"type":"buy_train","entity":"IC","entity_type":"corporation","id":270,"train":"5-1","price":500,"variant":"5","original_id":354},{"type":"pass","entity":"IC","entity_type":"corporation","id":271,"original_id":355},{"type":"pass","entity":"NYC","entity_type":"corporation","id":272,"original_id":356},{"type":"bankrupt","entity":"NYC","entity_type":"corporation","id":273,"original_id":357}],"id":"hs_vhfqskhy_1595777670","players":[{"name":"Player 1"},{"name":"Player 2"},{"name":"Player 3"}],"title":"1846","description":"Cloned from game hs_msecwkaf_1595777670","max_players":"3","result":{"Player 2":1360,"Player 1":0,"Player 3":0},"loaded":true,"created_at":"2020-08-28","user":{"id":0,"name":"You"},"mode":"hotseat","settings":{"optional_rules":["first_ed"]}} \ No newline at end of file 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..34ff9b33d5 --- /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}, {"type": "end_game","entity": "9","entity_type": "minor","id": 56,"created_at": 1683774126}],"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":{"10497":140, "1355":155, "1423":145, "1443":135, "3510":140},"loaded":true,"created_at":"2023-05-10","updated_at":1683764220,"mode":"hotseat","manually_ended":null} 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/public/icons/1880/D.svg b/public/icons/1880/D.svg new file mode 100644 index 0000000000..c2e05a781c --- /dev/null +++ b/public/icons/1880/D.svg @@ -0,0 +1 @@ + \ No newline at end of file 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/fixtures/1822/35975.json b/spec/fixtures/1822/35975.json deleted file mode 100644 index a90cba03b0..0000000000 --- a/spec/fixtures/1822/35975.json +++ /dev/null @@ -1 +0,0 @@ -{"id":35975,"description":"open, live","user":{"id":1739,"name":"wheresvic"},"players":[{"id":8145,"name":"cutebeast"},{"id":1739,"name":"wheresvic"},{"id":3828,"name":"Shaw80"}],"max_players":4,"title":"1822NRS","settings":{"seed":1218977555,"unlisted":false,"optional_rules":[]},"user_settings":null,"status":"finished","turn":8,"round":"Operating Round","acting":[8145,1739,3828],"result":{"1739":10626,"3828":9343,"8145":6605},"actions":[{"type":"message","entity":1739,"entity_type":"player","id":1,"created_at":1617566947,"message":"hi all and welcome"},{"type":"message","entity":8145,"entity_type":"player","id":2,"created_at":1617566957,"message":"Hi"},{"type":"message","entity":1739,"entity_type":"player","id":3,"created_at":1617566975,"message":"lets do this fast and furious"},{"type":"message","entity":3828,"entity_type":"player","id":4,"created_at":1617566977,"message":"howdy"},{"type":"message","entity":1739,"entity_type":"player","id":5,"created_at":1617566987,"message":"so Shaw just the only changes are that the L train cost 50"},{"type":"message","entity":1739,"entity_type":"player","id":6,"created_at":1617566997,"message":"and the first company to flip requires 80"},{"type":"message","entity":3828,"entity_type":"player","id":7,"created_at":1617566999,"message":"I played this"},{"type":"message","entity":1739,"entity_type":"player","id":8,"created_at":1617567004,"message":"but the other companies thereafter require 70"},{"type":"message","entity":1739,"entity_type":"player","id":9,"created_at":1617567006,"message":"ok cool"},{"type":"bid","entity":8145,"entity_type":"player","id":10,"created_at":1617567009,"company":"M27","price":100},{"type":"bid","entity":8145,"entity_type":"player","id":11,"created_at":1617567027,"company":"P6","price":15},{"type":"bid","entity":8145,"entity_type":"player","id":12,"created_at":1617567034,"company":"P1","price":50},{"type":"bid","entity":1739,"entity_type":"player","id":13,"created_at":1617567046,"company":"M27","price":140},{"type":"bid","entity":1739,"entity_type":"player","id":14,"created_at":1617567051,"company":"P6","price":40},{"type":"bid","entity":1739,"entity_type":"player","id":15,"created_at":1617567085,"company":"M29","price":100},{"type":"message","entity":1739,"entity_type":"player","id":16,"created_at":1617567141,"message":"Oh yeah because the trains rush so fast minor valuations are not as high"},{"type":"message","entity":1739,"entity_type":"player","id":17,"created_at":1617567141,"message":"you dont have that much time"},{"type":"bid","entity":3828,"entity_type":"player","id":18,"created_at":1617567149,"company":"P1","price":70},{"type":"bid","entity":3828,"entity_type":"player","id":19,"created_at":1617567151,"company":"P6","price":45},{"type":"bid","entity":3828,"entity_type":"player","id":20,"created_at":1617567153,"company":"P21","price":0},{"type":"message","entity":1739,"entity_type":"player","id":21,"created_at":1617567161,"message":"and the privates are slightly higher valued lol"},{"type":"bid","entity":8145,"entity_type":"player","id":22,"created_at":1617567165,"company":"M27","price":160},{"type":"bid","entity":8145,"entity_type":"player","id":23,"created_at":1617567176,"company":"C5","price":100},{"type":"bid","entity":8145,"entity_type":"player","id":24,"created_at":1617567186,"company":"M2","price":100},{"type":"bid","entity":1739,"entity_type":"player","id":25,"created_at":1617567191,"company":"M27","price":170},{"type":"pass","entity":1739,"entity_type":"player","id":26,"created_at":1617567192},{"type":"pass","entity":3828,"entity_type":"player","id":27,"created_at":1617567197},{"type":"bid","entity":8145,"entity_type":"player","id":28,"created_at":1617567213,"company":"M27","price":180},{"type":"bid","entity":8145,"entity_type":"player","id":29,"created_at":1617567222,"company":"P21","price":5},{"type":"pass","entity":8145,"entity_type":"player","id":30,"created_at":1617567225},{"type":"bid","entity":1739,"entity_type":"player","id":31,"created_at":1617567229,"company":"M27","price":200},{"type":"pass","entity":1739,"entity_type":"player","id":32,"created_at":1617567232},{"type":"pass","entity":3828,"entity_type":"player","id":33,"created_at":1617567235},{"type":"bid","entity":8145,"entity_type":"player","id":34,"created_at":1617567241,"company":"M27","price":205},{"type":"pass","entity":8145,"entity_type":"player","id":35,"created_at":1617567243},{"type":"bid","entity":1739,"entity_type":"player","id":36,"created_at":1617567248,"company":"P6","price":50},{"type":"bid","entity":1739,"entity_type":"player","id":37,"created_at":1617567252,"company":"P21","price":10},{"type":"pass","entity":1739,"entity_type":"player","id":38,"created_at":1617567255},{"type":"bid","entity":3828,"entity_type":"player","id":39,"created_at":1617567262,"company":"P6","price":55},{"type":"pass","entity":3828,"entity_type":"player","id":40,"created_at":1617567265},{"type":"pass","entity":8145,"entity_type":"player","id":41,"created_at":1617567277},{"type":"bid","entity":1739,"entity_type":"player","id":42,"created_at":1617567284,"company":"P6","price":60},{"type":"bid","entity":1739,"entity_type":"player","id":43,"created_at":1617567310,"company":"C6","price":100},{"type":"pass","entity":1739,"entity_type":"player","id":44,"created_at":1617567314},{"type":"bid","entity":3828,"entity_type":"player","id":45,"created_at":1617567319,"company":"P6","price":65},{"type":"pass","entity":3828,"entity_type":"player","id":46,"created_at":1617567320},{"type":"pass","entity":8145,"entity_type":"player","id":47,"created_at":1617567329},{"type":"bid","entity":1739,"entity_type":"player","id":48,"created_at":1617567334,"company":"P1","price":75},{"type":"pass","entity":1739,"entity_type":"player","id":49,"created_at":1617567337},{"type":"bid","entity":3828,"entity_type":"player","id":50,"created_at":1617567342,"company":"P1","price":80},{"type":"pass","entity":3828,"entity_type":"player","id":51,"created_at":1617567344},{"type":"pass","entity":8145,"entity_type":"player","id":52,"created_at":1617567349},{"id":53,"type":"pass","entity":1739,"entity_type":"player","user":1739,"created_at":1617567366,"skip":true},{"id":54,"type":"pass","entity":3828,"entity_type":"player","user":3828,"created_at":1617567371,"skip":true},{"id":55,"type":"buy_train","price":50,"train":"L-0","entity":"27","variant":"L","entity_type":"corporation","user":8145,"created_at":1617567380,"skip":true},{"id":56,"type":"undo","entity":"27","entity_type":"corporation","user":1739,"created_at":1617567390,"skip":true},{"type":"message","entity":1739,"entity_type":"player","id":57,"created_at":1617567394,"message":"wait"},{"type":"message","entity":1739,"entity_type":"player","id":58,"created_at":1617567401,"message":"I bid 70"},{"id":59,"type":"buy_train","price":50,"train":"L-0","entity":"27","variant":"L","entity_type":"corporation","user":8145,"created_at":1617567401,"skip":true},{"type":"message","entity":1739,"entity_type":"player","id":60,"created_at":1617567410,"message":"wait I bid 70 not sure why it passed"},{"id":61,"type":"undo","entity":"27","entity_type":"corporation","user":1739,"created_at":1617567412,"skip":true},{"id":62,"type":"undo","entity":"27","entity_type":"corporation","user":1739,"created_at":1617567414,"skip":true},{"id":63,"type":"undo","entity":3828,"entity_type":"player","user":1739,"created_at":1617567415,"skip":true},{"type":"bid","entity":1739,"entity_type":"player","id":64,"created_at":1617567419,"company":"P6","price":70},{"type":"pass","entity":1739,"entity_type":"player","id":65,"created_at":1617567420},{"type":"message","entity":1739,"entity_type":"player","id":66,"created_at":1617567427,"message":"does someone have master mode on?"},{"type":"pass","entity":3828,"entity_type":"player","id":67,"created_at":1617567461},{"type":"pass","entity":8145,"entity_type":"player","id":68,"created_at":1617567464},{"type":"pass","entity":1739,"entity_type":"player","id":69,"created_at":1617567467},{"type":"buy_train","entity":"27","entity_type":"corporation","id":70,"created_at":1617567471,"train":"L-0","price":50,"variant":"L"},{"type":"lay_tile","entity":"27","entity_type":"corporation","id":71,"created_at":1617567478,"hex":"F5","tile":"58-0","rotation":5},{"type":"run_routes","entity":"27","entity_type":"corporation","id":72,"created_at":1617567489,"routes":[{"train":"L-1","connections":[["local","E6"]],"hexes":["E6"],"revenue":40,"revenue_str":"E6"}]},{"type":"pass","entity":"27","entity_type":"corporation","id":73,"created_at":1617567494},{"type":"buy_train","entity":"29","entity_type":"corporation","id":74,"created_at":1617567497,"train":"L-0","price":50,"variant":"L"},{"type":"lay_tile","entity":"29","entity_type":"corporation","id":75,"created_at":1617567502,"hex":"G28","tile":"4-0","rotation":2},{"type":"run_routes","entity":"29","entity_type":"corporation","id":76,"created_at":1617567509,"routes":[{"train":"L-2","connections":[["G28","F27","E26"]],"hexes":["E26","G28"],"revenue":20,"revenue_str":"E26-G28"}]},{"type":"pass","entity":"29","entity_type":"corporation","id":77,"created_at":1617567512},{"type":"buy_train","entity":"2","entity_type":"corporation","id":78,"created_at":1617567518,"train":"L-0","price":50,"variant":"L"},{"type":"lay_tile","entity":"2","entity_type":"corporation","id":79,"created_at":1617567557,"hex":"F3","tile":"4-1","rotation":2},{"type":"run_routes","entity":"2","entity_type":"corporation","id":80,"created_at":1617567563,"routes":[{"train":"L-3","connections":[["E2","F3"]],"hexes":["F3","E2"],"revenue":20,"revenue_str":"F3-E2"}]},{"type":"pass","entity":"2","entity_type":"corporation","id":81,"created_at":1617567570},{"type":"bid","entity":3828,"entity_type":"player","id":82,"created_at":1617567590,"company":"M16","price":100},{"type":"bid","entity":3828,"entity_type":"player","id":83,"created_at":1617567595,"company":"C7","price":100},{"type":"bid","entity":3828,"entity_type":"player","id":84,"created_at":1617567615,"company":"P3","price":70},{"type":"bid","entity":1739,"entity_type":"player","id":85,"created_at":1617567626,"company":"M16","price":160},{"type":"bid","entity":1739,"entity_type":"player","id":86,"created_at":1617567643,"company":"P3","price":100},{"type":"pass","entity":1739,"entity_type":"player","id":87,"created_at":1617567645},{"type":"bid","entity":8145,"entity_type":"player","id":88,"created_at":1617567663,"company":"P12","price":10},{"type":"bid","entity":8145,"entity_type":"player","id":89,"created_at":1617567670,"company":"P13","price":10},{"type":"pass","entity":8145,"entity_type":"player","id":90,"created_at":1617567674},{"type":"bid","entity":3828,"entity_type":"player","id":91,"created_at":1617567677,"company":"M16","price":165},{"type":"bid","entity":3828,"entity_type":"player","id":92,"created_at":1617567685,"company":"P3","price":105},{"type":"pass","entity":3828,"entity_type":"player","id":93,"created_at":1617567690},{"type":"bid","entity":1739,"entity_type":"player","id":94,"created_at":1617567695,"company":"M3","price":100},{"type":"bid","entity":1739,"entity_type":"player","id":95,"created_at":1617567704,"company":"P12","price":15},{"type":"bid","entity":1739,"entity_type":"player","id":96,"created_at":1617567706,"company":"P13","price":15},{"type":"bid","entity":8145,"entity_type":"player","id":97,"created_at":1617567718,"company":"P12","price":20},{"type":"bid","entity":8145,"entity_type":"player","id":98,"created_at":1617567725,"company":"P13","price":30},{"type":"pass","entity":8145,"entity_type":"player","id":99,"created_at":1617567730},{"type":"pass","entity":3828,"entity_type":"player","id":100,"created_at":1617567734},{"type":"bid","entity":1739,"entity_type":"player","id":101,"created_at":1617567741,"company":"P13","price":40},{"type":"bid","entity":1739,"entity_type":"player","id":102,"created_at":1617567744,"company":"P12","price":30},{"type":"pass","entity":1739,"entity_type":"player","id":103,"created_at":1617567747},{"type":"bid","entity":8145,"entity_type":"player","id":104,"created_at":1617567775,"company":"M3","price":105},{"type":"pass","entity":8145,"entity_type":"player","id":105,"created_at":1617567782},{"type":"pass","entity":3828,"entity_type":"player","id":106,"created_at":1617567786},{"type":"bid","entity":1739,"entity_type":"player","id":107,"created_at":1617567789,"company":"M3","price":110},{"type":"pass","entity":1739,"entity_type":"player","id":108,"created_at":1617567790},{"type":"bid","entity":8145,"entity_type":"player","id":109,"created_at":1617567816,"company":"P13","price":50},{"type":"bid","entity":8145,"entity_type":"player","id":110,"created_at":1617567818,"company":"P12","price":35},{"type":"pass","entity":8145,"entity_type":"player","id":111,"created_at":1617567823},{"type":"pass","entity":3828,"entity_type":"player","id":112,"created_at":1617567828},{"type":"message","entity":1739,"entity_type":"player","id":113,"created_at":1617567838,"message":"why dont you price enforce lyr?"},{"type":"bid","entity":1739,"entity_type":"player","id":114,"created_at":1617567841,"company":"P13","price":55},{"type":"pass","entity":1739,"entity_type":"player","id":115,"created_at":1617567843},{"type":"bid","entity":8145,"entity_type":"player","id":116,"created_at":1617567857,"company":"P13","price":60},{"type":"pass","entity":8145,"entity_type":"player","id":117,"created_at":1617567861},{"type":"pass","entity":3828,"entity_type":"player","id":118,"created_at":1617567870},{"type":"bid","entity":1739,"entity_type":"player","id":119,"created_at":1617567876,"company":"C7","price":105},{"type":"pass","entity":1739,"entity_type":"player","id":120,"created_at":1617567880},{"type":"pass","entity":8145,"entity_type":"player","id":121,"created_at":1617567885},{"type":"bid","entity":3828,"entity_type":"player","id":122,"created_at":1617567888,"company":"C7","price":110},{"type":"pass","entity":3828,"entity_type":"player","id":123,"created_at":1617567894},{"type":"bid","entity":1739,"entity_type":"player","id":124,"created_at":1617567899,"company":"C7","price":125},{"type":"pass","entity":1739,"entity_type":"player","id":125,"created_at":1617567900},{"type":"pass","entity":8145,"entity_type":"player","id":126,"created_at":1617567909},{"id":127,"type":"bid","price":135,"entity":3828,"company":"C7","entity_type":"player","user":3828,"created_at":1617567920,"skip":true},{"id":128,"type":"undo","entity":3828,"entity_type":"player","user":3828,"created_at":1617567935,"skip":true},{"type":"bid","entity":3828,"entity_type":"player","id":129,"created_at":1617567942,"company":"C7","price":150},{"type":"pass","entity":3828,"entity_type":"player","id":130,"created_at":1617567945},{"type":"pass","entity":1739,"entity_type":"player","id":131,"created_at":1617567949},{"type":"pass","entity":8145,"entity_type":"player","id":132,"created_at":1617567958},{"type":"pass","entity":3828,"entity_type":"player","id":133,"created_at":1617567961},{"type":"lay_tile","entity":"27","entity_type":"corporation","id":134,"created_at":1617567975,"hex":"E8","tile":"8-0","rotation":3},{"type":"run_routes","entity":"27","entity_type":"corporation","id":135,"created_at":1617567994,"routes":[{"train":"L-1","connections":[["F5","E6"]],"hexes":["E6","F5"],"revenue":50,"revenue_str":"E6-F5"}]},{"type":"buy_train","entity":"27","entity_type":"corporation","id":136,"created_at":1617568028,"train":"L-1","price":80,"variant":"2","exchange":"L-1"},{"type":"pass","entity":"27","entity_type":"corporation","id":137,"created_at":1617568035},{"type":"pass","entity":"29","entity_type":"corporation","id":138,"created_at":1617568039},{"type":"lay_tile","entity":"29","entity_type":"corporation","id":139,"created_at":1617568043,"hex":"H29","tile":"9-0","rotation":2},{"type":"run_routes","entity":"29","entity_type":"corporation","id":140,"created_at":1617568045,"routes":[{"train":"L-2","connections":[["G28","F27","E26"]],"hexes":["G28","E26"],"revenue":20,"revenue_str":"G28-E26"}]},{"type":"buy_train","entity":"29","entity_type":"corporation","id":141,"created_at":1617568047,"train":"L-2","price":70,"variant":"2","exchange":"L-2"},{"type":"pass","entity":"2","entity_type":"corporation","id":142,"created_at":1617568051},{"type":"lay_tile","entity":"2","entity_type":"corporation","id":143,"created_at":1617568114,"hex":"F7","tile":"1-0","rotation":2},{"type":"run_routes","entity":"2","entity_type":"corporation","id":144,"created_at":1617568121,"routes":[{"train":"L-3","connections":[["E2","F3"]],"hexes":["E2","F3"],"revenue":20,"revenue_str":"E2-F3"}]},{"type":"buy_train","entity":"2","entity_type":"corporation","id":145,"created_at":1617568123,"train":"L-3","price":70,"variant":"2","exchange":"L-3"},{"type":"buy_train","entity":"16","entity_type":"corporation","id":146,"created_at":1617568128,"train":"L-0","price":50,"variant":"L"},{"type":"pass","entity":"16","entity_type":"corporation","id":147,"created_at":1617568131},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":148,"created_at":1617568137,"hex":"L29","tile":"9-1","rotation":2},{"type":"run_routes","entity":"16","entity_type":"corporation","id":149,"created_at":1617568146,"routes":[{"train":"L-7","connections":[["local","M30"]],"hexes":["M30"],"revenue":40,"revenue_str":"M30"}]},{"type":"buy_train","entity":"16","entity_type":"corporation","id":150,"created_at":1617568148,"train":"L-7","price":70,"variant":"2","exchange":"L-7"},{"type":"buy_train","entity":"3","entity_type":"corporation","id":151,"created_at":1617568151,"train":"L-0","price":50,"variant":"L"},{"type":"pass","entity":"3","entity_type":"corporation","id":152,"created_at":1617568153},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":153,"created_at":1617568158,"hex":"G6","tile":"8-1","rotation":2},{"type":"run_routes","entity":"3","entity_type":"corporation","id":154,"created_at":1617568169,"routes":[{"train":"L-8","connections":[["H5","G6","F5"]],"hexes":["F5","H5"],"revenue":40,"revenue_str":"F5-H5"}]},{"type":"buy_train","entity":"3","entity_type":"corporation","id":155,"created_at":1617568172,"train":"L-8","price":70,"variant":"2","exchange":"L-8"},{"type":"bid","entity":1739,"entity_type":"player","id":156,"created_at":1617568178,"company":"P9","price":0},{"type":"bid","entity":1739,"entity_type":"player","id":157,"created_at":1617568179,"company":"P8","price":0},{"type":"bid","entity":1739,"entity_type":"player","id":158,"created_at":1617568182,"company":"P11","price":0},{"type":"bid","entity":8145,"entity_type":"player","id":159,"created_at":1617568204,"company":"P8","price":10},{"type":"bid","entity":8145,"entity_type":"player","id":160,"created_at":1617568214,"company":"P11","price":10},{"type":"bid","entity":8145,"entity_type":"player","id":161,"created_at":1617568223,"company":"P9","price":10},{"type":"pass","entity":3828,"entity_type":"player","id":162,"created_at":1617568232},{"type":"bid","entity":1739,"entity_type":"player","id":163,"created_at":1617568243,"company":"P9","price":15},{"type":"bid","entity":1739,"entity_type":"player","id":164,"created_at":1617568244,"company":"P8","price":15},{"type":"bid","entity":1739,"entity_type":"player","id":165,"created_at":1617568247,"company":"P11","price":15},{"type":"bid","entity":8145,"entity_type":"player","id":166,"created_at":1617568258,"company":"P8","price":20},{"type":"bid","entity":8145,"entity_type":"player","id":167,"created_at":1617568261,"company":"P9","price":20},{"type":"bid","entity":8145,"entity_type":"player","id":168,"created_at":1617568266,"company":"P11","price":20},{"type":"pass","entity":3828,"entity_type":"player","id":169,"created_at":1617568276},{"type":"bid","entity":1739,"entity_type":"player","id":170,"created_at":1617568282,"company":"P11","price":25},{"type":"bid","entity":1739,"entity_type":"player","id":171,"created_at":1617568287,"company":"P8","price":25},{"type":"bid","entity":1739,"entity_type":"player","id":172,"created_at":1617568287,"company":"P9","price":25},{"type":"bid","entity":8145,"entity_type":"player","id":173,"created_at":1617568310,"company":"P8","price":30},{"type":"bid","entity":8145,"entity_type":"player","id":174,"created_at":1617568315,"company":"P11","price":30},{"type":"bid","entity":8145,"entity_type":"player","id":175,"created_at":1617568318,"company":"P9","price":30},{"type":"pass","entity":3828,"entity_type":"player","id":176,"created_at":1617568322},{"id":177,"type":"bid","price":40,"entity":1739,"company":"P9","entity_type":"player","user":1739,"created_at":1617568328,"skip":true},{"id":178,"type":"pass","entity":1739,"entity_type":"player","user":1739,"created_at":1617568332,"skip":true},{"id":179,"type":"undo","entity":8145,"entity_type":"player","user":1739,"created_at":1617568337,"skip":true},{"id":180,"type":"undo","entity":1739,"entity_type":"player","user":1739,"created_at":1617568339,"skip":true},{"type":"bid","entity":1739,"entity_type":"player","id":181,"created_at":1617568344,"company":"P9","price":45},{"type":"pass","entity":1739,"entity_type":"player","id":182,"created_at":1617568346},{"type":"pass","entity":8145,"entity_type":"player","id":183,"created_at":1617568364},{"type":"pass","entity":3828,"entity_type":"player","id":184,"created_at":1617568381},{"type":"message","entity":3828,"entity_type":"player","id":185,"created_at":1617568542,"message":"wheresvic you yup"},{"type":"message","entity":1739,"entity_type":"player","id":186,"created_at":1617568606,"message":"sorry internet conked off"},{"type":"bid","entity":1739,"entity_type":"player","id":187,"created_at":1617568606,"company":"M1","price":100},{"type":"pass","entity":1739,"entity_type":"player","id":188,"created_at":1617568608},{"type":"par","entity":8145,"entity_type":"player","id":189,"created_at":1617568632,"corporation":"CR","share_price":"70,6,4"},{"type":"pass","entity":3828,"entity_type":"player","id":190,"created_at":1617568636},{"type":"par","entity":1739,"entity_type":"player","id":191,"created_at":1617568706,"corporation":"MR","share_price":"70,6,4"},{"type":"pass","entity":8145,"entity_type":"player","id":192,"created_at":1617568721},{"type":"pass","entity":3828,"entity_type":"player","id":193,"created_at":1617568726},{"type":"pass","entity":1739,"entity_type":"player","id":194,"created_at":1617568730},{"type":"choose","entity":1739,"entity_type":"player","id":195,"created_at":1617568733,"choice":"double"},{"type":"pass","entity":"27","entity_type":"corporation","id":196,"created_at":1617568742},{"type":"message","entity":1739,"entity_type":"player","id":197,"created_at":1617568768,"message":"sorry for the delay"},{"type":"message","entity":1739,"entity_type":"player","id":198,"created_at":1617568772,"message":"had to reset the router"},{"type":"message","entity":3828,"entity_type":"player","id":199,"created_at":1617568796,"message":"that sucks"},{"type":"lay_tile","entity":"27","entity_type":"corporation","id":200,"created_at":1617568799,"hex":"G4","tile":"57-0","rotation":2},{"type":"message","entity":3828,"entity_type":"player","id":201,"created_at":1617568816,"message":"i overhauled my system this year"},{"type":"run_routes","entity":"27","entity_type":"corporation","id":202,"created_at":1617568817,"routes":[{"train":"L-1","connections":[["E6","E4","E2"]],"hexes":["E2","E6"],"revenue":50,"revenue_str":"E2-E6"}]},{"type":"message","entity":1739,"entity_type":"player","id":203,"created_at":1617568887,"message":"ah I am at my inlaws"},{"type":"message","entity":1739,"entity_type":"player","id":204,"created_at":1617568900,"message":"they have an old school house with an old school router lol"},{"type":"message","entity":1739,"entity_type":"player","id":205,"created_at":1617568909,"message":"but we did eat like 1kg of chocolate and 1kg of meat"},{"type":"message","entity":1739,"entity_type":"player","id":206,"created_at":1617568914,"message":"so no complaints lol"},{"type":"pass","entity":"27","entity_type":"corporation","id":207,"created_at":1617568920},{"type":"message","entity":3828,"entity_type":"player","id":208,"created_at":1617568921,"message":"lol,,,,,nope"},{"type":"pass","entity":"29","entity_type":"corporation","id":209,"created_at":1617568927},{"type":"lay_tile","entity":"29","entity_type":"corporation","id":210,"created_at":1617568932,"hex":"J29","tile":"6-0","rotation":1},{"type":"run_routes","entity":"29","entity_type":"corporation","id":211,"created_at":1617568937,"routes":[{"train":"L-2","connections":[["G28","F27","E26"]],"hexes":["G28","E26"],"revenue":20,"revenue_str":"G28-E26"}]},{"type":"pass","entity":"29","entity_type":"corporation","id":212,"created_at":1617568940},{"type":"pass","entity":"2","entity_type":"corporation","id":213,"created_at":1617568951},{"type":"pass","entity":"2","entity_type":"corporation","id":214,"created_at":1617568959},{"type":"run_routes","entity":"2","entity_type":"corporation","id":215,"created_at":1617568966,"routes":[{"train":"L-3","connections":[["E2","E4","E6"]],"hexes":["E6","E2"],"revenue":50,"revenue_str":"E6-E2"}]},{"type":"pass","entity":"2","entity_type":"corporation","id":216,"created_at":1617568969},{"type":"pass","entity":"16","entity_type":"corporation","id":217,"created_at":1617568972},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":218,"created_at":1617568979,"hex":"K28","tile":"6-1","rotation":5},{"type":"run_routes","entity":"16","entity_type":"corporation","id":219,"created_at":1617568990,"routes":[{"train":"L-7","connections":[["M30","L29","K28"]],"hexes":["K28","M30"],"revenue":60,"revenue_str":"K28-M30"}]},{"type":"pass","entity":"16","entity_type":"corporation","id":220,"created_at":1617568997},{"type":"pass","entity":"3","entity_type":"corporation","id":221,"created_at":1617569001},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":222,"created_at":1617569010,"hex":"I6","tile":"9-2","rotation":2},{"type":"run_routes","entity":"3","entity_type":"corporation","id":223,"created_at":1617569023,"routes":[{"train":"L-8","connections":[["H5","G4"]],"hexes":["G4","H5"],"revenue":50,"revenue_str":"G4-H5"}]},{"type":"pass","entity":"3","entity_type":"corporation","id":224,"created_at":1617569026},{"type":"buy_train","entity":"1","entity_type":"corporation","id":225,"created_at":1617569028,"train":"L-0","price":50,"variant":"L"},{"type":"pass","entity":"1","entity_type":"corporation","id":226,"created_at":1617569029},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":227,"created_at":1617569035,"hex":"H3","tile":"3-0","rotation":2},{"type":"run_routes","entity":"1","entity_type":"corporation","id":228,"created_at":1617569041,"routes":[{"train":"L-13","connections":[["H3","H1"]],"hexes":["H1","H3"],"revenue":40,"revenue_str":"H1-H3"}]},{"type":"buy_train","entity":"1","entity_type":"corporation","id":229,"created_at":1617569042,"train":"L-13","price":70,"variant":"2","exchange":"L-13"},{"type":"pass","entity":"CR","entity_type":"corporation","id":230,"created_at":1617569056},{"type":"message","entity":1739,"entity_type":"player","id":231,"created_at":1617569079,"message":"for once I played it right LOL"},{"id":232,"hex":"F9","tile":"9-3","type":"lay_tile","entity":"CR","rotation":2,"entity_type":"corporation","user":8145,"created_at":1617569095,"skip":true},{"id":233,"type":"undo","entity":"CR","entity_type":"corporation","user":8145,"created_at":1617569119,"skip":true},{"type":"pass","entity":"CR","entity_type":"corporation","id":234,"created_at":1617569122},{"type":"pass","entity":"CR","entity_type":"corporation","id":235,"created_at":1617569125},{"type":"pass","entity":"CR","entity_type":"corporation","id":236,"created_at":1617569129},{"type":"buy_train","entity":"CR","entity_type":"corporation","id":237,"created_at":1617569147,"train":"3-0","price":200,"variant":"3"},{"type":"pass","entity":"MR","entity_type":"corporation","id":238,"created_at":1617569158},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":239,"created_at":1617569164,"hex":"J29","tile":"619-0","rotation":1},{"type":"pass","entity":"MR","entity_type":"corporation","id":240,"created_at":1617569168},{"type":"pass","entity":"MR","entity_type":"corporation","id":241,"created_at":1617569174},{"type":"buy_train","entity":"MR","entity_type":"corporation","id":242,"created_at":1617569178,"train":"3-1","price":200,"variant":"3"},{"type":"acquire_company","entity":"27","entity_type":"corporation","id":243,"created_at":1617569188,"company":"P8"},{"type":"pass","entity":"27","entity_type":"corporation","id":244,"created_at":1617569193},{"type":"choose","entity":"27","entity_type":"corporation","id":245,"created_at":1617569199,"choice":"discount"},{"type":"lay_tile","entity":"27","entity_type":"corporation","id":246,"created_at":1617569206,"hex":"F9","tile":"9-3","rotation":2},{"type":"run_routes","entity":"27","entity_type":"corporation","id":247,"created_at":1617569213,"routes":[{"train":"L-1","connections":[["E6","E4","E2"]],"hexes":["E6","E2"],"revenue":60,"revenue_str":"E6-E2"}]},{"type":"pass","entity":"27","entity_type":"corporation","id":248,"created_at":1617569217},{"type":"pass","entity":"29","entity_type":"corporation","id":249,"created_at":1617569220},{"type":"lay_tile","entity":"29","entity_type":"corporation","id":250,"created_at":1617569244,"hex":"K30","tile":"8-2","rotation":2},{"type":"run_routes","entity":"29","entity_type":"corporation","id":251,"created_at":1617569248,"routes":[{"train":"L-2","connections":[["G28","F27","E26"]],"hexes":["G28","E26"],"revenue":30,"revenue_str":"G28-E26"}]},{"type":"pass","entity":"29","entity_type":"corporation","id":252,"created_at":1617569250},{"type":"pass","entity":"2","entity_type":"corporation","id":253,"created_at":1617569260},{"type":"lay_tile","entity":"2","entity_type":"corporation","id":254,"created_at":1617569271,"hex":"G10","tile":"9-4","rotation":2},{"type":"run_routes","entity":"2","entity_type":"corporation","id":255,"created_at":1617569277,"routes":[{"train":"L-3","connections":[["E2","E4","E6"]],"hexes":["E2","E6"],"revenue":60,"revenue_str":"E2-E6"}]},{"type":"pass","entity":"2","entity_type":"corporation","id":256,"created_at":1617569279},{"type":"pass","entity":"16","entity_type":"corporation","id":257,"created_at":1617569282},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":258,"created_at":1617569295,"hex":"K28","tile":"619-1","rotation":5},{"type":"run_routes","entity":"16","entity_type":"corporation","id":259,"created_at":1617569299,"routes":[{"train":"L-7","connections":[["M30","L29","K28"]],"hexes":["M30","K28"],"revenue":90,"revenue_str":"M30-K28"}]},{"type":"pass","entity":"16","entity_type":"corporation","id":260,"created_at":1617569304},{"type":"pass","entity":"3","entity_type":"corporation","id":261,"created_at":1617569309},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":262,"created_at":1617569314,"hex":"G4","tile":"619-2","rotation":5},{"type":"run_routes","entity":"3","entity_type":"corporation","id":263,"created_at":1617569317,"routes":[{"train":"L-8","connections":[["H5","G4"]],"hexes":["H5","G4"],"revenue":60,"revenue_str":"H5-G4"}]},{"type":"pass","entity":"3","entity_type":"corporation","id":264,"created_at":1617569320},{"type":"pass","entity":"1","entity_type":"corporation","id":265,"created_at":1617569324},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":266,"created_at":1617569328,"hex":"G2","tile":"8-3","rotation":4},{"type":"run_routes","entity":"1","entity_type":"corporation","id":267,"created_at":1617569335,"routes":[{"train":"L-13","connections":[["G4","G2","H1"]],"hexes":["H1","G4"],"revenue":70,"revenue_str":"H1-G4"}]},{"type":"pass","entity":"1","entity_type":"corporation","id":268,"created_at":1617569359},{"type":"pass","entity":"CR","entity_type":"corporation","id":269,"created_at":1617569372},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":270,"created_at":1617569378,"hex":"H11","tile":"7-0","rotation":1},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":271,"created_at":1617569382,"hex":"G12","tile":"6-2","rotation":4},{"type":"hex_token","entity":"CR","entity_type":"corporation","id":272,"created_at":1617569392,"hex":"G12","token_type":"destination"},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":273,"created_at":1617569407,"routes":[{"train":"3-0","connections":[["E6","E8","F9","G10","H11","G12"],["E2","E4","E6"]],"hexes":["G12","E6","E2"],"revenue":100,"revenue_str":"G12-E6-E2 (£20)"}]},{"type":"dividend","entity":"CR","entity_type":"corporation","id":274,"created_at":1617569410,"kind":"payout"},{"type":"pass","entity":"CR","entity_type":"corporation","id":275,"created_at":1617569415},{"type":"merge","entity":"CR","entity_type":"corporation","id":276,"created_at":1617569430,"corporation":"2"},{"type":"choose","entity":"CR","entity_type":"corporation","id":277,"created_at":1617569435,"choice":"two_shares"},{"type":"choose","entity":"CR","entity_type":"corporation","id":278,"created_at":1617569438,"choice":"exchange"},{"type":"pass","entity":"CR","entity_type":"corporation","id":279,"created_at":1617569444},{"type":"acquire_company","entity":"MR","entity_type":"corporation","id":280,"created_at":1617569512,"company":"P6"},{"type":"acquire_company","entity":"MR","entity_type":"corporation","id":281,"created_at":1617569515,"company":"P9"},{"type":"pass","entity":"MR","entity_type":"corporation","id":282,"created_at":1617569516},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":283,"created_at":1617569522,"hex":"L29","tile":"83-0","rotation":2},{"type":"pass","entity":"MR","entity_type":"corporation","id":284,"created_at":1617569525},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":285,"created_at":1617569533,"routes":[{"train":"3-1","connections":[["J29","K30","L29","M30"],["I30","J29"]],"hexes":["M30","J29","I30"],"revenue":140,"revenue_str":"M30-J29-I30"}]},{"type":"dividend","entity":"MR","entity_type":"corporation","id":286,"created_at":1617569534,"kind":"payout"},{"type":"pass","entity":"MR","entity_type":"corporation","id":287,"created_at":1617569536},{"type":"merge","entity":"MR","entity_type":"corporation","id":288,"created_at":1617569541,"corporation":"29"},{"type":"choose","entity":"MR","entity_type":"corporation","id":289,"created_at":1617569542,"choice":"two_shares"},{"type":"choose","entity":"MR","entity_type":"corporation","id":290,"created_at":1617569545,"choice":"exchange"},{"type":"pass","entity":"MR","entity_type":"corporation","id":291,"created_at":1617569547},{"type":"bid","entity":1739,"entity_type":"player","id":292,"created_at":1617569562,"company":"P15","price":60},{"type":"bid","entity":1739,"entity_type":"player","id":293,"created_at":1617569570,"company":"P2","price":25},{"type":"bid","entity":1739,"entity_type":"player","id":294,"created_at":1617569576,"company":"P18","price":15},{"type":"par","entity":3828,"entity_type":"player","id":295,"created_at":1617569589,"corporation":"LYR","share_price":"80,5,4"},{"type":"bid","entity":8145,"entity_type":"player","id":296,"created_at":1617569659,"company":"P15","price":65},{"type":"bid","entity":8145,"entity_type":"player","id":297,"created_at":1617569664,"company":"P18","price":20},{"type":"bid","entity":8145,"entity_type":"player","id":298,"created_at":1617569666,"company":"P2","price":30},{"type":"bid","entity":1739,"entity_type":"player","id":299,"created_at":1617569675,"company":"P15","price":70},{"type":"pass","entity":1739,"entity_type":"player","id":300,"created_at":1617569682},{"type":"buy_shares","entity":3828,"entity_type":"player","id":301,"created_at":1617569689,"shares":["LYR_1"],"percent":10},{"type":"program_buy_shares","entity":3828,"entity_type":"player","id":302,"created_at":1617569699,"corporation":"CR","until_condition":1,"from_market":false},{"type":"buy_shares","entity":8145,"entity_type":"player","id":303,"created_at":1617569717,"shares":["CR_3"],"percent":10},{"type":"buy_shares","entity":1739,"entity_type":"player","id":304,"created_at":1617569732,"shares":["CR_4"],"percent":10},{"type":"pass","entity":3828,"entity_type":"player","id":305,"created_at":1617569742},{"type":"program_disable","entity":3828,"entity_type":"player","id":306,"created_at":1617569746,"reason":"user"},{"type":"program_share_pass","entity":3828,"entity_type":"player","id":307,"created_at":1617569752},{"type":"buy_shares","entity":8145,"entity_type":"player","id":308,"created_at":1617569780,"shares":["CR_5"],"percent":10},{"type":"bid","entity":1739,"entity_type":"player","id":309,"created_at":1617569789,"company":"P18","price":25},{"type":"pass","entity":1739,"entity_type":"player","id":310,"created_at":1617569792,"auto_actions":[{"type":"pass","entity":3828,"entity_type":"player","created_at":1617569791}]},{"type":"pass","entity":8145,"entity_type":"player","id":311,"created_at":1617569805},{"type":"pass","entity":1739,"entity_type":"player","id":312,"created_at":1617569808},{"type":"pass","entity":"27","entity_type":"corporation","id":313,"created_at":1617569835},{"type":"lay_tile","entity":"27","entity_type":"corporation","id":314,"created_at":1617569896,"hex":"G14","tile":"9-5","rotation":0},{"type":"run_routes","entity":"27","entity_type":"corporation","id":315,"created_at":1617569923,"routes":[{"train":"L-1","connections":[["E6","E8","F9","G10","H11","G12"]],"hexes":["G12","E6"],"revenue":70,"revenue_str":"G12-E6"}]},{"type":"pass","entity":"27","entity_type":"corporation","id":316,"created_at":1617569928},{"type":"pass","entity":"16","entity_type":"corporation","id":317,"created_at":1617569943},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":318,"created_at":1617569958,"hex":"K26","tile":"8-4","rotation":0},{"type":"run_routes","entity":"16","entity_type":"corporation","id":319,"created_at":1617569962,"routes":[{"train":"L-7","connections":[["M30","L29","K28"]],"hexes":["M30","K28"],"revenue":90,"revenue_str":"M30-K28"}]},{"type":"pass","entity":"16","entity_type":"corporation","id":320,"created_at":1617569966},{"type":"pass","entity":"3","entity_type":"corporation","id":321,"created_at":1617569969},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":322,"created_at":1617569973,"hex":"H5","tile":"207-0","rotation":5},{"type":"run_routes","entity":"3","entity_type":"corporation","id":323,"created_at":1617569975,"routes":[{"train":"L-8","connections":[["H5","G4"]],"hexes":["H5","G4"],"revenue":70,"revenue_str":"H5-G4"}]},{"type":"pass","entity":"3","entity_type":"corporation","id":324,"created_at":1617569979},{"type":"pass","entity":"1","entity_type":"corporation","id":325,"created_at":1617569982},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":326,"created_at":1617570006,"hex":"G6","tile":"81-0","rotation":0},{"type":"run_routes","entity":"1","entity_type":"corporation","id":327,"created_at":1617570011,"routes":[{"train":"L-13","connections":[["G4","G2","H1"]],"hexes":["G4","H1"],"revenue":70,"revenue_str":"G4-H1"}]},{"type":"pass","entity":"1","entity_type":"corporation","id":328,"created_at":1617570027},{"type":"pass","entity":"MR","entity_type":"corporation","id":329,"created_at":1617570029},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":330,"created_at":1617570042,"hex":"K26","tile":"81-1","rotation":0},{"type":"pass","entity":"MR","entity_type":"corporation","id":331,"created_at":1617570047},{"type":"pass","entity":"MR","entity_type":"corporation","id":332,"created_at":1617570049},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":333,"created_at":1617570057,"routes":[{"train":"3-1","connections":[["J29","K30","L29","M30"],["I30","J29"]],"hexes":["M30","J29","I30"],"revenue":140,"revenue_str":"M30-J29-I30"},{"train":"L-2","connections":[["J29","K28"]],"hexes":["K28","J29"],"revenue":60,"revenue_str":"K28-J29"}]},{"type":"dividend","entity":"MR","entity_type":"corporation","id":334,"created_at":1617570059,"kind":"payout"},{"type":"buy_train","entity":"MR","entity_type":"corporation","id":335,"created_at":1617570062,"train":"3-3","price":200,"variant":"3"},{"type":"pass","entity":"MR","entity_type":"corporation","id":336,"created_at":1617570064},{"type":"pass","entity":"MR","entity_type":"corporation","id":337,"created_at":1617570075},{"type":"pass","entity":"MR","entity_type":"corporation","id":338,"created_at":1617570077},{"type":"acquire_company","entity":"LYR","entity_type":"corporation","id":339,"created_at":1617570099,"company":"P3"},{"type":"pass","entity":"LYR","entity_type":"corporation","id":340,"created_at":1617570102},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":341,"created_at":1617570112,"hex":"H23","tile":"6-3","rotation":2},{"id":342,"type":"pass","entity":"LYR","entity_type":"corporation","user":3828,"created_at":1617570128,"skip":true},{"id":343,"hex":"I22","type":"hex_token","entity":"LYR","token_type":"destination","entity_type":"corporation","user":3828,"created_at":1617570132,"skip":true},{"id":344,"type":"run_routes","entity":"LYR","routes":[{"hexes":["H23","I22"],"train":"2P-0","revenue":60,"connections":[["I22","H23"]],"revenue_str":"H23-I22"}],"entity_type":"corporation","user":3828,"created_at":1617570146,"skip":true},{"id":345,"kind":"payout","type":"dividend","entity":"LYR","entity_type":"corporation","user":3828,"created_at":1617570149,"skip":true},{"id":346,"type":"buy_train","price":200,"train":"3-4","entity":"LYR","variant":"3","entity_type":"corporation","user":3828,"created_at":1617570152,"skip":true},{"id":347,"type":"undo","entity":"LYR","entity_type":"corporation","user":3828,"created_at":1617570164,"skip":true},{"id":348,"type":"undo","entity":"LYR","entity_type":"corporation","user":3828,"created_at":1617570169,"skip":true},{"id":349,"type":"undo","entity":"LYR","entity_type":"corporation","user":3828,"created_at":1617570174,"skip":true},{"id":350,"type":"undo","entity":"LYR","entity_type":"corporation","user":3828,"created_at":1617570178,"skip":true},{"id":351,"type":"undo","entity":"LYR","entity_type":"corporation","user":3828,"created_at":1617570184,"skip":true},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":352,"created_at":1617570191,"hex":"I24","tile":"8-5","rotation":3},{"type":"hex_token","entity":"LYR","entity_type":"corporation","id":353,"created_at":1617570196,"hex":"I22","token_type":"destination"},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":354,"created_at":1617570206,"routes":[{"train":"2P-0","connections":[["I22","H23"]],"hexes":["H23","I22"],"revenue":60,"revenue_str":"H23-I22"}]},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":355,"created_at":1617570208,"kind":"payout"},{"type":"buy_train","entity":"LYR","entity_type":"corporation","id":356,"created_at":1617570211,"train":"3-4","price":200,"variant":"3"},{"type":"pass","entity":"LYR","entity_type":"corporation","id":357,"created_at":1617570215},{"type":"pass","entity":"CR","entity_type":"corporation","id":358,"created_at":1617570220},{"type":"message","entity":3828,"entity_type":"player","id":359,"created_at":1617570224,"message":"cant get closer than that"},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":360,"created_at":1617570226,"hex":"G12","tile":"15-0","rotation":3},{"type":"place_token","entity":"CR","entity_type":"corporation","id":361,"created_at":1617570245,"city":"H1-0-0","slot":1},{"type":"message","entity":1739,"entity_type":"player","id":362,"created_at":1617570272,"message":"oof that works for me"},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":363,"created_at":1617570277,"routes":[{"train":"3-0","connections":[["G4","H5"],["H1","G2","G4"]],"hexes":["H5","G4","H1"],"revenue":110,"revenue_str":"H5-G4-H1"},{"train":"L-3","connections":[["E6","E8","F9","G10","H11","G12"]],"hexes":["G12","E6"],"revenue":110,"revenue_str":"G12-E6 (£30)"}]},{"id":364,"kind":"half","type":"dividend","entity":"CR","entity_type":"corporation","user":8145,"created_at":1617570289,"skip":true},{"id":365,"type":"undo","entity":"CR","entity_type":"corporation","user":8145,"created_at":1617570301,"skip":true},{"type":"dividend","entity":"CR","entity_type":"corporation","id":366,"created_at":1617570307,"kind":"payout"},{"type":"buy_train","entity":"CR","entity_type":"corporation","id":367,"created_at":1617570308,"train":"3-5","price":200,"variant":"3"},{"type":"pass","entity":"CR","entity_type":"corporation","id":368,"created_at":1617570316},{"type":"pass","entity":"CR","entity_type":"corporation","id":369,"created_at":1617570321},{"type":"pass","entity":"CR","entity_type":"corporation","id":370,"created_at":1617570323},{"type":"pass","entity":"27","entity_type":"corporation","id":371,"created_at":1617570329},{"type":"lay_tile","entity":"27","entity_type":"corporation","id":372,"created_at":1617570360,"hex":"H13","tile":"58-1","rotation":0},{"type":"run_routes","entity":"27","entity_type":"corporation","id":373,"created_at":1617570367,"routes":[{"train":"L-1","connections":[["E6","E8","F9","G10","H11","G12"]],"hexes":["E6","G12"],"revenue":80,"revenue_str":"E6-G12"}]},{"type":"pass","entity":"27","entity_type":"corporation","id":374,"created_at":1617570393},{"type":"pass","entity":"16","entity_type":"corporation","id":375,"created_at":1617570396},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":376,"created_at":1617570403,"hex":"J25","tile":"9-1","rotation":2},{"type":"run_routes","entity":"16","entity_type":"corporation","id":377,"created_at":1617570406,"routes":[{"train":"L-7","connections":[["M30","L29","K28"]],"hexes":["M30","K28"],"revenue":90,"revenue_str":"M30-K28"}]},{"type":"pass","entity":"16","entity_type":"corporation","id":378,"created_at":1617570411},{"type":"pass","entity":"3","entity_type":"corporation","id":379,"created_at":1617570415},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":380,"created_at":1617570429,"hex":"F5","tile":"141-0","rotation":4},{"type":"run_routes","entity":"3","entity_type":"corporation","id":381,"created_at":1617570431,"routes":[{"train":"L-8","connections":[["H5","G4"]],"hexes":["H5","G4"],"revenue":70,"revenue_str":"H5-G4"}]},{"type":"buy_train","entity":"3","entity_type":"corporation","id":382,"created_at":1617570448,"train":"3-1","price":125},{"type":"pass","entity":"1","entity_type":"corporation","id":383,"created_at":1617570453},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":384,"created_at":1617570466,"hex":"G2","tile":"83-1","rotation":1},{"type":"run_routes","entity":"1","entity_type":"corporation","id":385,"created_at":1617570471,"routes":[{"train":"L-13","connections":[["G4","G2","H1"]],"hexes":["G4","H1"],"revenue":70,"revenue_str":"G4-H1"}]},{"type":"buy_train","entity":"1","entity_type":"corporation","id":386,"created_at":1617570484,"train":"3-3","price":105},{"type":"pass","entity":"MR","entity_type":"corporation","id":387,"created_at":1617570489},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":388,"created_at":1617570496,"hex":"G20","tile":"58-2","rotation":4},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":389,"created_at":1617570500,"hex":"H19","tile":"6-4","rotation":1},{"type":"pass","entity":"MR","entity_type":"corporation","id":390,"created_at":1617570504},{"type":"place_token","entity":"MR","entity_type":"corporation","id":391,"created_at":1617570517,"city":"I22-0-0","slot":1},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":392,"created_at":1617570531,"routes":[{"train":"L-2","connections":[["J29","K30","L29","M30"]],"hexes":["M30","J29"],"revenue":90,"revenue_str":"M30-J29"}]},{"type":"dividend","entity":"MR","entity_type":"corporation","id":393,"created_at":1617570533,"kind":"payout"},{"type":"buy_train","entity":"MR","entity_type":"corporation","id":394,"created_at":1617570535,"train":"4-0","price":300,"variant":"4"},{"type":"pass","entity":"MR","entity_type":"corporation","id":395,"created_at":1617570540},{"type":"pass","entity":"MR","entity_type":"corporation","id":396,"created_at":1617570546},{"type":"pass","entity":"MR","entity_type":"corporation","id":397,"created_at":1617570549},{"type":"pass","entity":"CR","entity_type":"corporation","id":398,"created_at":1617570563},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":399,"created_at":1617570579,"hex":"F9","tile":"82-0","rotation":2},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":400,"created_at":1617570605,"routes":[{"train":"3-0","connections":[["G4","H5"],["H1","G2","G4"]],"hexes":["H5","G4","H1"],"revenue":110,"revenue_str":"H5-G4-H1"},{"train":"3-5","connections":[["E6","E8","F9","G10","H11","G12"],["E2","E4","E6"]],"hexes":["G12","E6","E2"],"revenue":120,"revenue_str":"G12-E6-E2 (£30)"}]},{"type":"dividend","entity":"CR","entity_type":"corporation","id":401,"created_at":1617570626,"kind":"withhold"},{"type":"pass","entity":"CR","entity_type":"corporation","id":402,"created_at":1617570630},{"type":"merge","entity":"CR","entity_type":"corporation","id":403,"created_at":1617570638,"corporation":"27"},{"type":"choose","entity":"CR","entity_type":"corporation","id":404,"created_at":1617570639,"choice":"two_shares"},{"type":"choose","entity":"CR","entity_type":"corporation","id":405,"created_at":1617570646,"choice":"exchange"},{"type":"pass","entity":"CR","entity_type":"corporation","id":406,"created_at":1617570655},{"type":"pass","entity":"LYR","entity_type":"corporation","id":407,"created_at":1617570661},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":408,"created_at":1617570670,"hex":"G22","tile":"208-0","rotation":2},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":409,"created_at":1617570700,"routes":[{"train":"2P-0","connections":[["I22","I24","J25","K26","K28"]],"hexes":["K28","I22"],"revenue":70,"revenue_str":"K28-I22"},{"train":"3-4","connections":[["H23","G22"],["I22","H23"]],"hexes":["G22","H23","I22"],"revenue":140,"revenue_str":"G22-H23-I22 (£40)"}]},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":410,"created_at":1617570703,"kind":"payout"},{"type":"pass","entity":"LYR","entity_type":"corporation","id":411,"created_at":1617570707},{"type":"merge","entity":"LYR","entity_type":"corporation","id":412,"created_at":1617570712,"corporation":"16"},{"type":"choose","entity":"LYR","entity_type":"corporation","id":413,"created_at":1617570716,"choice":"two_shares"},{"type":"choose","entity":"LYR","entity_type":"corporation","id":414,"created_at":1617570720,"choice":"replace"},{"type":"pass","entity":"LYR","entity_type":"corporation","id":415,"created_at":1617570724},{"type":"buy_shares","entity":1739,"entity_type":"player","id":416,"created_at":1617570734,"shares":["LYR_4"],"percent":10},{"type":"buy_shares","entity":8145,"entity_type":"player","id":417,"created_at":1617570749,"shares":["LYR_5"],"percent":10},{"type":"buy_shares","entity":3828,"entity_type":"player","id":418,"created_at":1617570768,"shares":["LYR_6"],"percent":10},{"type":"buy_shares","entity":1739,"entity_type":"player","id":419,"created_at":1617570777,"shares":["LYR_7"],"percent":10},{"type":"bid","entity":8145,"entity_type":"player","id":420,"created_at":1617570790,"company":"P4","price":50},{"type":"bid","entity":8145,"entity_type":"player","id":421,"created_at":1617570795,"company":"P16","price":20},{"type":"bid","entity":8145,"entity_type":"player","id":422,"created_at":1617570803,"company":"P20","price":20},{"type":"buy_shares","entity":3828,"entity_type":"player","id":423,"created_at":1617570820,"shares":["CR_8"],"percent":10},{"type":"program_share_pass","entity":3828,"entity_type":"player","id":424,"created_at":1617570829},{"type":"buy_shares","entity":1739,"entity_type":"player","id":425,"created_at":1617570830,"shares":["LYR_8"],"percent":10},{"type":"message","entity":3828,"entity_type":"player","id":426,"created_at":1617570845,"message":"on auto pass brb"},{"type":"message","entity":1739,"entity_type":"player","id":427,"created_at":1617570850,"message":"sure"},{"type":"pass","entity":8145,"entity_type":"player","id":428,"created_at":1617570884,"auto_actions":[{"type":"pass","entity":3828,"entity_type":"player","created_at":1617570884}]},{"type":"bid","entity":1739,"entity_type":"player","id":429,"created_at":1617570893,"company":"P4","price":80},{"type":"bid","entity":1739,"entity_type":"player","id":430,"created_at":1617570904,"company":"P20","price":40},{"type":"pass","entity":1739,"entity_type":"player","id":431,"created_at":1617570907},{"type":"bid","entity":8145,"entity_type":"player","id":432,"created_at":1617570943,"company":"P4","price":85},{"type":"bid","entity":8145,"entity_type":"player","id":433,"created_at":1617570960,"company":"P20","price":50},{"type":"pass","entity":8145,"entity_type":"player","id":434,"created_at":1617570966,"auto_actions":[{"type":"pass","entity":3828,"entity_type":"player","created_at":1617570967}]},{"type":"bid","entity":1739,"entity_type":"player","id":435,"created_at":1617570975,"company":"P4","price":90},{"type":"bid","entity":1739,"entity_type":"player","id":436,"created_at":1617570982,"company":"P16","price":30},{"type":"pass","entity":1739,"entity_type":"player","id":437,"created_at":1617570984},{"type":"bid","entity":8145,"entity_type":"player","id":438,"created_at":1617571019,"company":"P4","price":95},{"type":"pass","entity":8145,"entity_type":"player","id":439,"created_at":1617571030,"auto_actions":[{"type":"pass","entity":3828,"entity_type":"player","created_at":1617571030}]},{"type":"pass","entity":1739,"entity_type":"player","id":440,"created_at":1617571044},{"type":"buy_shares","entity":8145,"entity_type":"player","id":441,"created_at":1617571051,"auto_actions":[{"type":"pass","entity":3828,"entity_type":"player","created_at":1617571052}],"shares":["MR_3"],"percent":10},{"type":"pass","entity":1739,"entity_type":"player","id":442,"created_at":1617571062},{"type":"sell_shares","entity":8145,"entity_type":"player","id":443,"created_at":1617571071,"shares":["MR_3"],"percent":10},{"type":"pass","entity":8145,"entity_type":"player","id":444,"created_at":1617571094,"auto_actions":[{"type":"program_disable","entity":3828,"entity_type":"player","created_at":1617571094,"reason":"Shares were sold"}]},{"type":"pass","entity":3828,"entity_type":"player","id":445,"created_at":1617571106},{"type":"pass","entity":1739,"entity_type":"player","id":446,"created_at":1617571109},{"type":"pass","entity":8145,"entity_type":"player","id":447,"created_at":1617571116},{"type":"pass","entity":"3","entity_type":"corporation","id":448,"created_at":1617571120},{"type":"message","entity":3828,"entity_type":"player","id":449,"created_at":1617571150,"message":"BLT fpr dinner, oh yeah"},{"type":"message","entity":3828,"entity_type":"player","id":450,"created_at":1617571155,"message":"for"},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":451,"created_at":1617571240,"hex":"H11","tile":"83-2","rotation":2},{"type":"run_routes","entity":"3","entity_type":"corporation","id":452,"created_at":1617571259,"routes":[{"train":"3-1","connections":[["G4","H5"],["H1","G2","G4"]],"hexes":["H5","G4","H1"],"revenue":110,"revenue_str":"H5-G4-H1"}]},{"type":"pass","entity":"1","entity_type":"corporation","id":453,"created_at":1617571261},{"type":"pass","entity":"1","entity_type":"corporation","id":454,"created_at":1617571269},{"type":"run_routes","entity":"1","entity_type":"corporation","id":455,"created_at":1617571275,"routes":[{"train":"3-3","connections":[["G4","H5"],["H1","G2","G4"]],"hexes":["H5","G4","H1"],"revenue":110,"revenue_str":"H5-G4-H1"}]},{"type":"pass","entity":"LYR","entity_type":"corporation","id":456,"created_at":1617571280},{"type":"message","entity":1739,"entity_type":"player","id":457,"created_at":1617571286,"message":"stupid router is getting cranky again"},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":458,"created_at":1617571289,"hex":"I22","tile":"X2-0","rotation":0},{"type":"pass","entity":"LYR","entity_type":"corporation","id":459,"created_at":1617571303},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":460,"created_at":1617571319,"routes":[{"train":"2P-0","connections":[["I22","I24","J25","K26","K28"]],"hexes":["I22","K28"],"revenue":80,"revenue_str":"I22-K28"},{"train":"3-4","connections":[["H23","G22"],["I22","H23"]],"hexes":["G22","H23","I22"],"revenue":160,"revenue_str":"G22-H23-I22 (£50)"}]},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":461,"created_at":1617571325,"kind":"payout"},{"type":"buy_train","entity":"LYR","entity_type":"corporation","id":462,"created_at":1617571340,"train":"4-2","price":300,"variant":"4"},{"type":"pass","entity":"LYR","entity_type":"corporation","id":463,"created_at":1617571348},{"type":"pass","entity":"LYR","entity_type":"corporation","id":464,"created_at":1617571363},{"type":"pass","entity":"MR","entity_type":"corporation","id":465,"created_at":1617571366},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":466,"created_at":1617571372,"hex":"H17","tile":"4-2","rotation":0},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":467,"created_at":1617571377,"hex":"H15","tile":"9-6","rotation":0},{"type":"pass","entity":"MR","entity_type":"corporation","id":468,"created_at":1617571380},{"type":"pass","entity":"MR","entity_type":"corporation","id":469,"created_at":1617571385},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":470,"created_at":1617571409,"routes":[{"train":"4-0","connections":[["J29","K30","L29","M30"],["K28","J29"],["I22","I24","J25","K26","K28"]],"hexes":["M30","J29","K28","I22"],"revenue":170,"revenue_str":"M30-J29-K28-I22"}]},{"type":"dividend","entity":"MR","entity_type":"corporation","id":471,"created_at":1617571410,"kind":"payout"},{"type":"pass","entity":"MR","entity_type":"corporation","id":472,"created_at":1617571425},{"type":"merge","entity":"MR","entity_type":"corporation","id":473,"created_at":1617571435,"corporation":"1"},{"type":"choose","entity":"MR","entity_type":"corporation","id":474,"created_at":1617571438,"choice":"two_shares"},{"type":"choose","entity":"MR","entity_type":"corporation","id":475,"created_at":1617571440,"choice":"exchange"},{"type":"buy_shares","entity":"MR","entity_type":"corporation","id":476,"created_at":1617571443,"shares":["MR_3"],"percent":10},{"type":"pass","entity":"CR","entity_type":"corporation","id":477,"created_at":1617571456},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":478,"created_at":1617571485,"hex":"H19","tile":"14-0","rotation":0},{"type":"place_token","entity":"CR","entity_type":"corporation","id":479,"created_at":1617571492,"city":"X2-0-0","slot":2},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":480,"created_at":1617571529,"routes":[{"train":"3-0","connections":[["H23","G22"],["I22","H23"]],"hexes":["G22","H23","I22"],"revenue":110,"revenue_str":"G22-H23-I22"},{"train":"3-5","connections":[["E6","E8","F9","G10","H11","G12"],["E2","E4","E6"]],"hexes":["G12","E6","E2"],"revenue":120,"revenue_str":"G12-E6-E2 (£30)"}]},{"type":"dividend","entity":"CR","entity_type":"corporation","id":481,"created_at":1617571537,"kind":"half"},{"type":"buy_train","entity":"CR","entity_type":"corporation","id":482,"created_at":1617571577,"train":"4-3","price":300,"variant":"4"},{"type":"pass","entity":"3","entity_type":"corporation","id":483,"created_at":1617571628},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":484,"created_at":1617571652,"hex":"H21","tile":"69-0","rotation":1},{"type":"run_routes","entity":"3","entity_type":"corporation","id":485,"created_at":1617571657,"routes":[{"train":"3-1","connections":[["G4","H5"],["H1","G2","G4"]],"hexes":["H5","G4","H1"],"revenue":110,"revenue_str":"H5-G4-H1"}]},{"type":"pass","entity":"LYR","entity_type":"corporation","id":486,"created_at":1617571664},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":487,"created_at":1617571681,"hex":"H23","tile":"619-3","rotation":0},{"type":"pass","entity":"LYR","entity_type":"corporation","id":488,"created_at":1617571687},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":489,"created_at":1617571712,"routes":[{"train":"2P-0","connections":[["M30","L29","K28"]],"hexes":["K28","M30"],"revenue":90,"revenue_str":"K28-M30"},{"train":"3-4","connections":[["H23","G22"],["I22","H23"]],"hexes":["G22","H23","I22"],"revenue":170,"revenue_str":"G22-H23-I22 (£50)"},{"train":"4-2","connections":[["J29","I30"],["K28","J29"],["I22","I24","J25","K26","K28"]],"hexes":["I30","J29","K28","I22"],"revenue":160,"revenue_str":"I30-J29-K28-I22"}]},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":490,"created_at":1617571730,"kind":"payout"},{"type":"pass","entity":"LYR","entity_type":"corporation","id":491,"created_at":1617571743},{"type":"pass","entity":"LYR","entity_type":"corporation","id":492,"created_at":1617571748},{"type":"acquire_company","entity":"MR","entity_type":"corporation","id":493,"created_at":1617571758,"company":"P21"},{"type":"pass","entity":"MR","entity_type":"corporation","id":494,"created_at":1617571761},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":495,"created_at":1617571770,"hex":"L25","tile":"8-1","rotation":1},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":496,"created_at":1617571773,"hex":"L23","tile":"8-4","rotation":0},{"type":"pass","entity":"MR","entity_type":"corporation","id":497,"created_at":1617571778},{"type":"pass","entity":"MR","entity_type":"corporation","id":498,"created_at":1617571780},{"type":"pass","entity":"MR","entity_type":"corporation","id":499,"created_at":1617571793},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":500,"created_at":1617571847,"routes":[{"train":"4-0","connections":[["I22","H23"],["K28","K26","J25","I24","I22"],["J29","K28"]],"hexes":["H23","I22","K28","J29"],"revenue":140,"revenue_str":"H23-I22-K28-J29"},{"train":"3-3","connections":[["J29","K30","L29","M30"],["I30","J29"]],"hexes":["M30","J29","I30"],"revenue":140,"revenue_str":"M30-J29-I30"}]},{"type":"dividend","entity":"MR","entity_type":"corporation","id":501,"created_at":1617571850,"kind":"half"},{"type":"buy_train","entity":"MR","entity_type":"corporation","id":502,"created_at":1617571852,"train":"5-0","price":500,"variant":"5"},{"type":"discard_train","entity":"MR","entity_type":"corporation","id":503,"created_at":1617571855,"train":"3-3"},{"type":"discard_train","entity":"CR","entity_type":"corporation","id":504,"created_at":1617571864,"train":"3-0"},{"type":"pass","entity":"MR","entity_type":"corporation","id":505,"created_at":1617571878},{"type":"pass","entity":"MR","entity_type":"corporation","id":506,"created_at":1617571879},{"type":"acquire_company","entity":"CR","entity_type":"corporation","id":507,"created_at":1617571890,"company":"P13"},{"type":"acquire_company","entity":"CR","entity_type":"corporation","id":508,"created_at":1617571926,"company":"P4"},{"type":"pass","entity":"CR","entity_type":"corporation","id":509,"created_at":1617571931},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":510,"created_at":1617571999,"hex":"L25","tile":"81-2","rotation":1},{"type":"choose","entity":"CR","entity_type":"corporation","id":511,"created_at":1617572006,"choice":"1"},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":512,"created_at":1617572071,"routes":[{"train":"3-5","connections":[["H23","G22"],["I22","H23"]],"hexes":["G22","H23","I22"],"revenue":120,"revenue_str":"G22-H23-I22"},{"train":"4-3","connections":[["E6","F7"],["G12","H11","G10","F9","E8","E6"],["H13","G12"],["H17","H15","H13"],["H19","H17"],["H21","H19"],["I22","H21"]],"hexes":["F7","E6","G12","H13","H17","H19","H21","I22"],"revenue":240,"revenue_str":"F7-E6-G12-H13-H17-H19-H21-I22 (£30)"},{"train":"2P-1","connections":[["I22","I24","J25","K26","K28"]],"hexes":["K28","I22"],"revenue":80,"revenue_str":"K28-I22"}]},{"type":"dividend","entity":"CR","entity_type":"corporation","id":513,"created_at":1617572078,"kind":"half"},{"type":"pass","entity":"CR","entity_type":"corporation","id":514,"created_at":1617572090},{"type":"bid","entity":8145,"entity_type":"player","id":515,"created_at":1617572165,"company":"P7","price":30},{"type":"bid","entity":8145,"entity_type":"player","id":516,"created_at":1617572171,"company":"P14","price":50},{"type":"bid","entity":8145,"entity_type":"player","id":517,"created_at":1617572178,"company":"P19","price":50},{"type":"par","entity":1739,"entity_type":"player","id":518,"created_at":1617572189,"corporation":"NBR","share_price":"100,3,4"},{"type":"bid","entity":3828,"entity_type":"player","id":519,"created_at":1617572200,"company":"M10","price":200},{"type":"bid","entity":3828,"entity_type":"player","id":520,"created_at":1617572214,"company":"P19","price":70},{"type":"bid","entity":3828,"entity_type":"player","id":521,"created_at":1617572226,"company":"P7","price":40},{"type":"bid","entity":8145,"entity_type":"player","id":522,"created_at":1617572244,"company":"P7","price":45},{"type":"pass","entity":8145,"entity_type":"player","id":523,"created_at":1617572287},{"type":"buy_shares","entity":1739,"entity_type":"player","id":524,"created_at":1617572293,"shares":["NBR_1"],"percent":10},{"type":"bid","entity":3828,"entity_type":"player","id":525,"created_at":1617572301,"company":"P7","price":50},{"type":"pass","entity":3828,"entity_type":"player","id":526,"created_at":1617572305},{"type":"bid","entity":8145,"entity_type":"player","id":527,"created_at":1617572350,"company":"P7","price":55},{"type":"pass","entity":8145,"entity_type":"player","id":528,"created_at":1617572353},{"type":"buy_shares","entity":1739,"entity_type":"player","id":529,"created_at":1617572361,"shares":["NBR_2"],"percent":10},{"type":"pass","entity":3828,"entity_type":"player","id":530,"created_at":1617572364},{"type":"pass","entity":8145,"entity_type":"player","id":531,"created_at":1617572403},{"type":"buy_shares","entity":1739,"entity_type":"player","id":532,"created_at":1617572411,"shares":["NBR_3"],"percent":10},{"type":"pass","entity":3828,"entity_type":"player","id":533,"created_at":1617572419},{"type":"buy_shares","entity":8145,"entity_type":"player","id":534,"created_at":1617572448,"shares":["MR_6"],"percent":10},{"type":"choose_ability","entity":"P16","entity_type":"company","id":535,"created_at":1617572466,"choice":"MR_ipo"},{"type":"pass","entity":3828,"entity_type":"player","id":536,"created_at":1617572476},{"type":"buy_shares","entity":8145,"entity_type":"player","id":537,"created_at":1617572481,"shares":["MR_8"],"percent":10},{"type":"sell_shares","entity":1739,"entity_type":"player","id":538,"created_at":1617572490,"shares":["LYR_4"],"percent":10},{"type":"bid","entity":1739,"entity_type":"player","id":539,"created_at":1617572493,"company":"P19","price":75},{"type":"pass","entity":1739,"entity_type":"player","id":540,"created_at":1617572499},{"type":"buy_shares","entity":3828,"entity_type":"player","id":541,"created_at":1617572506,"shares":["MR_3"],"percent":10},{"type":"pass","entity":8145,"entity_type":"player","id":542,"created_at":1617572514},{"type":"pass","entity":1739,"entity_type":"player","id":543,"created_at":1617572521},{"type":"bid","entity":3828,"entity_type":"player","id":544,"created_at":1617572531,"company":"P19","price":80},{"type":"pass","entity":3828,"entity_type":"player","id":545,"created_at":1617572545},{"id":546,"type":"sell_shares","entity":8145,"shares":["LYR_5"],"percent":10,"entity_type":"player","user":8145,"created_at":1617572557,"skip":true},{"id":547,"type":"undo","entity":8145,"entity_type":"player","user":8145,"created_at":1617572641,"skip":true},{"type":"pass","entity":8145,"entity_type":"player","id":548,"created_at":1617572653},{"type":"bid","entity":1739,"entity_type":"player","id":549,"created_at":1617572665,"company":"P19","price":100},{"type":"pass","entity":1739,"entity_type":"player","id":550,"created_at":1617572666},{"type":"bid","entity":3828,"entity_type":"player","id":551,"created_at":1617572711,"company":"P19","price":135},{"type":"pass","entity":3828,"entity_type":"player","id":552,"created_at":1617572713},{"type":"message","entity":1739,"entity_type":"player","id":553,"created_at":1617572727,"message":"lol what do you need teh LP for?"},{"type":"message","entity":1739,"entity_type":"player","id":554,"created_at":1617572732,"message":"you already got 2P"},{"type":"message","entity":1739,"entity_type":"player","id":555,"created_at":1617572740,"message":"u still need to fund a train for the 10"},{"type":"sell_shares","entity":8145,"entity_type":"player","id":556,"created_at":1617572753,"shares":["MR_6","MR_8"],"percent":20},{"type":"buy_shares","entity":8145,"entity_type":"player","id":557,"created_at":1617572760,"shares":["LYR_4"],"percent":10},{"type":"bid","entity":1739,"entity_type":"player","id":558,"created_at":1617572768,"company":"P19","price":140},{"type":"pass","entity":1739,"entity_type":"player","id":559,"created_at":1617572770},{"type":"buy_shares","entity":3828,"entity_type":"player","id":560,"created_at":1617572793,"shares":["MR_6"],"percent":10},{"type":"program_share_pass","entity":3828,"entity_type":"player","id":561,"created_at":1617572800},{"type":"pass","entity":8145,"entity_type":"player","id":562,"created_at":1617572813},{"type":"pass","entity":1739,"entity_type":"player","id":563,"created_at":1617572818,"auto_actions":[{"type":"pass","entity":3828,"entity_type":"player","created_at":1617572817}]},{"type":"pass","entity":"3","entity_type":"corporation","id":564,"created_at":1617572831},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":565,"created_at":1617572855,"hex":"H13","tile":"142-0","rotation":3},{"type":"run_routes","entity":"3","entity_type":"corporation","id":566,"created_at":1617572858,"routes":[{"train":"3-1","connections":[["G4","H5"],["H1","G2","G4"]],"hexes":["H5","G4","H1"],"revenue":120,"revenue_str":"H5-G4-H1"}]},{"type":"pass","entity":"10","entity_type":"corporation","id":567,"created_at":1617572912},{"type":"lay_tile","entity":"10","entity_type":"corporation","id":568,"created_at":1617572941,"hex":"I28","tile":"8-6","rotation":4},{"type":"buy_train","entity":"10","entity_type":"corporation","id":569,"created_at":1617572957,"train":"4-2","price":200},{"type":"acquire_company","entity":"LYR","entity_type":"corporation","id":570,"created_at":1617572973,"company":"P1"},{"type":"pass","entity":"LYR","entity_type":"corporation","id":571,"created_at":1617572978},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":572,"created_at":1617572986,"hex":"I22","tile":"X7-0","rotation":0},{"type":"pass","entity":"LYR","entity_type":"corporation","id":573,"created_at":1617573040},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":574,"created_at":1617573075,"routes":[{"train":"2P-0","connections":[["M30","L29","K28"]],"hexes":["M30","K28"],"revenue":110,"revenue_str":"M30-K28"},{"train":"3-4","connections":[["H23","G22"],["I22","H23"]],"hexes":["G22","H23","I22"],"revenue":190,"revenue_str":"G22-H23-I22 (£60)"},{"train":"5P-0","connections":[["I30","H29","G28"],["J29","I30"],["K28","J29"],["I22","I24","J25","K26","K28"]],"hexes":["G28","I30","J29","K28","I22"],"revenue":190,"revenue_str":"G28-I30-J29-K28-I22"}]},{"type":"choose","entity":"LYR","entity_type":"corporation","id":575,"created_at":1617573081,"choice":"half"},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":576,"created_at":1617573086,"kind":"payout"},{"type":"pass","entity":"LYR","entity_type":"corporation","id":577,"created_at":1617573099},{"type":"pass","entity":"CR","entity_type":"corporation","id":578,"created_at":1617573118},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":579,"created_at":1617573129,"hex":"M26","tile":"4-3","rotation":2},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":580,"created_at":1617573132,"hex":"N27","tile":"8-3","rotation":0},{"type":"pass","entity":"CR","entity_type":"corporation","id":581,"created_at":1617573154},{"type":"choose","entity":"CR","entity_type":"corporation","id":582,"created_at":1617573157,"choice":"1"},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":583,"created_at":1617573170,"routes":[{"train":"3-5","connections":[["H23","G22"],["I22","H23"]],"hexes":["G22","H23","I22"],"revenue":130,"revenue_str":"G22-H23-I22"},{"train":"4-3","connections":[["E6","F7"],["G12","H11","G10","F9","E8","E6"],["H13","G12"],["H17","H15","H13"],["H19","H17"],["H21","H19"],["I22","H21"]],"hexes":["F7","E6","G12","H13","H17","H19","H21","I22"],"revenue":250,"revenue_str":"F7-E6-G12-H13-H17-H19-H21-I22 (£30)"},{"train":"2P-1","connections":[["I22","I24","J25","K26","K28"]],"hexes":["I22","K28"],"revenue":90,"revenue_str":"I22-K28"}]},{"type":"dividend","entity":"CR","entity_type":"corporation","id":584,"created_at":1617573182,"kind":"half"},{"type":"merge","entity":"CR","entity_type":"corporation","id":585,"created_at":1617573192,"corporation":"15"},{"type":"choose","entity":"CR","entity_type":"corporation","id":586,"created_at":1617573195,"choice":"money"},{"type":"choose","entity":"CR","entity_type":"corporation","id":587,"created_at":1617573197,"choice":"replace"},{"id":588,"type":"pass","entity":"MR","entity_type":"corporation","user":1739,"created_at":1617573204,"skip":true},{"id":589,"hex":"J27","tile":"9-7","type":"lay_tile","entity":"MR","rotation":0,"entity_type":"corporation","user":1739,"created_at":1617573217,"skip":true},{"id":590,"hex":"K22","tile":"8-7","type":"lay_tile","entity":"MR","rotation":3,"entity_type":"corporation","user":1739,"created_at":1617573222,"skip":true},{"id":591,"type":"pass","entity":"MR","entity_type":"corporation","user":1739,"created_at":1617573238,"skip":true},{"id":592,"type":"pass","entity":"MR","entity_type":"corporation","user":1739,"created_at":1617573242,"skip":true},{"id":593,"city":"619-1-0","slot":1,"type":"place_token","entity":"MR","entity_type":"corporation","user":1739,"created_at":1617573267,"skip":true},{"id":594,"type":"undo","entity":"MR","entity_type":"corporation","user":1739,"created_at":1617573273,"skip":true},{"id":595,"type":"pass","entity":"MR","entity_type":"corporation","user":1739,"created_at":1617573276,"skip":true},{"id":596,"type":"undo","entity":"MR","action_id":587,"entity_type":"corporation","user":1739,"created_at":1617573306,"skip":true},{"type":"pass","entity":"MR","entity_type":"corporation","id":597,"created_at":1617573308},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":598,"created_at":1617573321,"hex":"J27","tile":"7-1","rotation":5},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":599,"created_at":1617573326,"hex":"K22","tile":"8-7","rotation":3},{"type":"pass","entity":"MR","entity_type":"corporation","id":600,"created_at":1617573329},{"type":"pass","entity":"MR","entity_type":"corporation","id":601,"created_at":1617573330},{"type":"pass","entity":"MR","entity_type":"corporation","id":602,"created_at":1617573332},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":603,"created_at":1617573355,"routes":[{"train":"4-0","connections":[["J29","I30"],["K28","J29"],["M30","L29","K28"]],"hexes":["I30","J29","K28","M30"],"revenue":200,"revenue_str":"I30-J29-K28-M30"},{"train":"5-0","connections":[["H23","G22"],["I22","H23"],["K28","K26","J25","I24","I22"],["J29","J27","K28"]],"hexes":["G22","H23","I22","K28","J29"],"revenue":190,"revenue_str":"G22-H23-I22-K28-J29"}]},{"type":"dividend","entity":"MR","entity_type":"corporation","id":604,"created_at":1617573357,"kind":"payout"},{"type":"pass","entity":"MR","entity_type":"corporation","id":605,"created_at":1617573366},{"type":"buy_shares","entity":"MR","entity_type":"corporation","id":606,"created_at":1617573367,"shares":["MR_8"],"percent":10},{"id":607,"type":"acquire_company","entity":"NBR","company":"P19","entity_type":"corporation","user":1739,"created_at":1617573373,"skip":true},{"id":608,"type":"pass","entity":"NBR","entity_type":"corporation","user":1739,"created_at":1617573379,"skip":true},{"id":609,"hex":"H5","tile":"X5-0","type":"lay_tile","entity":"NBR","rotation":5,"entity_type":"corporation","user":1739,"created_at":1617573384,"skip":true},{"id":610,"hex":"H1","type":"hex_token","entity":"NBR","token_type":"destination","entity_type":"corporation","user":1739,"created_at":1617573387,"skip":true},{"id":611,"type":"pass","entity":"NBR","entity_type":"corporation","user":1739,"created_at":1617573393,"skip":true},{"id":612,"type":"run_routes","entity":"NBR","routes":[{"hexes":["F5","H5"],"train":"LP-0","revenue":60,"connections":[["H5","G6","F5"]],"revenue_str":"F5-H5"}],"entity_type":"corporation","user":1739,"created_at":1617573399,"skip":true},{"id":613,"type":"undo","entity":"NBR","action_id":606,"entity_type":"corporation","user":1739,"created_at":1617573406,"skip":true},{"type":"acquire_company","entity":"NBR","entity_type":"corporation","id":614,"created_at":1617573411,"company":"P15"},{"type":"acquire_company","entity":"NBR","entity_type":"corporation","id":615,"created_at":1617573413,"company":"P19"},{"type":"pass","entity":"NBR","entity_type":"corporation","id":616,"created_at":1617573414},{"type":"lay_tile","entity":"NBR","entity_type":"corporation","id":617,"created_at":1617573420,"hex":"H5","tile":"X5-0","rotation":5},{"type":"hex_token","entity":"NBR","entity_type":"corporation","id":618,"created_at":1617573423,"hex":"H1","token_type":"destination"},{"type":"pass","entity":"NBR","entity_type":"corporation","id":619,"created_at":1617573425},{"type":"run_routes","entity":"NBR","entity_type":"corporation","id":620,"created_at":1617573431,"routes":[{"train":"LP-0","connections":[["H5","G6","F5"]],"hexes":["F5","H5"],"revenue":60,"revenue_str":"F5-H5"}]},{"type":"dividend","entity":"NBR","entity_type":"corporation","id":621,"created_at":1617573433,"kind":"payout"},{"type":"buy_train","entity":"NBR","entity_type":"corporation","id":622,"created_at":1617573437,"train":"6-0","price":600,"variant":"6"},{"type":"pass","entity":"NBR","entity_type":"corporation","id":623,"created_at":1617573453},{"type":"pass","entity":"3","entity_type":"corporation","id":624,"created_at":1617573455},{"type":"lay_tile","entity":"3","entity_type":"corporation","id":625,"created_at":1617573474,"hex":"K20","tile":"6-5","rotation":4},{"type":"buy_train","entity":"3","entity_type":"corporation","id":626,"created_at":1617573513,"train":"4-0","price":169},{"type":"pass","entity":"10","entity_type":"corporation","id":627,"created_at":1617573518},{"type":"lay_tile","entity":"10","entity_type":"corporation","id":628,"created_at":1617573543,"hex":"J27","tile":"80-0","rotation":5},{"type":"run_routes","entity":"10","entity_type":"corporation","id":629,"created_at":1617573564,"routes":[{"train":"4-2","connections":[["K28","L29","M30"],["J29","K28"],["I30","I28","J27","J29"]],"hexes":["M30","K28","J29","I30"],"revenue":200,"revenue_str":"M30-K28-J29-I30"}]},{"type":"pass","entity":"LYR","entity_type":"corporation","id":630,"created_at":1617573569},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":631,"created_at":1617573588,"hex":"K28","tile":"63-0","rotation":0},{"type":"pass","entity":"LYR","entity_type":"corporation","id":632,"created_at":1617573595},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":633,"created_at":1617573627,"routes":[{"train":"2P-0","connections":[["M30","L29","K28"]],"hexes":["K28","M30"],"revenue":120,"revenue_str":"K28-M30"},{"train":"5P-0","connections":[["K28","J27","I28","I30"],["I22","I24","J25","K26","K28"],["H23","I22"],["G22","H23"]],"hexes":["I30","K28","I22","H23","G22"],"revenue":290,"revenue_str":"I30-K28-I22-H23-G22 (£60)"}]},{"type":"choose","entity":"LYR","entity_type":"corporation","id":634,"created_at":1617573631,"choice":"half"},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":635,"created_at":1617573636,"kind":"payout"},{"type":"pass","entity":"LYR","entity_type":"corporation","id":636,"created_at":1617573640},{"type":"merge","entity":"LYR","entity_type":"corporation","id":637,"created_at":1617573648,"corporation":"10"},{"type":"choose","entity":"LYR","entity_type":"corporation","id":638,"created_at":1617573651,"choice":"money"},{"type":"choose","entity":"LYR","entity_type":"corporation","id":639,"created_at":1617573656,"choice":"replace"},{"type":"acquire_company","entity":"CR","entity_type":"corporation","id":640,"created_at":1617573716,"company":"P11"},{"type":"acquire_company","entity":"CR","entity_type":"corporation","id":641,"created_at":1617573719,"company":"P12"},{"type":"acquire_company","entity":"CR","entity_type":"corporation","id":642,"created_at":1617573723,"company":"P20"},{"type":"acquire_company","entity":"CR","entity_type":"corporation","id":643,"created_at":1617573727,"company":"P7"},{"type":"pass","entity":"CR","entity_type":"corporation","id":644,"created_at":1617573747},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":645,"created_at":1617573789,"hex":"H11","tile":"545-0","rotation":5},{"type":"lay_tile","entity":"P12","entity_type":"company","id":646,"created_at":1617573815,"hex":"H19","tile":"611-0","rotation":3},{"type":"pass","entity":"CR","entity_type":"corporation","id":647,"created_at":1617573824},{"type":"place_token","entity":"CR","entity_type":"corporation","id":648,"created_at":1617573842,"city":"X5-0-0","slot":2},{"type":"choose","entity":"CR","entity_type":"corporation","id":649,"created_at":1617573847,"choice":"0"},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":650,"created_at":1617573934,"routes":[{"train":"4-3","connections":[["H13","H11","G10","F9","E8","E6"],["H17","H15","H13"],["H19","H17"],["H21","H19"],["I22","H21"],["M26","L25","K26","J25","I24","I22"],["N29","N27","M26"]],"hexes":["E6","H13","H17","H19","H21","I22","M26","N29"],"revenue":280,"revenue_str":"E6-H13-H17-H19-H21-I22-M26-N29"},{"train":"2P-1","connections":[["I22","H23"]],"hexes":["H23","I22"],"revenue":90,"revenue_str":"H23-I22"}]},{"type":"dividend","entity":"CR","entity_type":"corporation","id":651,"created_at":1617573968,"kind":"half"},{"type":"pass","entity":"CR","entity_type":"corporation","id":652,"created_at":1617573979},{"type":"pass","entity":"CR","entity_type":"corporation","id":653,"created_at":1617573988},{"type":"pass","entity":"MR","entity_type":"corporation","id":654,"created_at":1617573999},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":655,"created_at":1617574005,"hex":"J27","tile":"546-0","rotation":3},{"type":"pass","entity":"MR","entity_type":"corporation","id":656,"created_at":1617574008},{"type":"pass","entity":"MR","entity_type":"corporation","id":657,"created_at":1617574010},{"type":"place_token","entity":"MR","entity_type":"corporation","id":658,"created_at":1617574023,"city":"I30-0-0","slot":1},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":659,"created_at":1617574047,"routes":[{"train":"5-0","connections":[["K28","K26","J25","I24","I22"],["I30","I28","J27","K28"],["J29","I30"],["M30","L29","K30","J29"]],"hexes":["I22","K28","I30","J29","M30"],"revenue":270,"revenue_str":"I22-K28-I30-J29-M30"}]},{"type":"dividend","entity":"MR","entity_type":"corporation","id":660,"created_at":1617574049,"kind":"payout"},{"type":"buy_train","entity":"MR","entity_type":"corporation","id":661,"created_at":1617574052,"train":"6-1","price":600,"variant":"6"},{"type":"pass","entity":"MR","entity_type":"corporation","id":662,"created_at":1617574054},{"type":"acquire_company","entity":"NBR","entity_type":"corporation","id":663,"created_at":1617574062,"company":"P18"},{"type":"pass","entity":"NBR","entity_type":"corporation","id":664,"created_at":1617574064},{"type":"lay_tile","entity":"NBR","entity_type":"corporation","id":665,"created_at":1617574083,"hex":"J25","tile":"82-1","rotation":5},{"type":"run_routes","entity":"NBR","entity_type":"corporation","id":666,"created_at":1617574121,"routes":[{"train":"LP-0","connections":[["local","H5"]],"hexes":["H5"],"revenue":50,"revenue_str":"H5"},{"train":"6-0","connections":[["E6","E8","F9","G10","H11","G12"],["F5","E6"],["H5","G6","F5"],["G4","H5"],["H1","G2","G4"]],"hexes":["G12","E6","F5","H5","G4","H1"],"revenue":280,"revenue_str":"G12-E6-F5-H5-G4-H1 (£50)"}]},{"type":"choose","entity":"NBR","entity_type":"corporation","id":667,"created_at":1617574123,"choice":"payout"},{"type":"dividend","entity":"NBR","entity_type":"corporation","id":668,"created_at":1617574125,"kind":"payout"},{"type":"pass","entity":"NBR","entity_type":"corporation","id":669,"created_at":1617574131},{"type":"merge","entity":"NBR","entity_type":"corporation","id":670,"created_at":1617574135,"corporation":"3"},{"type":"choose","entity":"NBR","entity_type":"corporation","id":671,"created_at":1617574137,"choice":"two_shares"},{"type":"choose","entity":"NBR","entity_type":"corporation","id":672,"created_at":1617574139,"choice":"exchange"},{"type":"pass","entity":"NBR","entity_type":"corporation","id":673,"created_at":1617574142},{"type":"par","entity":8145,"entity_type":"player","id":674,"created_at":1617574197,"corporation":"LNWR","share_price":"100,3,4"},{"type":"bid","entity":1739,"entity_type":"player","id":675,"created_at":1617574225,"company":"M8","price":1005},{"type":"pass","entity":1739,"entity_type":"player","id":676,"created_at":1617574229},{"id":677,"type":"undo","entity":3828,"entity_type":"player","user":1739,"created_at":1617574280,"skip":true},{"type":"message","entity":1739,"entity_type":"player","id":678,"created_at":1617574287,"message":"Hmm lemme think"},{"id":679,"type":"redo","entity":1739,"entity_type":"player","user":1739,"created_at":1617574311,"skip":true},{"type":"message","entity":1739,"entity_type":"player","id":680,"created_at":1617574315,"message":"yeah thats fine"},{"type":"message","entity":1739,"entity_type":"player","id":681,"created_at":1617574317,"message":"yolo"},{"type":"buy_shares","entity":3828,"entity_type":"player","id":682,"created_at":1617574370,"shares":["MR_8"],"percent":10},{"type":"buy_shares","entity":8145,"entity_type":"player","id":683,"created_at":1617574378,"shares":["LNWR_1"],"percent":10},{"type":"pass","entity":1739,"entity_type":"player","id":684,"created_at":1617574384},{"type":"program_share_pass","entity":1739,"entity_type":"player","id":685,"created_at":1617574389},{"type":"buy_shares","entity":3828,"entity_type":"player","id":686,"created_at":1617574393,"shares":["NBR_6"],"percent":10},{"type":"message","entity":1739,"entity_type":"player","id":687,"created_at":1617574396,"message":"im autopass"},{"type":"buy_shares","entity":8145,"entity_type":"player","id":688,"created_at":1617574399,"auto_actions":[{"type":"pass","entity":1739,"entity_type":"player","created_at":1617574399}],"shares":["LNWR_2"],"percent":10},{"type":"buy_shares","entity":3828,"entity_type":"player","id":689,"created_at":1617574407,"shares":["NBR_7"],"percent":10},{"type":"buy_shares","entity":8145,"entity_type":"player","id":690,"created_at":1617574419,"auto_actions":[{"type":"pass","entity":1739,"entity_type":"player","created_at":1617574419}],"shares":["LNWR_3"],"percent":10},{"type":"pass","entity":3828,"entity_type":"player","id":691,"created_at":1617574423},{"type":"buy_shares","entity":8145,"entity_type":"player","id":692,"created_at":1617574427,"auto_actions":[{"type":"pass","entity":1739,"entity_type":"player","created_at":1617574427}],"shares":["LNWR_4"],"percent":10},{"type":"buy_shares","entity":3828,"entity_type":"player","id":693,"created_at":1617574434,"shares":["NBR_8"],"percent":10},{"type":"pass","entity":8145,"entity_type":"player","id":694,"created_at":1617574449,"auto_actions":[{"type":"pass","entity":1739,"entity_type":"player","created_at":1617574449}]},{"type":"buy_shares","entity":3828,"entity_type":"player","id":695,"created_at":1617574460,"shares":["LNWR_5"],"percent":10},{"type":"pass","entity":8145,"entity_type":"player","id":696,"created_at":1617574470,"auto_actions":[{"type":"pass","entity":1739,"entity_type":"player","created_at":1617574470}]},{"type":"buy_shares","entity":3828,"entity_type":"player","id":697,"created_at":1617574475,"shares":["LNWR_6"],"percent":10},{"type":"pass","entity":8145,"entity_type":"player","id":698,"created_at":1617574482,"auto_actions":[{"type":"pass","entity":1739,"entity_type":"player","created_at":1617574482}]},{"type":"buy_shares","entity":3828,"entity_type":"player","id":699,"created_at":1617574488,"shares":["LNWR_7"],"percent":10},{"type":"pass","entity":8145,"entity_type":"player","id":700,"created_at":1617574493,"auto_actions":[{"type":"pass","entity":1739,"entity_type":"player","created_at":1617574493}]},{"type":"buy_shares","entity":3828,"entity_type":"player","id":701,"created_at":1617574499,"shares":["LNWR_8"],"percent":10},{"type":"pass","entity":8145,"entity_type":"player","id":702,"created_at":1617574508,"auto_actions":[{"type":"pass","entity":1739,"entity_type":"player","created_at":1617574508}]},{"type":"pass","entity":3828,"entity_type":"player","id":703,"created_at":1617574513},{"type":"pass","entity":"8","entity_type":"corporation","id":704,"created_at":1617574518},{"type":"lay_tile","entity":"8","entity_type":"corporation","id":705,"created_at":1617574533,"hex":"K24","tile":"5-0","rotation":3},{"type":"buy_train","entity":"8","entity_type":"corporation","id":706,"created_at":1617574538,"train":"7-0","price":1000,"variant":"E"},{"type":"pass","entity":"LYR","entity_type":"corporation","id":707,"created_at":1617574553},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":708,"created_at":1617574567,"hex":"G22","tile":"X5-1","rotation":2},{"type":"place_token","entity":"LYR","entity_type":"corporation","id":709,"created_at":1617574571,"city":"619-0-0","slot":1},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":710,"created_at":1617574611,"routes":[{"train":"2P-0","connections":[["M30","L29","K28"]],"hexes":["M30","K28"],"revenue":140,"revenue_str":"M30-K28"},{"train":"5P-0","connections":[["K28","J27","I28","I30"],["I22","I24","J25","K26","K28"],["H23","I22"],["G22","H23"]],"hexes":["I30","K28","I22","H23","G22"],"revenue":320,"revenue_str":"I30-K28-I22-H23-G22 (£60)"}]},{"type":"choose","entity":"LYR","entity_type":"corporation","id":711,"created_at":1617574615,"choice":"withhold"},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":712,"created_at":1617574629,"kind":"payout"},{"type":"pass","entity":"LYR","entity_type":"corporation","id":713,"created_at":1617574634},{"type":"pass","entity":"LYR","entity_type":"corporation","id":714,"created_at":1617574641},{"type":"pass","entity":"CR","entity_type":"corporation","id":715,"created_at":1617574661},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":716,"created_at":1617574673,"hex":"L27","tile":"8-8","rotation":5},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":717,"created_at":1617574678,"hex":"M28","tile":"9-7","rotation":2},{"type":"pass","entity":"CR","entity_type":"corporation","id":718,"created_at":1617574687},{"type":"choose","entity":"CR","entity_type":"corporation","id":719,"created_at":1617574698,"choice":"0"},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":720,"created_at":1617574740,"routes":[{"train":"2P-1","connections":[["M26","L25","K26","J25","I24","I22"],["N29","N27","M26"]],"hexes":["I22","M26","N29"],"revenue":170,"revenue_str":"I22-M26-N29"}]},{"type":"dividend","entity":"CR","entity_type":"corporation","id":721,"created_at":1617574755,"kind":"withhold"},{"type":"buy_train","entity":"CR","entity_type":"corporation","id":722,"created_at":1617574761,"train":"7-1","price":750,"variant":"7"},{"type":"pass","entity":"CR","entity_type":"corporation","id":723,"created_at":1617574767},{"type":"pass","entity":"MR","entity_type":"corporation","id":724,"created_at":1617574787},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":725,"created_at":1617574795,"hex":"K22","tile":"83-3","rotation":0},{"type":"pass","entity":"MR","entity_type":"corporation","id":726,"created_at":1617574799},{"type":"pass","entity":"MR","entity_type":"corporation","id":727,"created_at":1617574803},{"type":"place_token","entity":"MR","entity_type":"corporation","id":728,"created_at":1617574806,"city":"X5-1-0","slot":2},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":729,"created_at":1617574889,"routes":[{"train":"5-0","connections":[["K28","L27","M28","N29"],["J29","J27","K28"],["I30","J29"],["I30","H29","G28"]],"hexes":["N29","K28","J29","I30","G28"],"revenue":260,"revenue_str":"N29-K28-J29-I30-G28"},{"train":"6-1","connections":[["H23","G22"],["I22","H23"],["K28","K26","J25","I24","I22"],["J29","K28"],["M30","L29","K30","J29"]],"hexes":["G22","H23","I22","K28","J29","M30"],"revenue":310,"revenue_str":"G22-H23-I22-K28-J29-M30"}]},{"type":"dividend","entity":"MR","entity_type":"corporation","id":730,"created_at":1617574893,"kind":"payout"},{"type":"pass","entity":"MR","entity_type":"corporation","id":731,"created_at":1617574898},{"id":732,"type":"pass","entity":"NBR","entity_type":"corporation","user":1739,"created_at":1617574901,"skip":true},{"id":733,"hex":"G4","tile":"611-1","type":"lay_tile","entity":"NBR","rotation":5,"entity_type":"corporation","user":1739,"created_at":1617574914,"skip":true},{"id":734,"city":"X7-0-0","slot":3,"type":"place_token","entity":"NBR","entity_type":"corporation","user":1739,"created_at":1617574921,"skip":true},{"id":735,"type":"undo","entity":"NBR","action_id":731,"entity_type":"corporation","user":1739,"created_at":1617574929,"skip":true},{"type":"pass","entity":"NBR","entity_type":"corporation","id":736,"created_at":1617574931},{"type":"lay_tile","entity":"NBR","entity_type":"corporation","id":737,"created_at":1617574945,"hex":"J29","tile":"611-1","rotation":1},{"type":"place_token","entity":"NBR","entity_type":"corporation","id":738,"created_at":1617574947,"city":"X7-0-0","slot":3},{"type":"run_routes","entity":"NBR","entity_type":"corporation","id":739,"created_at":1617574995,"routes":[{"train":"LP-0","connections":[["I22","H21"]],"hexes":["H21","I22"],"revenue":70,"revenue_str":"H21-I22"},{"train":"6-0","connections":[["E6","E8","F9","G10","H11","G12"],["F5","E6"],["H5","G6","F5"],["G4","H5"],["H1","G2","G4"]],"hexes":["G12","E6","F5","H5","G4","H1"],"revenue":310,"revenue_str":"G12-E6-F5-H5-G4-H1 (£60)"}]},{"type":"choose","entity":"NBR","entity_type":"corporation","id":740,"created_at":1617574999,"choice":"withhold"},{"type":"dividend","entity":"NBR","entity_type":"corporation","id":741,"created_at":1617575002,"kind":"payout"},{"type":"buy_train","entity":"NBR","entity_type":"corporation","id":742,"created_at":1617575012,"train":"7-0","price":576},{"type":"acquire_company","entity":"LNWR","entity_type":"corporation","id":743,"created_at":1617575033,"company":"P2"},{"type":"acquire_company","entity":"LNWR","entity_type":"corporation","id":744,"created_at":1617575035,"company":"P14"},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":745,"created_at":1617575046,"hex":"I22","tile":"X13-0","rotation":0},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":746,"created_at":1617575052},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":747,"created_at":1617575057},{"type":"buy_train","entity":"LNWR","entity_type":"corporation","id":748,"created_at":1617575075,"train":"7-2","price":1000,"variant":"E"},{"type":"lay_tile","entity":"8","entity_type":"corporation","id":749,"created_at":1617575092,"hex":"L19","tile":"5-1","rotation":1},{"type":"buy_train","entity":"8","entity_type":"corporation","id":750,"created_at":1617575099,"train":"5-0","price":561},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":751,"created_at":1617575126,"hex":"K28","tile":"X19-0","rotation":0},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":752,"created_at":1617575171,"routes":[{"train":"2P-0","connections":[["M30","L29","K28"]],"hexes":["K28","M30"],"revenue":150,"revenue_str":"K28-M30"},{"train":"5P-0","connections":[["K28","L27","M28","N29"],["I22","I24","J25","K26","K28"],["H23","I22"],["G22","H23"]],"hexes":["N29","K28","I22","H23","G22"],"revenue":390,"revenue_str":"N29-K28-I22-H23-G22 (£80)"}]},{"type":"choose","entity":"LYR","entity_type":"corporation","id":753,"created_at":1617575181,"choice":"withhold"},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":754,"created_at":1617575189,"kind":"withhold"},{"type":"buy_train","entity":"LYR","entity_type":"corporation","id":755,"created_at":1617575192,"train":"7-3","price":1000,"variant":"E"},{"type":"pass","entity":"LYR","entity_type":"corporation","id":756,"created_at":1617575197},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":757,"created_at":1617575232,"hex":"K24","tile":"619-4","rotation":0},{"type":"pass","entity":"MR","entity_type":"corporation","id":758,"created_at":1617575237},{"type":"hex_token","entity":"MR","entity_type":"corporation","id":759,"created_at":1617575241,"hex":"L19","token_type":"destination"},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":760,"created_at":1617575266,"routes":[{"train":"6-1","connections":[["I22","H23"],["K28","K26","J25","I24","I22"],["I30","I28","J27","K28"],["J29","I30"],["M30","L29","K30","J29"]],"hexes":["H23","I22","K28","I30","J29","M30"],"revenue":380,"revenue_str":"H23-I22-K28-I30-J29-M30"}]},{"type":"dividend","entity":"MR","entity_type":"corporation","id":761,"created_at":1617575267,"kind":"payout"},{"type":"buy_train","entity":"MR","entity_type":"corporation","id":762,"created_at":1617575293,"train":"7-0","price":751},{"type":"pass","entity":"MR","entity_type":"corporation","id":763,"created_at":1617575312},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":764,"created_at":1617575342,"hex":"H19","tile":"X18-0","rotation":3},{"type":"pass","entity":"CR","entity_type":"corporation","id":765,"created_at":1617575352},{"type":"choose","entity":"CR","entity_type":"corporation","id":766,"created_at":1617575354,"choice":"1"},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":767,"created_at":1617575569,"routes":[{"train":"2P-1","connections":[["E6","E4","E2"]],"hexes":["E2","E6"],"revenue":90,"revenue_str":"E2-E6"},{"train":"7-1","connections":[["F7","E6"],["G12","H11","G10","F9","F7"],["H13","G12"],["H17","H15","H13"],["H19","H17"],["G20","H19"],["G22","G20"],["H23","G22"],["I22","H23"],["M26","L25","K26","J25","I24","I22"],["N29","N27","M26"]],"hexes":["E6","F7","G12","H13","H17","H19","G20","G22","H23","I22","M26","N29"],"revenue":490,"revenue_str":"E6-F7-G12-H13-H17-H19-G20-G22-H23-I22-M26-N29 (£30)"}]},{"id":768,"kind":"payout","type":"dividend","entity":"CR","entity_type":"corporation","user":8145,"created_at":1617575579,"skip":true},{"id":769,"type":"undo","entity":"CR","entity_type":"corporation","user":8145,"created_at":1617575590,"skip":true},{"type":"dividend","entity":"CR","entity_type":"corporation","id":770,"created_at":1617575604,"kind":"half"},{"type":"pass","entity":"CR","entity_type":"corporation","id":771,"created_at":1617575645},{"type":"pass","entity":"CR","entity_type":"corporation","id":772,"created_at":1617575648},{"type":"lay_tile","entity":"NBR","entity_type":"corporation","id":773,"created_at":1617575666,"hex":"I20","tile":"8-1","rotation":4},{"type":"pass","entity":"NBR","entity_type":"corporation","id":774,"created_at":1617575679},{"type":"pass","entity":"NBR","entity_type":"corporation","id":775,"created_at":1617575681},{"type":"run_routes","entity":"NBR","entity_type":"corporation","id":776,"created_at":1617575684,"routes":[{"train":"LP-0","connections":[["I22","H21"]],"hexes":["I22","H21"],"revenue":90,"revenue_str":"I22-H21"},{"train":"6-0","connections":[["E6","E8","F9","G10","H11","G12"],["F5","E6"],["H5","G6","F5"],["G4","H5"],["H1","G2","G4"]],"hexes":["G12","E6","F5","H5","G4","H1"],"revenue":310,"revenue_str":"G12-E6-F5-H5-G4-H1 (£60)"}]},{"type":"choose","entity":"NBR","entity_type":"corporation","id":777,"created_at":1617575688,"choice":"withhold"},{"type":"dividend","entity":"NBR","entity_type":"corporation","id":778,"created_at":1617575691,"kind":"payout"},{"type":"buy_train","entity":"NBR","entity_type":"corporation","id":779,"created_at":1617575694,"train":"7-4","price":750,"variant":"7"},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":780,"created_at":1617575723,"hex":"H23","tile":"63-1","rotation":0},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":781,"created_at":1617575733},{"type":"run_routes","entity":"LNWR","entity_type":"corporation","id":782,"created_at":1617575754,"routes":[{"train":"7-2","connections":[["K28","L27","M28","N29"],["I22","I24","J25","K26","K28"]],"hexes":["N29","K28","I22"],"revenue":520,"revenue_str":"N29-K28-I22 (£160)"}]},{"type":"dividend","entity":"LNWR","entity_type":"corporation","id":783,"created_at":1617575765,"kind":"half"},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":784,"created_at":1617575776},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":785,"created_at":1617575784},{"type":"buy_shares","entity":"LNWR","entity_type":"corporation","id":786,"created_at":1617575793,"shares":["LNWR_9"],"percent":10},{"type":"buy_shares","entity":8145,"entity_type":"player","id":787,"created_at":1617575805,"shares":["LNWR_9"],"percent":10},{"type":"pass","entity":1739,"entity_type":"player","id":788,"created_at":1617575815},{"type":"pass","entity":3828,"entity_type":"player","id":789,"created_at":1617575825},{"type":"pass","entity":8145,"entity_type":"player","id":790,"created_at":1617575837},{"type":"lay_tile","entity":"8","entity_type":"corporation","id":791,"created_at":1617575851,"hex":"L23","tile":"80-1","rotation":0},{"type":"run_routes","entity":"8","entity_type":"corporation","id":792,"created_at":1617575867,"routes":[{"train":"5-0","connections":[["K20","L19"],["K24","K22","K20"],["K28","K26","L25","L23","K24"],["I30","I28","J27","K28"]],"hexes":["L19","K20","K24","K28","I30"],"revenue":200,"revenue_str":"L19-K20-K24-K28-I30"}]},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":793,"created_at":1617575895,"hex":"G22","tile":"X11-0","rotation":2},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":794,"created_at":1617575927,"routes":[{"train":"2P-0","connections":[["M30","L29","K28"]],"hexes":["M30","K28"],"revenue":150,"revenue_str":"M30-K28"},{"train":"5P-0","connections":[["K28","L27","M28","N29"],["I22","I24","J25","K26","K28"],["H23","I22"],["G22","H23"]],"hexes":["N29","K28","I22","H23","G22"],"revenue":330,"revenue_str":"N29-K28-I22-H23-G22"},{"train":"7-3","connections":[["H23","G22"],["I22","H23"],["I30","I28","J27","J25","I24","I22"],["J29","I30"],["M30","L29","K30","J29"]],"hexes":["G22","H23","I22","I30","J29","M30"],"revenue":880,"revenue_str":"G22-H23-I22-I30-J29-M30 (£160)"}]},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":795,"created_at":1617575931,"kind":"payout"},{"type":"pass","entity":"LYR","entity_type":"corporation","id":796,"created_at":1617575937},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":797,"created_at":1617575949,"hex":"J19","tile":"9-3","rotation":1},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":798,"created_at":1617575955,"hex":"K18","tile":"8-9","rotation":5},{"type":"pass","entity":"MR","entity_type":"corporation","id":799,"created_at":1617575957},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":800,"created_at":1617576025,"routes":[{"train":"6-1","connections":[["I22","I20","J19","K18","L19"],["K28","K26","J25","I24","I22"],["I30","I28","J27","K28"],["J29","I30"],["M30","L29","K30","J29"]],"hexes":["L19","I22","K28","I30","J29","M30"],"revenue":370,"revenue_str":"L19-I22-K28-I30-J29-M30"},{"train":"7-0","connections":[["H23","G22"],["I22","H23"],["L19","K18","J19","I20","I22"],["K20","L19"],["K28","J27","J25","K26","L25","L23","K22","K20"],["J29","K28"],["I30","I28","J27","J29"]],"hexes":["G22","H23","I22","L19","K20","K28","J29","I30"],"revenue":600,"revenue_str":"G22-H23-I22-L19-K20-K28-J29-I30 (£40)"}]},{"type":"dividend","entity":"MR","entity_type":"corporation","id":801,"created_at":1617576027,"kind":"payout"},{"type":"pass","entity":"MR","entity_type":"corporation","id":802,"created_at":1617576035},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":803,"created_at":1617576097,"hex":"H23","tile":"X19-1","rotation":0},{"type":"pass","entity":"CR","entity_type":"corporation","id":804,"created_at":1617576101},{"type":"choose","entity":"CR","entity_type":"corporation","id":805,"created_at":1617576109,"choice":"1"},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":806,"created_at":1617576188,"routes":[{"train":"2P-1","connections":[["E6","E4","E2"]],"hexes":["E6","E2"],"revenue":90,"revenue_str":"E6-E2"},{"train":"7-1","connections":[["F7","E6"],["G12","H11","G10","F9","F7"],["H13","G12"],["H17","H15","H13"],["H19","H17"],["G20","H19"],["G22","G20"],["H23","G22"],["I22","H23"],["M26","L25","K26","J25","I24","I22"],["N29","N27","M26"]],"hexes":["E6","F7","G12","H13","H17","H19","G20","G22","H23","I22","M26","N29"],"revenue":520,"revenue_str":"E6-F7-G12-H13-H17-H19-G20-G22-H23-I22-M26-N29 (£30)"}]},{"type":"dividend","entity":"CR","entity_type":"corporation","id":807,"created_at":1617576192,"kind":"withhold"},{"type":"buy_train","entity":"CR","entity_type":"corporation","id":808,"created_at":1617576195,"train":"7-6","price":1000,"variant":"E"},{"id":809,"hex":"G4","tile":"611-2","type":"lay_tile","entity":"NBR","rotation":5,"entity_type":"corporation","user":1739,"created_at":1617576293,"skip":true},{"id":810,"type":"undo","entity":"NBR","action_id":808,"entity_type":"corporation","user":1739,"created_at":1617576306,"skip":true},{"type":"lay_tile","entity":"NBR","entity_type":"corporation","id":811,"created_at":1617576313,"hex":"J29","tile":"X18-1","rotation":1},{"type":"run_routes","entity":"NBR","entity_type":"corporation","id":812,"created_at":1617576343,"routes":[{"train":"LP-0","connections":[["I22","H21"]],"hexes":["I22","H21"],"revenue":90,"revenue_str":"I22-H21"},{"train":"6-0","connections":[["E6","E8","F9","G10","H11","G12"],["F5","E6"],["H5","G6","F5"],["G4","H5"],["H1","G2","G4"]],"hexes":["G12","E6","F5","H5","G4","H1"],"revenue":310,"revenue_str":"G12-E6-F5-H5-G4-H1 (£60)"},{"train":"7-4","connections":[["G22","G20"],["H23","G22"],["I22","H23"],["K28","K26","J25","I24","I22"],["J29","J27","K28"],["M30","L29","K30","J29"]],"hexes":["G20","G22","H23","I22","K28","J29","M30"],"revenue":400,"revenue_str":"G20-G22-H23-I22-K28-J29-M30"}]},{"type":"choose","entity":"NBR","entity_type":"corporation","id":813,"created_at":1617576346,"choice":"withhold"},{"type":"dividend","entity":"NBR","entity_type":"corporation","id":814,"created_at":1617576348,"kind":"payout"},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":815,"created_at":1617576357,"hex":"H5","tile":"X11-1","rotation":5},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":816,"created_at":1617576367},{"type":"place_token","entity":"LNWR","entity_type":"corporation","id":817,"created_at":1617576373,"city":"X19-0-0","slot":1},{"type":"run_routes","entity":"LNWR","entity_type":"corporation","id":818,"created_at":1617576383,"routes":[{"train":"7-2","connections":[["K28","L27","M28","N29"],["I22","I24","J25","K26","K28"]],"hexes":["N29","K28","I22"],"revenue":620,"revenue_str":"N29-K28-I22 (£160)"}]},{"type":"dividend","entity":"LNWR","entity_type":"corporation","id":819,"created_at":1617576387,"kind":"withhold"},{"type":"buy_train","entity":"LNWR","entity_type":"corporation","id":820,"created_at":1617576391,"train":"7-7","price":750,"variant":"7"},{"type":"lay_tile","entity":"8","entity_type":"corporation","id":821,"created_at":1617576417,"hex":"L19","tile":"15-1","rotation":0},{"type":"run_routes","entity":"8","entity_type":"corporation","id":822,"created_at":1617576450,"routes":[{"train":"5-0","connections":[["K24","K22","K20"],["K28","K26","L25","L23","K24"],["J29","K28"],["M30","L29","K30","J29"]],"hexes":["K20","K24","K28","J29","M30"],"revenue":250,"revenue_str":"K20-K24-K28-J29-M30"}]},{"type":"pass","entity":"LYR","entity_type":"corporation","id":823,"created_at":1617576466},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":824,"created_at":1617576476,"routes":[{"train":"2P-0","connections":[["M30","L29","K28"]],"hexes":["M30","K28"],"revenue":150,"revenue_str":"M30-K28"},{"train":"5P-0","connections":[["K28","L27","M28","N29"],["I22","I24","J25","K26","K28"],["H23","I22"],["G22","H23"]],"hexes":["N29","K28","I22","H23","G22"],"revenue":340,"revenue_str":"N29-K28-I22-H23-G22"},{"train":"7-3","connections":[["H23","G22"],["I22","H23"],["I30","I28","J27","J25","I24","I22"],["J29","I30"],["M30","L29","K30","J29"]],"hexes":["G22","H23","I22","I30","J29","M30"],"revenue":900,"revenue_str":"G22-H23-I22-I30-J29-M30 (£160)"}]},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":825,"created_at":1617576479,"kind":"payout"},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":826,"created_at":1617576495,"hex":"L19","tile":"63-2","rotation":0},{"type":"pass","entity":"MR","entity_type":"corporation","id":827,"created_at":1617576498},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":828,"created_at":1617576513,"routes":[{"train":"6-1","connections":[["I22","I20","J19","K18","L19"],["K28","K26","J25","I24","I22"],["I30","I28","J27","K28"],["J29","I30"],["M30","L29","K30","J29"]],"hexes":["L19","I22","K28","I30","J29","M30"],"revenue":400,"revenue_str":"L19-I22-K28-I30-J29-M30"},{"train":"7-0","connections":[["H23","G22"],["I22","H23"],["L19","K18","J19","I20","I22"],["K20","L19"],["K28","J27","J25","K26","L25","L23","K22","K20"],["J29","K28"],["I30","I28","J27","J29"]],"hexes":["G22","H23","I22","L19","K20","K28","J29","I30"],"revenue":700,"revenue_str":"G22-H23-I22-L19-K20-K28-J29-I30 (£80)"}]},{"type":"dividend","entity":"MR","entity_type":"corporation","id":829,"created_at":1617576515,"kind":"payout"},{"type":"pass","entity":"MR","entity_type":"corporation","id":830,"created_at":1617576518},{"type":"lay_tile","entity":"NBR","entity_type":"corporation","id":831,"created_at":1617576538,"hex":"L19","tile":"X19-2","rotation":0},{"type":"place_token","entity":"NBR","entity_type":"corporation","id":832,"created_at":1617576543,"city":"X11-0-0","slot":2},{"type":"run_routes","entity":"NBR","entity_type":"corporation","id":833,"created_at":1617576567,"routes":[{"train":"LP-0","connections":[["I22","H21"]],"hexes":["I22","H21"],"revenue":90,"revenue_str":"I22-H21"},{"train":"6-0","connections":[["E6","E8","F9","G10","H11","G12"],["F5","E6"],["H5","G6","F5"],["G4","H5"],["H1","G2","G4"]],"hexes":["G12","E6","F5","H5","G4","H1"],"revenue":320,"revenue_str":"G12-E6-F5-H5-G4-H1 (£60)"},{"train":"7-4","connections":[["G22","G20"],["H23","G22"],["I22","H23"],["K28","K26","J25","I24","I22"],["J29","J27","K28"],["M30","L29","K30","J29"]],"hexes":["G20","G22","H23","I22","K28","J29","M30"],"revenue":400,"revenue_str":"G20-G22-H23-I22-K28-J29-M30"}]},{"type":"choose","entity":"NBR","entity_type":"corporation","id":834,"created_at":1617576572,"choice":"payout"},{"type":"dividend","entity":"NBR","entity_type":"corporation","id":835,"created_at":1617576577,"kind":"payout"},{"id":836,"hex":"G24","tile":"3-1","type":"lay_tile","entity":"CR","rotation":3,"entity_type":"corporation","user":8145,"created_at":1617576642,"skip":true},{"id":837,"type":"undo","entity":"CR","entity_type":"corporation","user":8145,"created_at":1617576654,"skip":true},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":838,"created_at":1617576662,"hex":"H25","tile":"3-1","rotation":2},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":839,"created_at":1617576668,"hex":"G24","tile":"58-3","rotation":3},{"type":"pass","entity":"CR","entity_type":"corporation","id":840,"created_at":1617576672},{"type":"choose","entity":"CR","entity_type":"corporation","id":841,"created_at":1617576675,"choice":"1"},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":842,"created_at":1617576877,"routes":[{"train":"2P-1","connections":[["I22","H23"]],"hexes":["H23","I22"],"revenue":130,"revenue_str":"H23-I22"},{"train":"7-1","connections":[["F5","G6","H5"],["E6","F5"],["F7","E6"],["G12","H11","G10","F9","F7"],["H13","G12"],["H17","H15","H13"],["H19","H17"],["H21","H19"],["I22","H21"],["K28","J27","J25","I24","I22"],["M30","L29","K28"]],"hexes":["H5","F5","E6","F7","G12","H13","H17","H19","H21","I22","K28","M30"],"revenue":490,"revenue_str":"H5-F5-E6-F7-G12-H13-H17-H19-H21-I22-K28-M30"},{"train":"7-6","connections":[["M26","N27","N29"],["I22","I24","J25","K26","L25","M26"],["H21","I22"],["H19","H21"],["H17","H19"],["H13","H15","H17"],["G12","H13"],["E6","E8","F9","G10","H11","G12"],["F5","E6"],["H5","G6","F5"],["G4","H5"],["H1","G2","G4"]],"hexes":["N29","M26","I22","H21","H19","H17","H13","G12","E6","F5","H5","G4","H1"],"revenue":860,"revenue_str":"N29-M26-I22-H21-H19-H17-H13-G12-E6-F5-H5-G4-H1 (£60)"}]},{"type":"dividend","entity":"CR","entity_type":"corporation","id":843,"created_at":1617576898,"kind":"payout"},{"type":"pass","entity":"CR","entity_type":"corporation","id":844,"created_at":1617576902},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":845,"created_at":1617576913,"hex":"I24","tile":"82-2","rotation":2},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":846,"created_at":1617576920},{"type":"choose","entity":"LNWR","entity_type":"corporation","id":847,"created_at":1617576925,"choice":"0"},{"type":"message","entity":3828,"entity_type":"player","id":848,"created_at":1617576974,"message":"good game"},{"type":"run_routes","entity":"LNWR","entity_type":"corporation","id":849,"created_at":1617576982,"routes":[{"train":"7-2","connections":[["K28","L27","M28","N29"],["I22","I24","J25","K26","K28"]],"hexes":["N29","K28","I22"],"revenue":620,"revenue_str":"N29-K28-I22 (£160)"},{"train":"7-7","connections":[["F5","G6","H5"],["E6","F5"],["F7","E6"],["H13","H11","G10","F9","F7"],["H17","H15","H13"],["H19","H17"],["H21","H19"],["I22","H21"],["H23","I22"],["H23","I24","J25","K26","K28"],["K28","L27","M28","N29"]],"hexes":["H5","F5","E6","F7","H13","H17","H19","H21","I22","H23","K28","N29"],"revenue":510,"revenue_str":"H5-F5-E6-F7-H13-H17-H19-H21-I22-H23-K28-N29"}]},{"type":"dividend","entity":"LNWR","entity_type":"corporation","id":850,"created_at":1617576989,"kind":"payout"},{"type":"message","entity":1739,"entity_type":"player","id":851,"created_at":1617577038,"message":"gg"}],"loaded":true,"created_at":1617566566,"updated_at":1617577038} \ No newline at end of file diff --git a/spec/fixtures/1822/36685.json b/spec/fixtures/1822/36685.json deleted file mode 100644 index d181b802da..0000000000 --- a/spec/fixtures/1822/36685.json +++ /dev/null @@ -1 +0,0 @@ -{"id":36685,"description":"","user":{"id":3714,"name":"MarcusBatty"},"players":[{"id":488,"name":"beardbru"},{"id":3714,"name":"MarcusBatty"},{"id":4035,"name":"clinchfield kurt"}],"max_players":3,"title":"1822","settings":{"seed":1961903491,"unlisted":false,"optional_rules":[]},"user_settings":null,"status":"finished","turn":9,"round":"Operating Round","acting":[488,3714,4035],"result":{"488":17809,"3714":11551,"4035":10573},"actions":[{"type":"bid","entity":488,"entity_type":"player","id":1,"created_at":1617840166,"company":"M21","price":100},{"type":"bid","entity":488,"entity_type":"player","id":2,"created_at":1617840170,"company":"M24","price":100},{"type":"bid","entity":488,"entity_type":"player","id":3,"created_at":1617840174,"company":"C6","price":100},{"type":"bid","entity":3714,"entity_type":"player","id":4,"created_at":1617840308,"company":"P3","price":30},{"type":"pass","entity":3714,"entity_type":"player","id":5,"created_at":1617840314},{"type":"bid","entity":4035,"entity_type":"player","id":6,"created_at":1617840375,"company":"P3","price":65},{"type":"bid","entity":4035,"entity_type":"player","id":7,"created_at":1617840389,"company":"M18","price":100},{"type":"bid","entity":4035,"entity_type":"player","id":8,"created_at":1617840407,"company":"C1","price":100},{"type":"bid","entity":488,"entity_type":"player","id":9,"created_at":1617840448,"company":"P3","price":100},{"type":"bid","entity":488,"entity_type":"player","id":10,"created_at":1617840456,"company":"P1","price":70},{"type":"pass","entity":488,"entity_type":"player","id":11,"created_at":1617840463},{"type":"bid","entity":3714,"entity_type":"player","id":12,"created_at":1617840483,"company":"M21","price":110},{"type":"bid","entity":3714,"entity_type":"player","id":13,"created_at":1617840486,"company":"C6","price":110},{"type":"pass","entity":3714,"entity_type":"player","id":14,"created_at":1617840491},{"type":"bid","entity":4035,"entity_type":"player","id":15,"created_at":1617840524,"company":"P3","price":120},{"type":"bid","entity":4035,"entity_type":"player","id":16,"created_at":1617840537,"company":"P1","price":80},{"type":"pass","entity":4035,"entity_type":"player","id":17,"created_at":1617840546},{"type":"bid","entity":488,"entity_type":"player","id":18,"created_at":1617840561,"company":"M21","price":115},{"type":"bid","entity":488,"entity_type":"player","id":19,"created_at":1617840567,"company":"P1","price":85},{"type":"bid","entity":488,"entity_type":"player","id":20,"created_at":1617840569,"company":"C6","price":115},{"type":"bid","entity":3714,"entity_type":"player","id":21,"created_at":1617840579,"company":"M21","price":120},{"type":"bid","entity":3714,"entity_type":"player","id":22,"created_at":1617840582,"company":"C6","price":120},{"type":"bid","entity":3714,"entity_type":"player","id":23,"created_at":1617840586,"company":"P5","price":15},{"type":"bid","entity":4035,"entity_type":"player","id":24,"created_at":1617840651,"company":"P1","price":90},{"type":"pass","entity":4035,"entity_type":"player","id":25,"created_at":1617840655},{"type":"bid","entity":488,"entity_type":"player","id":26,"created_at":1617840669,"company":"M21","price":125},{"type":"bid","entity":488,"entity_type":"player","id":27,"created_at":1617840671,"company":"C6","price":125},{"type":"bid","entity":488,"entity_type":"player","id":28,"created_at":1617840686,"company":"P5","price":40},{"type":"bid","entity":3714,"entity_type":"player","id":29,"created_at":1617840760,"company":"C1","price":105},{"type":"pass","entity":3714,"entity_type":"player","id":30,"created_at":1617840761},{"type":"bid","entity":4035,"entity_type":"player","id":31,"created_at":1617840791,"company":"C1","price":120},{"type":"pass","entity":4035,"entity_type":"player","id":32,"created_at":1617840888},{"type":"pass","entity":488,"entity_type":"player","id":33,"created_at":1617840898},{"type":"bid","entity":3714,"entity_type":"player","id":34,"created_at":1617840912,"company":"C5","price":100},{"type":"pass","entity":3714,"entity_type":"player","id":35,"created_at":1617840917},{"type":"pass","entity":4035,"entity_type":"player","id":36,"created_at":1617840921},{"type":"pass","entity":488,"entity_type":"player","id":37,"created_at":1617840936},{"type":"pass","entity":3714,"entity_type":"player","id":38,"created_at":1617840947},{"type":"buy_train","entity":"21","entity_type":"corporation","id":39,"created_at":1617840951,"train":"L-0","price":60,"variant":"L"},{"type":"lay_tile","entity":"21","entity_type":"corporation","id":40,"created_at":1617840961,"hex":"E36","tile":"8-0","rotation":2},{"type":"run_routes","entity":"21","entity_type":"corporation","id":41,"created_at":1617840972,"routes":[{"train":"L-1","connections":[["local","E34"]],"hexes":["E34"],"revenue":30,"revenue_str":"E34"}]},{"type":"buy_train","entity":"24","entity_type":"corporation","id":42,"created_at":1617840976,"train":"L-0","price":60,"variant":"L"},{"type":"pass","entity":"24","entity_type":"corporation","id":43,"created_at":1617840978},{"type":"run_routes","entity":"24","entity_type":"corporation","id":44,"created_at":1617840992,"routes":[{"train":"L-2","connections":[["D35"]],"hexes":["D35","D35"],"revenue":30,"revenue_str":"D35-D35"}]},{"type":"pass","entity":"24","entity_type":"corporation","id":45,"created_at":1617840994},{"id":46,"type":"buy_train","price":60,"train":"L-0","entity":"18","variant":"L","entity_type":"corporation","user":4035,"created_at":1617841017,"skip":true},{"id":47,"type":"undo","entity":"18","entity_type":"corporation","user":4035,"created_at":1617841036,"skip":true},{"type":"pass","entity":"18","entity_type":"corporation","id":48,"created_at":1617841045},{"type":"lay_tile","entity":"18","entity_type":"corporation","id":49,"created_at":1617841066,"hex":"I42","tile":"6-0","rotation":2},{"type":"buy_train","entity":"18","entity_type":"corporation","id":50,"created_at":1617841111,"train":"L-3","price":60,"variant":"L"},{"type":"pass","entity":"18","entity_type":"corporation","id":51,"created_at":1617841135},{"type":"bid","entity":3714,"entity_type":"player","id":52,"created_at":1617841152,"company":"M2","price":100},{"type":"bid","entity":3714,"entity_type":"player","id":53,"created_at":1617841162,"company":"P4","price":50},{"id":54,"type":"bid","price":40,"entity":3714,"company":"P15","entity_type":"player","user":3714,"created_at":1617841175,"skip":true},{"id":55,"type":"undo","entity":488,"entity_type":"player","user":3714,"created_at":1617841186,"skip":true},{"type":"bid","entity":3714,"entity_type":"player","id":56,"created_at":1617841194,"company":"P6","price":40},{"type":"bid","entity":488,"entity_type":"player","id":57,"created_at":1617841286,"company":"P4","price":100},{"type":"bid","entity":488,"entity_type":"player","id":58,"created_at":1617841292,"company":"P6","price":70},{"type":"bid","entity":488,"entity_type":"player","id":59,"created_at":1617841300,"company":"P15","price":50},{"id":60,"type":"bid","price":100,"entity":4035,"company":"C2","entity_type":"player","user":4035,"created_at":1617841323,"skip":true},{"id":61,"type":"undo","entity":4035,"entity_type":"player","user":4035,"created_at":1617841385,"skip":true},{"type":"bid","entity":4035,"entity_type":"player","id":62,"created_at":1617841403,"company":"P15","price":65},{"type":"pass","entity":4035,"entity_type":"player","id":63,"created_at":1617841417},{"type":"bid","entity":3714,"entity_type":"player","id":64,"created_at":1617841442,"company":"P6","price":75},{"type":"pass","entity":3714,"entity_type":"player","id":65,"created_at":1617841445},{"type":"bid","entity":488,"entity_type":"player","id":66,"created_at":1617841448,"company":"M16","price":100},{"type":"bid","entity":488,"entity_type":"player","id":67,"created_at":1617841459,"company":"P15","price":70},{"type":"bid","entity":488,"entity_type":"player","id":68,"created_at":1617841465,"company":"P6","price":80},{"type":"pass","entity":4035,"entity_type":"player","id":69,"created_at":1617841502},{"type":"bid","entity":3714,"entity_type":"player","id":70,"created_at":1617841592,"company":"P4","price":105},{"type":"pass","entity":3714,"entity_type":"player","id":71,"created_at":1617841598},{"type":"bid","entity":488,"entity_type":"player","id":72,"created_at":1617841614,"company":"P4","price":110},{"type":"pass","entity":488,"entity_type":"player","id":73,"created_at":1617841677},{"type":"bid","entity":4035,"entity_type":"player","id":74,"created_at":1617841705,"company":"P4","price":115},{"type":"bid","entity":4035,"entity_type":"player","id":75,"created_at":1617841709,"company":"C2","price":100},{"type":"pass","entity":4035,"entity_type":"player","id":76,"created_at":1617841722},{"type":"pass","entity":3714,"entity_type":"player","id":77,"created_at":1617841750},{"type":"pass","entity":488,"entity_type":"player","id":78,"created_at":1617841760},{"type":"pass","entity":4035,"entity_type":"player","id":79,"created_at":1617841807},{"type":"pass","entity":"21","entity_type":"corporation","id":80,"created_at":1617841819},{"type":"run_routes","entity":"21","entity_type":"corporation","id":81,"created_at":1617841821,"routes":[{"train":"L-1","connections":[["local","E34"]],"hexes":["E34"],"revenue":30,"revenue_str":"E34"}]},{"type":"pass","entity":"21","entity_type":"corporation","id":82,"created_at":1617841824},{"type":"pass","entity":"24","entity_type":"corporation","id":83,"created_at":1617841827},{"type":"run_routes","entity":"24","entity_type":"corporation","id":84,"created_at":1617841830,"routes":[{"train":"L-2","connections":[["D35"]],"hexes":["D35","D35"],"revenue":30,"revenue_str":"D35-D35"}]},{"type":"pass","entity":"24","entity_type":"corporation","id":85,"created_at":1617841831},{"type":"buy_train","entity":"2","entity_type":"corporation","id":86,"created_at":1617841846,"train":"L-0","price":60,"variant":"L"},{"id":87,"hex":"F7","tile":"55-0","type":"lay_tile","entity":"2","rotation":1,"entity_type":"corporation","user":3714,"created_at":1617841873,"skip":true},{"id":88,"type":"undo","entity":"2","entity_type":"corporation","user":3714,"created_at":1617841876,"skip":true},{"type":"lay_tile","entity":"2","entity_type":"corporation","id":89,"created_at":1617841911,"hex":"F3","tile":"58-0","rotation":2},{"type":"run_routes","entity":"2","entity_type":"corporation","id":90,"created_at":1617841938,"routes":[{"train":"L-7","connections":[["E2","F3"]],"hexes":["F3","E2"],"revenue":20,"revenue_str":"F3-E2"}]},{"type":"pass","entity":"2","entity_type":"corporation","id":91,"created_at":1617841971},{"type":"buy_train","entity":"16","entity_type":"corporation","id":92,"created_at":1617841983,"train":"L-0","price":60,"variant":"L"},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":93,"created_at":1617841986,"hex":"M38","tile":"X20-0","rotation":0},{"type":"run_routes","entity":"16","entity_type":"corporation","id":94,"created_at":1617842036,"routes":[{"train":"L-8","connections":[["local","M38"]],"hexes":["M38"],"revenue":40,"revenue_str":"M38"}]},{"type":"pass","entity":"16","entity_type":"corporation","id":95,"created_at":1617842043},{"type":"lay_tile","entity":"18","entity_type":"corporation","id":96,"created_at":1617842089,"hex":"H41","tile":"8-1","rotation":5},{"type":"run_routes","entity":"18","entity_type":"corporation","id":97,"created_at":1617842102,"routes":[{"train":"L-3","connections":[["local","I42"]],"hexes":["I42"],"revenue":20,"revenue_str":"I42"}]},{"type":"pass","entity":"18","entity_type":"corporation","id":98,"created_at":1617842110},{"type":"bid","entity":3714,"entity_type":"player","id":99,"created_at":1617842160,"company":"P9","price":40},{"id":100,"type":"pass","entity":3714,"entity_type":"player","user":3714,"created_at":1617842162,"skip":true},{"id":101,"type":"undo","entity":488,"entity_type":"player","user":3714,"created_at":1617842173,"skip":true},{"type":"bid","entity":3714,"entity_type":"player","id":102,"created_at":1617842177,"company":"P11","price":20},{"type":"bid","entity":3714,"entity_type":"player","id":103,"created_at":1617842181,"company":"P17","price":20},{"type":"bid","entity":488,"entity_type":"player","id":104,"created_at":1617842303,"company":"P17","price":25},{"type":"bid","entity":488,"entity_type":"player","id":105,"created_at":1617842307,"company":"P9","price":45},{"type":"bid","entity":488,"entity_type":"player","id":106,"created_at":1617842310,"company":"P11","price":25},{"type":"pass","entity":4035,"entity_type":"player","id":107,"created_at":1617842319},{"type":"bid","entity":3714,"entity_type":"player","id":108,"created_at":1617842327,"company":"P9","price":50},{"type":"bid","entity":3714,"entity_type":"player","id":109,"created_at":1617842336,"company":"P11","price":30},{"type":"bid","entity":3714,"entity_type":"player","id":110,"created_at":1617842344,"company":"P17","price":30},{"type":"pass","entity":488,"entity_type":"player","id":111,"created_at":1617842362},{"type":"pass","entity":4035,"entity_type":"player","id":112,"created_at":1617842369},{"type":"bid","entity":3714,"entity_type":"player","id":113,"created_at":1617842373,"company":"C3","price":100},{"type":"pass","entity":3714,"entity_type":"player","id":114,"created_at":1617842378},{"type":"pass","entity":488,"entity_type":"player","id":115,"created_at":1617842384},{"type":"pass","entity":4035,"entity_type":"player","id":116,"created_at":1617842391},{"type":"pass","entity":3714,"entity_type":"player","id":117,"created_at":1617842394},{"type":"choose","entity":3714,"entity_type":"player","id":118,"created_at":1617842411,"choice":"double"},{"type":"pass","entity":"21","entity_type":"corporation","id":119,"created_at":1617842444},{"type":"run_routes","entity":"21","entity_type":"corporation","id":120,"created_at":1617842446,"routes":[{"train":"L-1","connections":[["local","E34"]],"hexes":["E34"],"revenue":30,"revenue_str":"E34"}]},{"type":"buy_train","entity":"21","entity_type":"corporation","id":121,"created_at":1617842449,"train":"L-1","price":80,"variant":"2","exchange":"L-1"},{"type":"pass","entity":"21","entity_type":"corporation","id":122,"created_at":1617842450},{"type":"pass","entity":"24","entity_type":"corporation","id":123,"created_at":1617842453},{"type":"pass","entity":"24","entity_type":"corporation","id":124,"created_at":1617842459},{"type":"run_routes","entity":"24","entity_type":"corporation","id":125,"created_at":1617842461,"routes":[{"train":"L-2","connections":[["D35"]],"hexes":["D35","D35"],"revenue":30,"revenue_str":"D35-D35"}]},{"type":"buy_train","entity":"24","entity_type":"corporation","id":126,"created_at":1617842463,"train":"L-2","price":80,"variant":"2","exchange":"L-2"},{"type":"pass","entity":"24","entity_type":"corporation","id":127,"created_at":1617842466},{"type":"pass","entity":"2","entity_type":"corporation","id":128,"created_at":1617842472},{"type":"lay_tile","entity":"2","entity_type":"corporation","id":129,"created_at":1617842527,"hex":"F7","tile":"55-0","rotation":1},{"type":"run_routes","entity":"2","entity_type":"corporation","id":130,"created_at":1617842532,"routes":[{"train":"L-7","connections":[["E2","F3"]],"hexes":["E2","F3"],"revenue":20,"revenue_str":"E2-F3"}]},{"type":"pass","entity":"2","entity_type":"corporation","id":131,"created_at":1617842548},{"type":"pass","entity":"16","entity_type":"corporation","id":132,"created_at":1617842553},{"id":133,"hex":"L37","tile":"8-2","type":"lay_tile","entity":"16","rotation":5,"entity_type":"corporation","user":488,"created_at":1617842562,"skip":true},{"id":134,"type":"undo","entity":"16","entity_type":"corporation","user":488,"created_at":1617842585,"skip":true},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":135,"created_at":1617842590,"hex":"L37","tile":"8-2","rotation":3},{"type":"run_routes","entity":"16","entity_type":"corporation","id":136,"created_at":1617842594,"routes":[{"train":"L-8","connections":[["local","M38"]],"hexes":["M38"],"revenue":40,"revenue_str":"M38"}]},{"type":"pass","entity":"16","entity_type":"corporation","id":137,"created_at":1617842600},{"type":"pass","entity":"18","entity_type":"corporation","id":138,"created_at":1617842613},{"type":"lay_tile","entity":"18","entity_type":"corporation","id":139,"created_at":1617842625,"hex":"G42","tile":"3-0","rotation":3},{"type":"run_routes","entity":"18","entity_type":"corporation","id":140,"created_at":1617842640,"routes":[{"train":"L-3","connections":[["I42","H41","G42"]],"hexes":["G42","I42"],"revenue":30,"revenue_str":"G42-I42"}]},{"type":"pass","entity":"18","entity_type":"corporation","id":141,"created_at":1617842658},{"id":142,"type":"par","entity":3714,"corporation":"CR","entity_type":"player","share_price":"100,4,4","user":3714,"created_at":1617842699,"skip":true},{"id":143,"type":"undo","entity":488,"entity_type":"player","user":3714,"created_at":1617842714,"skip":true},{"type":"par","entity":3714,"entity_type":"player","id":144,"created_at":1617842781,"corporation":"CR","share_price":"90,5,4"},{"type":"par","entity":488,"entity_type":"player","id":145,"created_at":1617842981,"corporation":"MR","share_price":"60,8,4"},{"type":"bid","entity":4035,"entity_type":"player","id":146,"created_at":1617843027,"company":"M17","price":100},{"type":"pass","entity":4035,"entity_type":"player","id":147,"created_at":1617843030},{"type":"bid","entity":3714,"entity_type":"player","id":148,"created_at":1617843053,"company":"P16","price":10},{"type":"bid","entity":3714,"entity_type":"player","id":149,"created_at":1617843058,"company":"P2","price":20},{"type":"bid","entity":3714,"entity_type":"player","id":150,"created_at":1617843065,"company":"P7","price":40},{"type":"bid","entity":488,"entity_type":"player","id":151,"created_at":1617843146,"company":"M10","price":120},{"type":"bid","entity":488,"entity_type":"player","id":152,"created_at":1617843158,"company":"P7","price":45},{"type":"pass","entity":488,"entity_type":"player","id":153,"created_at":1617843164},{"type":"pass","entity":4035,"entity_type":"player","id":154,"created_at":1617843186},{"type":"bid","entity":3714,"entity_type":"player","id":155,"created_at":1617843192,"company":"P7","price":50},{"type":"bid","entity":3714,"entity_type":"player","id":156,"created_at":1617843210,"company":"M17","price":105},{"type":"pass","entity":3714,"entity_type":"player","id":157,"created_at":1617843215},{"type":"bid","entity":488,"entity_type":"player","id":158,"created_at":1617843236,"company":"P7","price":55},{"type":"pass","entity":488,"entity_type":"player","id":159,"created_at":1617843242},{"type":"bid","entity":4035,"entity_type":"player","id":160,"created_at":1617843250,"company":"M17","price":110},{"type":"bid","entity":4035,"entity_type":"player","id":161,"created_at":1617843272,"company":"P2","price":25},{"type":"pass","entity":4035,"entity_type":"player","id":162,"created_at":1617843275},{"type":"bid","entity":3714,"entity_type":"player","id":163,"created_at":1617843300,"company":"P7","price":60},{"type":"bid","entity":3714,"entity_type":"player","id":164,"created_at":1617843302,"company":"M17","price":115},{"type":"pass","entity":3714,"entity_type":"player","id":165,"created_at":1617843307},{"type":"bid","entity":488,"entity_type":"player","id":166,"created_at":1617843318,"company":"P7","price":65},{"type":"pass","entity":488,"entity_type":"player","id":167,"created_at":1617843348},{"type":"bid","entity":4035,"entity_type":"player","id":168,"created_at":1617843366,"company":"M17","price":120},{"type":"pass","entity":4035,"entity_type":"player","id":169,"created_at":1617843370},{"type":"bid","entity":3714,"entity_type":"player","id":170,"created_at":1617843393,"company":"P2","price":30},{"type":"bid","entity":3714,"entity_type":"player","id":171,"created_at":1617843395,"company":"P7","price":70},{"type":"pass","entity":3714,"entity_type":"player","id":172,"created_at":1617843403},{"type":"bid","entity":488,"entity_type":"player","id":173,"created_at":1617843478,"company":"C7","price":100},{"type":"pass","entity":488,"entity_type":"player","id":174,"created_at":1617843484},{"type":"pass","entity":4035,"entity_type":"player","id":175,"created_at":1617843500},{"type":"pass","entity":3714,"entity_type":"player","id":176,"created_at":1617843510},{"type":"pass","entity":488,"entity_type":"player","id":177,"created_at":1617843524},{"type":"choose","entity":3714,"entity_type":"player","id":178,"created_at":1617843528,"choice":"double"},{"type":"pass","entity":"21","entity_type":"corporation","id":179,"created_at":1617843538},{"type":"pass","entity":"21","entity_type":"corporation","id":180,"created_at":1617843543},{"type":"run_routes","entity":"21","entity_type":"corporation","id":181,"created_at":1617843554,"routes":[{"train":"L-1","connections":[["E34","F35"]],"hexes":["F35","E34"],"revenue":60,"revenue_str":"F35-E34"}]},{"type":"pass","entity":"21","entity_type":"corporation","id":182,"created_at":1617843558},{"type":"pass","entity":"24","entity_type":"corporation","id":183,"created_at":1617843561},{"type":"lay_tile","entity":"24","entity_type":"corporation","id":184,"created_at":1617843569,"hex":"D35","tile":"57-0","rotation":2},{"type":"run_routes","entity":"24","entity_type":"corporation","id":185,"created_at":1617843577,"routes":[{"train":"L-2","connections":[["D35","E36","F35"]],"hexes":["F35","D35"],"revenue":50,"revenue_str":"F35-D35"}]},{"type":"pass","entity":"24","entity_type":"corporation","id":186,"created_at":1617843579},{"type":"pass","entity":"2","entity_type":"corporation","id":187,"created_at":1617843584},{"type":"lay_tile","entity":"2","entity_type":"corporation","id":188,"created_at":1617843590,"hex":"G2","tile":"9-0","rotation":1},{"type":"run_routes","entity":"2","entity_type":"corporation","id":189,"created_at":1617843592,"routes":[{"train":"L-7","connections":[["E2","F3"]],"hexes":["E2","F3"],"revenue":20,"revenue_str":"E2-F3"}]},{"type":"pass","entity":"2","entity_type":"corporation","id":190,"created_at":1617843631},{"type":"pass","entity":"16","entity_type":"corporation","id":191,"created_at":1617843744},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":192,"created_at":1617843751,"hex":"L35","tile":"9-1","rotation":0},{"type":"run_routes","entity":"16","entity_type":"corporation","id":193,"created_at":1617843755,"routes":[{"train":"L-8","connections":[["local","M38"]],"hexes":["M38"],"revenue":40,"revenue_str":"M38"}]},{"type":"buy_train","entity":"16","entity_type":"corporation","id":194,"created_at":1617843757,"train":"L-8","price":80,"variant":"2","exchange":"L-8"},{"type":"pass","entity":"18","entity_type":"corporation","id":195,"created_at":1617843781},{"type":"lay_tile","entity":"18","entity_type":"corporation","id":196,"created_at":1617843807,"hex":"J41","tile":"57-1","rotation":1},{"type":"run_routes","entity":"18","entity_type":"corporation","id":197,"created_at":1617843823,"routes":[{"train":"L-3","connections":[["I42","H41","G42"]],"hexes":["I42","G42"],"revenue":30,"revenue_str":"I42-G42"}]},{"type":"buy_train","entity":"18","entity_type":"corporation","id":198,"created_at":1617843838,"train":"L-3","price":80,"variant":"2","exchange":"L-3"},{"type":"buy_train","entity":"10","entity_type":"corporation","id":199,"created_at":1617843911,"train":"L-0","price":60,"variant":"L"},{"type":"pass","entity":"10","entity_type":"corporation","id":200,"created_at":1617843916},{"type":"lay_tile","entity":"10","entity_type":"corporation","id":201,"created_at":1617843928,"hex":"J29","tile":"5-0","rotation":1},{"type":"run_routes","entity":"10","entity_type":"corporation","id":202,"created_at":1617843938,"routes":[{"train":"L-16","connections":[["local","I30"]],"hexes":["I30"],"revenue":40,"revenue_str":"I30"}]},{"type":"buy_train","entity":"10","entity_type":"corporation","id":203,"created_at":1617843943,"train":"L-16","price":80,"variant":"2","exchange":"L-16"},{"type":"buy_train","entity":"17","entity_type":"corporation","id":204,"created_at":1617843965,"train":"L-0","price":60,"variant":"L"},{"type":"pass","entity":"17","entity_type":"corporation","id":205,"created_at":1617843970},{"type":"lay_tile","entity":"17","entity_type":"corporation","id":206,"created_at":1617843996,"hex":"K40","tile":"9-2","rotation":1},{"type":"run_routes","entity":"17","entity_type":"corporation","id":207,"created_at":1617844009,"routes":[{"train":"L-17","connections":[["local","J41"]],"hexes":["J41"],"revenue":20,"revenue_str":"J41"}]},{"type":"pass","entity":"17","entity_type":"corporation","id":208,"created_at":1617844018},{"type":"pass","entity":"CR","entity_type":"corporation","id":209,"created_at":1617844028},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":210,"created_at":1617844043,"hex":"G8","tile":"8-3","rotation":0},{"type":"pass","entity":"CR","entity_type":"corporation","id":211,"created_at":1617844064},{"type":"pass","entity":"CR","entity_type":"corporation","id":212,"created_at":1617844067},{"type":"buy_train","entity":"CR","entity_type":"corporation","id":213,"created_at":1617844070,"train":"L-18","price":120,"variant":"2"},{"id":214,"type":"pass","entity":"MR","entity_type":"corporation","user":488,"created_at":1617844239,"skip":true},{"id":215,"hex":"I28","tile":"8-4","type":"lay_tile","entity":"MR","rotation":5,"entity_type":"corporation","user":488,"created_at":1617844254,"skip":true},{"id":216,"type":"undo","entity":"MR","action_id":213,"entity_type":"corporation","user":488,"created_at":1617844268,"skip":true},{"type":"pass","entity":"MR","entity_type":"corporation","id":217,"created_at":1617844270},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":218,"created_at":1617844278,"hex":"H29","tile":"7-0","rotation":5},{"type":"pass","entity":"MR","entity_type":"corporation","id":219,"created_at":1617844282},{"type":"pass","entity":"MR","entity_type":"corporation","id":220,"created_at":1617844290},{"type":"buy_train","entity":"MR","entity_type":"corporation","id":221,"created_at":1617844293,"train":"L-19","price":120,"variant":"2"},{"type":"pass","entity":"21","entity_type":"corporation","id":222,"created_at":1617844303},{"type":"lay_tile","entity":"21","entity_type":"corporation","id":223,"created_at":1617844314,"hex":"G34","tile":"58-1","rotation":1},{"type":"run_routes","entity":"21","entity_type":"corporation","id":224,"created_at":1617844325,"routes":[{"train":"L-1","connections":[["E34","F35"]],"hexes":["E34","F35"],"revenue":60,"revenue_str":"E34-F35"}]},{"type":"pass","entity":"21","entity_type":"corporation","id":225,"created_at":1617844329},{"type":"pass","entity":"24","entity_type":"corporation","id":226,"created_at":1617844332},{"type":"lay_tile","entity":"24","entity_type":"corporation","id":227,"created_at":1617844340,"hex":"G32","tile":"58-2","rotation":4},{"type":"run_routes","entity":"24","entity_type":"corporation","id":228,"created_at":1617844344,"routes":[{"train":"L-2","connections":[["D35","E36","F35"]],"hexes":["D35","F35"],"revenue":50,"revenue_str":"D35-F35"}]},{"type":"pass","entity":"24","entity_type":"corporation","id":229,"created_at":1617844347},{"type":"pass","entity":"2","entity_type":"corporation","id":230,"created_at":1617844351},{"id":231,"hex":"G10","tile":"9-3","type":"lay_tile","entity":"2","rotation":0,"entity_type":"corporation","user":3714,"created_at":1617844360,"skip":true},{"id":232,"type":"run_routes","entity":"2","routes":[{"hexes":["E2","F3"],"train":"L-7","revenue":20,"connections":[["E2","F3"]],"revenue_str":"E2-F3"}],"entity_type":"corporation","user":3714,"created_at":1617844363,"skip":true},{"id":233,"type":"undo","entity":"2","entity_type":"corporation","user":3714,"created_at":1617844393,"skip":true},{"id":234,"type":"undo","entity":"2","entity_type":"corporation","user":3714,"created_at":1617844396,"skip":true},{"type":"lay_tile","entity":"2","entity_type":"corporation","id":235,"created_at":1617844418,"hex":"G10","tile":"8-4","rotation":3},{"type":"run_routes","entity":"2","entity_type":"corporation","id":236,"created_at":1617844422,"routes":[{"train":"L-7","connections":[["E2","F3"]],"hexes":["E2","F3"],"revenue":20,"revenue_str":"E2-F3"}]},{"type":"buy_train","entity":"2","entity_type":"corporation","id":237,"created_at":1617844423,"train":"L-7","price":80,"variant":"2","exchange":"L-7"},{"type":"pass","entity":"16","entity_type":"corporation","id":238,"created_at":1617844479},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":239,"created_at":1617844494,"hex":"L33","tile":"6-1","rotation":0},{"type":"run_routes","entity":"16","entity_type":"corporation","id":240,"created_at":1617844510,"routes":[{"train":"L-8","connections":[["M38","L37","L35","L33"]],"hexes":["L33","M38"],"revenue":60,"revenue_str":"L33-M38"}]},{"type":"pass","entity":"16","entity_type":"corporation","id":241,"created_at":1617844519},{"type":"pass","entity":"18","entity_type":"corporation","id":242,"created_at":1617844524},{"type":"lay_tile","entity":"18","entity_type":"corporation","id":243,"created_at":1617844537,"hex":"G40","tile":"9-3","rotation":0},{"type":"run_routes","entity":"18","entity_type":"corporation","id":244,"created_at":1617844555,"routes":[{"train":"L-3","connections":[["I42","J41"]],"hexes":["J41","I42"],"revenue":40,"revenue_str":"J41-I42"}]},{"type":"pass","entity":"18","entity_type":"corporation","id":245,"created_at":1617844564},{"type":"pass","entity":"10","entity_type":"corporation","id":246,"created_at":1617844589},{"type":"lay_tile","entity":"10","entity_type":"corporation","id":247,"created_at":1617844597,"hex":"H31","tile":"8-5","rotation":1},{"type":"run_routes","entity":"10","entity_type":"corporation","id":248,"created_at":1617844614,"routes":[{"train":"L-16","connections":[["I30","J29"]],"hexes":["J29","I30"],"revenue":60,"revenue_str":"J29-I30"}]},{"type":"pass","entity":"10","entity_type":"corporation","id":249,"created_at":1617844628},{"type":"pass","entity":"17","entity_type":"corporation","id":250,"created_at":1617844632},{"type":"lay_tile","entity":"17","entity_type":"corporation","id":251,"created_at":1617844640,"hex":"L39","tile":"9-4","rotation":1},{"type":"run_routes","entity":"17","entity_type":"corporation","id":252,"created_at":1617844662,"routes":[{"train":"L-17","connections":[["local","J41"]],"hexes":["J41"],"revenue":20,"revenue_str":"J41"}]},{"type":"buy_train","entity":"17","entity_type":"corporation","id":253,"created_at":1617844665,"train":"L-17","price":80,"variant":"2","exchange":"L-17"},{"id":254,"type":"pass","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617844677,"skip":true},{"id":255,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617844683,"skip":true},{"type":"pass","entity":"CR","entity_type":"corporation","id":256,"created_at":1617844729},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":257,"created_at":1617844733,"hex":"H11","tile":"7-1","rotation":1},{"type":"pass","entity":"CR","entity_type":"corporation","id":258,"created_at":1617844738},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":259,"created_at":1617844748,"routes":[{"train":"L-18","connections":[["E6","F7"]],"hexes":["F7","E6"],"revenue":50,"revenue_str":"F7-E6"}]},{"type":"dividend","entity":"CR","entity_type":"corporation","id":260,"created_at":1617844758,"kind":"payout"},{"type":"pass","entity":"CR","entity_type":"corporation","id":261,"created_at":1617844765},{"type":"merge","entity":"CR","entity_type":"corporation","id":262,"created_at":1617844770,"corporation":"2"},{"type":"choose","entity":"CR","entity_type":"corporation","id":263,"created_at":1617844775,"choice":"two_shares"},{"type":"choose","entity":"CR","entity_type":"corporation","id":264,"created_at":1617844799,"choice":"exchange"},{"type":"pass","entity":"CR","entity_type":"corporation","id":265,"created_at":1617844825},{"type":"pass","entity":"MR","entity_type":"corporation","id":266,"created_at":1617844831},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":267,"created_at":1617844851,"hex":"I28","tile":"8-6","rotation":5},{"type":"pass","entity":"MR","entity_type":"corporation","id":268,"created_at":1617844859},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":269,"created_at":1617844869,"routes":[{"train":"L-19","connections":[["J29","I30"]],"hexes":["I30","J29"],"revenue":60,"revenue_str":"I30-J29"}]},{"type":"dividend","entity":"MR","entity_type":"corporation","id":270,"created_at":1617844872,"kind":"payout"},{"type":"pass","entity":"MR","entity_type":"corporation","id":271,"created_at":1617844876},{"type":"merge","entity":"MR","entity_type":"corporation","id":272,"created_at":1617844879,"corporation":"10"},{"type":"choose","entity":"MR","entity_type":"corporation","id":273,"created_at":1617844885,"choice":"two_shares"},{"type":"choose","entity":"MR","entity_type":"corporation","id":274,"created_at":1617844887,"choice":"replace"},{"type":"pass","entity":"MR","entity_type":"corporation","id":275,"created_at":1617844901},{"type":"bid","entity":3714,"entity_type":"player","id":276,"created_at":1617844928,"company":"P12","price":20},{"type":"bid","entity":3714,"entity_type":"player","id":277,"created_at":1617844934,"company":"P8","price":20},{"type":"bid","entity":3714,"entity_type":"player","id":278,"created_at":1617844963,"company":"P18","price":20},{"type":"buy_shares","entity":488,"entity_type":"player","id":279,"created_at":1617845066,"shares":["MR_3"],"percent":10},{"type":"bid","entity":4035,"entity_type":"player","id":280,"created_at":1617845247,"company":"P18","price":25},{"type":"pass","entity":4035,"entity_type":"player","id":281,"created_at":1617845251},{"type":"buy_shares","entity":3714,"entity_type":"player","id":282,"created_at":1617845269,"shares":["CR_3"],"percent":10},{"type":"buy_shares","entity":488,"entity_type":"player","id":283,"created_at":1617845424,"shares":["MR_4"],"percent":10},{"type":"par","entity":4035,"entity_type":"player","id":284,"created_at":1617845520,"corporation":"GWR","share_price":"100,4,4"},{"type":"buy_shares","entity":3714,"entity_type":"player","id":285,"created_at":1617845530,"shares":["CR_4"],"percent":10},{"type":"par","entity":488,"entity_type":"player","id":286,"created_at":1617845557,"corporation":"LYR","share_price":"60,8,4"},{"type":"pass","entity":4035,"entity_type":"player","id":287,"created_at":1617845603},{"type":"bid","entity":3714,"entity_type":"player","id":288,"created_at":1617845606,"company":"P18","price":30},{"type":"pass","entity":3714,"entity_type":"player","id":289,"created_at":1617845662},{"type":"buy_shares","entity":488,"entity_type":"player","id":290,"created_at":1617845696,"shares":["LYR_1"],"percent":10},{"type":"bid","entity":4035,"entity_type":"player","id":291,"created_at":1617845713,"company":"P12","price":25},{"type":"pass","entity":4035,"entity_type":"player","id":292,"created_at":1617845720},{"id":293,"type":"bid","price":30,"entity":3714,"company":"P12","entity_type":"player","user":3714,"created_at":1617845730,"skip":true},{"id":294,"type":"undo","entity":3714,"entity_type":"player","user":3714,"created_at":1617845741,"skip":true},{"type":"par","entity":3714,"entity_type":"player","id":295,"created_at":1617845752,"corporation":"LBSCR","share_price":"100,4,4"},{"type":"buy_shares","entity":488,"entity_type":"player","id":296,"created_at":1617845764,"shares":["LYR_2"],"percent":10},{"type":"pass","entity":4035,"entity_type":"player","id":297,"created_at":1617845785},{"type":"bid","entity":3714,"entity_type":"player","id":298,"created_at":1617845789,"company":"P12","price":30},{"type":"pass","entity":3714,"entity_type":"player","id":299,"created_at":1617845798},{"type":"buy_shares","entity":488,"entity_type":"player","id":300,"created_at":1617845810,"shares":["LYR_3"],"percent":10},{"type":"bid","entity":4035,"entity_type":"player","id":301,"created_at":1617845832,"company":"P8","price":25},{"type":"pass","entity":4035,"entity_type":"player","id":302,"created_at":1617845835},{"type":"bid","entity":3714,"entity_type":"player","id":303,"created_at":1617845870,"company":"P8","price":30},{"type":"pass","entity":3714,"entity_type":"player","id":304,"created_at":1617845873},{"type":"buy_shares","entity":488,"entity_type":"player","id":305,"created_at":1617845881,"shares":["LYR_4"],"percent":10},{"type":"pass","entity":4035,"entity_type":"player","id":306,"created_at":1617845888},{"type":"pass","entity":3714,"entity_type":"player","id":307,"created_at":1617845907},{"type":"pass","entity":488,"entity_type":"player","id":308,"created_at":1617845911},{"type":"choose","entity":3714,"entity_type":"player","id":309,"created_at":1617845916,"choice":"double"},{"type":"pass","entity":"21","entity_type":"corporation","id":310,"created_at":1617845927},{"type":"lay_tile","entity":"21","entity_type":"corporation","id":311,"created_at":1617845943,"hex":"I30","tile":"X2-0","rotation":0},{"type":"run_routes","entity":"21","entity_type":"corporation","id":312,"created_at":1617845978,"routes":[{"train":"L-1","connections":[["F33","E34"]],"hexes":["E34","F33"],"revenue":80,"revenue_str":"E34-F33"}]},{"type":"pass","entity":"21","entity_type":"corporation","id":313,"created_at":1617845984},{"id":314,"type":"pass","entity":"24","entity_type":"corporation","user":488,"created_at":1617845988,"skip":true},{"id":315,"hex":"H29","tile":"80-0","type":"lay_tile","entity":"24","rotation":4,"entity_type":"corporation","user":488,"created_at":1617846010,"skip":true},{"id":316,"type":"undo","entity":"24","action_id":313,"entity_type":"corporation","user":488,"created_at":1617846021,"skip":true},{"type":"pass","entity":"24","entity_type":"corporation","id":317,"created_at":1617846023},{"type":"lay_tile","entity":"24","entity_type":"corporation","id":318,"created_at":1617846028,"hex":"D35","tile":"X3-0","rotation":1},{"type":"run_routes","entity":"24","entity_type":"corporation","id":319,"created_at":1617846033,"routes":[{"train":"L-2","connections":[["D35","E36","F35"]],"hexes":["D35","F35"],"revenue":60,"revenue_str":"D35-F35"}]},{"type":"pass","entity":"24","entity_type":"corporation","id":320,"created_at":1617846035},{"type":"pass","entity":"16","entity_type":"corporation","id":321,"created_at":1617846040},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":322,"created_at":1617846048,"hex":"M38","tile":"X21-0","rotation":0},{"type":"run_routes","entity":"16","entity_type":"corporation","id":323,"created_at":1617846052,"routes":[{"train":"L-8","connections":[["M38","L37","L35","L33"]],"hexes":["M38","L33"],"revenue":80,"revenue_str":"M38-L33"}]},{"type":"pass","entity":"16","entity_type":"corporation","id":324,"created_at":1617846054},{"type":"pass","entity":"18","entity_type":"corporation","id":325,"created_at":1617846062},{"id":326,"hex":"G38","tile":"9-5","type":"lay_tile","entity":"18","rotation":0,"entity_type":"corporation","user":4035,"created_at":1617846082,"skip":true},{"id":327,"type":"undo","entity":"18","entity_type":"corporation","user":4035,"created_at":1617846108,"skip":true},{"type":"lay_tile","entity":"18","entity_type":"corporation","id":328,"created_at":1617846120,"hex":"J41","tile":"14-0","rotation":1},{"type":"run_routes","entity":"18","entity_type":"corporation","id":329,"created_at":1617846131,"routes":[{"train":"L-3","connections":[["I42","J41"]],"hexes":["I42","J41"],"revenue":50,"revenue_str":"I42-J41"}]},{"type":"pass","entity":"18","entity_type":"corporation","id":330,"created_at":1617846141},{"type":"pass","entity":"17","entity_type":"corporation","id":331,"created_at":1617846146},{"type":"lay_tile","entity":"17","entity_type":"corporation","id":332,"created_at":1617846162,"hex":"I42","tile":"15-0","rotation":2},{"type":"run_routes","entity":"17","entity_type":"corporation","id":333,"created_at":1617846183,"routes":[{"train":"L-17","connections":[["J41","K40","L39","M38"]],"hexes":["M38","J41"],"revenue":90,"revenue_str":"M38-J41"}]},{"type":"pass","entity":"17","entity_type":"corporation","id":334,"created_at":1617846187},{"type":"acquire_company","entity":"GWR","entity_type":"corporation","id":335,"created_at":1617846227,"company":"P3"},{"type":"pass","entity":"GWR","entity_type":"corporation","id":336,"created_at":1617846248},{"type":"lay_tile","entity":"GWR","entity_type":"corporation","id":337,"created_at":1617846264,"hex":"G38","tile":"9-5","rotation":0},{"type":"pass","entity":"GWR","entity_type":"corporation","id":338,"created_at":1617846272},{"type":"hex_token","entity":"GWR","entity_type":"corporation","id":339,"created_at":1617846281,"hex":"G36","token_type":"destination"},{"type":"pass","entity":"GWR","entity_type":"corporation","id":340,"created_at":1617846289},{"type":"run_routes","entity":"GWR","entity_type":"corporation","id":341,"created_at":1617846303,"routes":[{"train":"2P-0","connections":[["M38","L39","K40","J41"]],"hexes":["J41","M38"],"revenue":90,"revenue_str":"J41-M38"}]},{"type":"dividend","entity":"GWR","entity_type":"corporation","id":342,"created_at":1617846310,"kind":"payout"},{"type":"buy_train","entity":"GWR","entity_type":"corporation","id":343,"created_at":1617846313,"train":"3-1","price":200,"variant":"3"},{"id":344,"type":"pass","entity":"GWR","entity_type":"corporation","user":4035,"created_at":1617846323,"skip":true},{"id":345,"type":"acquire_company","entity":"LBSCR","company":"P7","entity_type":"corporation","user":3714,"created_at":1617846338,"skip":true},{"id":346,"type":"undo","entity":"LBSCR","entity_type":"corporation","user":3714,"created_at":1617846369,"skip":true},{"id":347,"type":"undo","entity":"LBSCR","entity_type":"corporation","user":3714,"created_at":1617846371,"skip":true},{"type":"pass","entity":"GWR","entity_type":"corporation","id":348,"created_at":1617846411},{"type":"acquire_company","entity":"LBSCR","entity_type":"corporation","id":349,"created_at":1617846430,"company":"P7"},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":350,"created_at":1617846437},{"type":"lay_tile","entity":"LBSCR","entity_type":"corporation","id":351,"created_at":1617846442,"hex":"M40","tile":"9-6","rotation":0},{"type":"lay_tile","entity":"LBSCR","entity_type":"corporation","id":352,"created_at":1617846454,"hex":"M42","tile":"5-1","rotation":2},{"type":"hex_token","entity":"LBSCR","entity_type":"corporation","id":353,"created_at":1617846464,"hex":"M42","token_type":"destination"},{"type":"buy_train","entity":"LBSCR","entity_type":"corporation","id":354,"created_at":1617846494,"train":"3-2","price":200,"variant":"3"},{"type":"acquire_company","entity":"CR","entity_type":"corporation","id":355,"created_at":1617846509,"company":"P9"},{"type":"pass","entity":"CR","entity_type":"corporation","id":356,"created_at":1617846518},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":357,"created_at":1617846562,"hex":"G12","tile":"5-2","rotation":4},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":358,"created_at":1617846652,"hex":"F5","tile":"4-0","rotation":1},{"type":"hex_token","entity":"CR","entity_type":"corporation","id":359,"created_at":1617846682,"hex":"G12","token_type":"destination"},{"type":"pass","entity":"CR","entity_type":"corporation","id":360,"created_at":1617846687},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":361,"created_at":1617846698,"routes":[{"train":"L-18","connections":[["E6","F7"]],"hexes":["E6","F7"],"revenue":60,"revenue_str":"E6-F7"},{"train":"L-7","connections":[["E6","F5"]],"hexes":["F5","E6"],"revenue":60,"revenue_str":"F5-E6"}]},{"type":"dividend","entity":"CR","entity_type":"corporation","id":362,"created_at":1617846701,"kind":"payout"},{"type":"buy_train","entity":"CR","entity_type":"corporation","id":363,"created_at":1617846703,"train":"3-3","price":200,"variant":"3"},{"type":"pass","entity":"CR","entity_type":"corporation","id":364,"created_at":1617846705},{"type":"pass","entity":"CR","entity_type":"corporation","id":365,"created_at":1617846710},{"type":"pass","entity":"CR","entity_type":"corporation","id":366,"created_at":1617846714},{"type":"acquire_company","entity":"MR","entity_type":"corporation","id":367,"created_at":1617846731,"company":"P6"},{"type":"pass","entity":"MR","entity_type":"corporation","id":368,"created_at":1617846737},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":369,"created_at":1617846751,"hex":"J29","tile":"14-1","rotation":1},{"type":"pass","entity":"MR","entity_type":"corporation","id":370,"created_at":1617846758},{"type":"pass","entity":"MR","entity_type":"corporation","id":371,"created_at":1617846761},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":372,"created_at":1617846780,"routes":[{"train":"L-19","connections":[["J29","I30"]],"hexes":["J29","I30"],"revenue":80,"revenue_str":"J29-I30"},{"train":"L-16","connections":[["I30","H29","H31","G32"]],"hexes":["G32","I30"],"revenue":60,"revenue_str":"G32-I30"}]},{"type":"dividend","entity":"MR","entity_type":"corporation","id":373,"created_at":1617846781,"kind":"payout"},{"type":"buy_train","entity":"MR","entity_type":"corporation","id":374,"created_at":1617846786,"train":"3-4","price":200,"variant":"3"},{"type":"pass","entity":"MR","entity_type":"corporation","id":375,"created_at":1617846793},{"type":"pass","entity":"MR","entity_type":"corporation","id":376,"created_at":1617846823},{"type":"pass","entity":"MR","entity_type":"corporation","id":377,"created_at":1617846826},{"type":"pass","entity":"LYR","entity_type":"corporation","id":378,"created_at":1617846833},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":379,"created_at":1617846842,"hex":"H23","tile":"6-2","rotation":2},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":380,"created_at":1617846848,"hex":"G20","tile":"3-1","rotation":5},{"type":"hex_token","entity":"LYR","entity_type":"corporation","id":381,"created_at":1617846857,"hex":"I22","token_type":"destination"},{"type":"buy_train","entity":"LYR","entity_type":"corporation","id":382,"created_at":1617846863,"train":"3-5","price":200,"variant":"3"},{"type":"pass","entity":"LYR","entity_type":"corporation","id":383,"created_at":1617846868},{"type":"pass","entity":"21","entity_type":"corporation","id":384,"created_at":1617846873},{"type":"lay_tile","entity":"21","entity_type":"corporation","id":385,"created_at":1617846884,"hex":"H29","tile":"80-0","rotation":4},{"type":"run_routes","entity":"21","entity_type":"corporation","id":386,"created_at":1617846893,"routes":[{"train":"L-1","connections":[["F33","E34"]],"hexes":["F33","E34"],"revenue":80,"revenue_str":"F33-E34"}]},{"type":"pass","entity":"21","entity_type":"corporation","id":387,"created_at":1617846897},{"type":"pass","entity":"24","entity_type":"corporation","id":388,"created_at":1617846900},{"type":"lay_tile","entity":"24","entity_type":"corporation","id":389,"created_at":1617846910,"hex":"I28","tile":"83-0","rotation":2},{"type":"run_routes","entity":"24","entity_type":"corporation","id":390,"created_at":1617846915,"routes":[{"train":"L-2","connections":[["D35","E36","F35"]],"hexes":["D35","F35"],"revenue":60,"revenue_str":"D35-F35"}]},{"type":"pass","entity":"24","entity_type":"corporation","id":391,"created_at":1617846917},{"type":"pass","entity":"16","entity_type":"corporation","id":392,"created_at":1617846922},{"type":"lay_tile","entity":"16","entity_type":"corporation","id":393,"created_at":1617846932,"hex":"L33","tile":"15-1","rotation":0},{"type":"run_routes","entity":"16","entity_type":"corporation","id":394,"created_at":1617846936,"routes":[{"train":"L-8","connections":[["M38","L37","L35","L33"]],"hexes":["M38","L33"],"revenue":90,"revenue_str":"M38-L33"}]},{"type":"pass","entity":"16","entity_type":"corporation","id":395,"created_at":1617846941},{"type":"pass","entity":"18","entity_type":"corporation","id":396,"created_at":1617846948},{"type":"lay_tile","entity":"18","entity_type":"corporation","id":397,"created_at":1617847011,"hex":"H35","tile":"9-7","rotation":1},{"type":"run_routes","entity":"18","entity_type":"corporation","id":398,"created_at":1617847024,"routes":[{"train":"L-3","connections":[["I42","J41"]],"hexes":["I42","J41"],"revenue":60,"revenue_str":"I42-J41"}]},{"type":"pass","entity":"18","entity_type":"corporation","id":399,"created_at":1617847032},{"type":"pass","entity":"17","entity_type":"corporation","id":400,"created_at":1617847081},{"type":"lay_tile","entity":"17","entity_type":"corporation","id":401,"created_at":1617847155,"hex":"L39","tile":"83-1","rotation":4},{"type":"run_routes","entity":"17","entity_type":"corporation","id":402,"created_at":1617847177,"routes":[{"train":"L-17","connections":[["J41","K40","L39","M38"]],"hexes":["J41","M38"],"revenue":90,"revenue_str":"J41-M38"}]},{"type":"pass","entity":"17","entity_type":"corporation","id":403,"created_at":1617847182},{"type":"pass","entity":"GWR","entity_type":"corporation","id":404,"created_at":1617847189},{"type":"lay_tile","entity":"GWR","entity_type":"corporation","id":405,"created_at":1617847206,"hex":"I34","tile":"8-7","rotation":1},{"type":"lay_tile","entity":"GWR","entity_type":"corporation","id":406,"created_at":1617847211,"hex":"I32","tile":"9-8","rotation":0},{"type":"run_routes","entity":"GWR","entity_type":"corporation","id":407,"created_at":1617847314,"routes":[{"train":"2P-0","connections":[["J41","K40","L39","M38"]],"hexes":["M38","J41"],"revenue":90,"revenue_str":"M38-J41"},{"train":"3-1","connections":[["I30","H29","I28","J29"],["G36","H35","I34","I32","I30"]],"hexes":["J29","I30","G36"],"revenue":110,"revenue_str":"J29-I30-G36"}]},{"type":"dividend","entity":"GWR","entity_type":"corporation","id":408,"created_at":1617847324,"kind":"payout"},{"type":"pass","entity":"GWR","entity_type":"corporation","id":409,"created_at":1617847332},{"type":"merge","entity":"GWR","entity_type":"corporation","id":410,"created_at":1617847367,"corporation":"17"},{"type":"choose","entity":"GWR","entity_type":"corporation","id":411,"created_at":1617847376,"choice":"two_shares"},{"type":"choose","entity":"GWR","entity_type":"corporation","id":412,"created_at":1617847402,"choice":"exchange"},{"type":"pass","entity":"GWR","entity_type":"corporation","id":413,"created_at":1617847406},{"type":"pass","entity":"CR","entity_type":"corporation","id":414,"created_at":1617847515},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":415,"created_at":1617847520,"hex":"G12","tile":"15-2","rotation":3},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":416,"created_at":1617847581,"routes":[{"train":"L-18","connections":[["E6","E4","E2"]],"hexes":["E2","E6"],"revenue":60,"revenue_str":"E2-E6"},{"train":"L-7","connections":[["E6","F5"]],"hexes":["E6","F5"],"revenue":60,"revenue_str":"E6-F5"},{"train":"3-3","connections":[["F7","G8","G10","H11","G12"],["E6","F7"]],"hexes":["G12","F7","E6"],"revenue":120,"revenue_str":"G12-F7-E6 (£30)"}]},{"id":417,"kind":"payout","type":"dividend","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617847595,"skip":true},{"id":418,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617847604,"skip":true},{"type":"dividend","entity":"CR","entity_type":"corporation","id":419,"created_at":1617847607,"kind":"payout"},{"type":"pass","entity":"CR","entity_type":"corporation","id":420,"created_at":1617847609},{"type":"pass","entity":"CR","entity_type":"corporation","id":421,"created_at":1617847613},{"type":"pass","entity":"CR","entity_type":"corporation","id":422,"created_at":1617847617},{"id":423,"type":"acquire_company","entity":"LBSCR","company":"P12","entity_type":"corporation","user":3714,"created_at":1617847658,"skip":true},{"id":424,"type":"pass","entity":"LBSCR","entity_type":"corporation","user":3714,"created_at":1617847668,"skip":true},{"id":425,"hex":"L41","tile":"9-4","type":"lay_tile","entity":"LBSCR","rotation":2,"entity_type":"corporation","user":3714,"created_at":1617847682,"skip":true},{"id":426,"type":"undo","entity":"LBSCR","entity_type":"corporation","user":3714,"created_at":1617847692,"skip":true},{"id":427,"type":"undo","entity":"LBSCR","entity_type":"corporation","user":3714,"created_at":1617847701,"skip":true},{"id":428,"type":"undo","entity":"LBSCR","entity_type":"corporation","user":3714,"created_at":1617847703,"skip":true},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":429,"created_at":1617847704},{"type":"lay_tile","entity":"LBSCR","entity_type":"corporation","id":430,"created_at":1617847710,"hex":"L41","tile":"8-6","rotation":5},{"type":"lay_tile","entity":"LBSCR","entity_type":"corporation","id":431,"created_at":1617847713,"hex":"K42","tile":"6-3","rotation":2},{"type":"run_routes","entity":"LBSCR","entity_type":"corporation","id":432,"created_at":1617847748,"routes":[{"train":"3-2","connections":[["M42","L41","K42"],["M38","M40","M42"]],"hexes":["K42","M42","M38"],"revenue":120,"revenue_str":"K42-M42-M38 (£20)"}]},{"type":"dividend","entity":"LBSCR","entity_type":"corporation","id":433,"created_at":1617847752,"kind":"payout"},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":434,"created_at":1617847755},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":435,"created_at":1617847757},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":436,"created_at":1617847761},{"type":"pass","entity":"MR","entity_type":"corporation","id":437,"created_at":1617847804},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":438,"created_at":1617847815,"hex":"K30","tile":"57-2","rotation":2},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":439,"created_at":1617847819,"hex":"L31","tile":"8-8","rotation":0},{"type":"pass","entity":"MR","entity_type":"corporation","id":440,"created_at":1617847831},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":441,"created_at":1617847886,"routes":[{"train":"L-19","connections":[["J29","I30"]],"hexes":["I30","J29"],"revenue":80,"revenue_str":"I30-J29"},{"train":"L-16","connections":[["I30","H29","I28","J29"]],"hexes":["J29","I30"],"revenue":80,"revenue_str":"J29-I30"},{"train":"3-4","connections":[["G36","G38","G40","G42"],["I30","I32","I34","H35","G36"]],"hexes":["G42","G36","I30"],"revenue":90,"revenue_str":"G42-G36-I30"}]},{"type":"dividend","entity":"MR","entity_type":"corporation","id":442,"created_at":1617847888,"kind":"payout"},{"type":"pass","entity":"MR","entity_type":"corporation","id":443,"created_at":1617847897},{"id":444,"type":"merge","entity":"MR","corporation":"24","entity_type":"corporation","user":488,"created_at":1617847917,"skip":true},{"id":445,"type":"choose","choice":"two_shares","entity":"MR","entity_type":"corporation","user":488,"created_at":1617847921,"skip":true},{"id":446,"type":"choose","choice":"exchange","entity":"MR","entity_type":"corporation","user":488,"created_at":1617847927,"skip":true},{"id":447,"type":"undo","entity":"MR","action_id":443,"entity_type":"corporation","user":488,"created_at":1617847949,"skip":true},{"type":"merge","entity":"MR","entity_type":"corporation","id":448,"created_at":1617847966,"corporation":"16"},{"type":"choose","entity":"MR","entity_type":"corporation","id":449,"created_at":1617847968,"choice":"two_shares"},{"type":"choose","entity":"MR","entity_type":"corporation","id":450,"created_at":1617847970,"choice":"replace"},{"type":"pass","entity":"MR","entity_type":"corporation","id":451,"created_at":1617847974},{"type":"pass","entity":"LYR","entity_type":"corporation","id":452,"created_at":1617847979},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":453,"created_at":1617847985,"hex":"H23","tile":"619-0","rotation":0},{"type":"pass","entity":"LYR","entity_type":"corporation","id":454,"created_at":1617847991},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":455,"created_at":1617848004,"routes":[{"train":"3-5","connections":[["H23","I22"],["G22","H23"]],"hexes":["I22","H23","G22"],"revenue":140,"revenue_str":"I22-H23-G22 (£40)"}]},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":456,"created_at":1617848006,"kind":"payout"},{"type":"pass","entity":"LYR","entity_type":"corporation","id":457,"created_at":1617848010},{"type":"pass","entity":"LYR","entity_type":"corporation","id":458,"created_at":1617848013},{"type":"pass","entity":"LYR","entity_type":"corporation","id":459,"created_at":1617848019},{"type":"buy_shares","entity":488,"entity_type":"player","id":460,"created_at":1617848118,"shares":["GWR_3"],"percent":10},{"type":"par","entity":4035,"entity_type":"player","id":461,"created_at":1617848360,"corporation":"LNWR","share_price":"100,4,4"},{"type":"buy_shares","entity":3714,"entity_type":"player","id":462,"created_at":1617848368,"shares":["LBSCR_1"],"percent":10},{"type":"buy_shares","entity":488,"entity_type":"player","id":463,"created_at":1617848390,"shares":["GWR_4"],"percent":10},{"type":"buy_shares","entity":4035,"entity_type":"player","id":464,"created_at":1617848412,"shares":["LNWR_1"],"percent":10},{"type":"buy_shares","entity":3714,"entity_type":"player","id":465,"created_at":1617848457,"shares":["LBSCR_2"],"percent":10},{"type":"buy_shares","entity":488,"entity_type":"player","id":466,"created_at":1617848476,"shares":["GWR_5"],"percent":10},{"type":"pass","entity":4035,"entity_type":"player","id":467,"created_at":1617848531},{"type":"bid","entity":3714,"entity_type":"player","id":468,"created_at":1617848542,"company":"C8","price":100},{"type":"bid","entity":3714,"entity_type":"player","id":469,"created_at":1617848562,"company":"P14","price":20},{"type":"bid","entity":3714,"entity_type":"player","id":470,"created_at":1617848570,"company":"P10","price":10},{"type":"buy_shares","entity":488,"entity_type":"player","id":471,"created_at":1617848603,"shares":["GWR_6"],"percent":10},{"type":"buy_shares","entity":4035,"entity_type":"player","id":472,"created_at":1617848614,"shares":["GWR_7"],"percent":10},{"type":"bid","entity":3714,"entity_type":"player","id":473,"created_at":1617848635,"company":"P13","price":20},{"type":"pass","entity":3714,"entity_type":"player","id":474,"created_at":1617848637},{"type":"buy_shares","entity":488,"entity_type":"player","id":475,"created_at":1617848648,"shares":["GWR_8"],"percent":10},{"type":"pass","entity":4035,"entity_type":"player","id":476,"created_at":1617848670},{"type":"pass","entity":3714,"entity_type":"player","id":477,"created_at":1617848678},{"type":"bid","entity":488,"entity_type":"player","id":478,"created_at":1617848701,"company":"P13","price":25},{"type":"bid","entity":488,"entity_type":"player","id":479,"created_at":1617848706,"company":"P10","price":15},{"type":"pass","entity":488,"entity_type":"player","id":480,"created_at":1617848725},{"type":"pass","entity":4035,"entity_type":"player","id":481,"created_at":1617848730},{"type":"bid","entity":3714,"entity_type":"player","id":482,"created_at":1617848735,"company":"P13","price":30},{"type":"bid","entity":3714,"entity_type":"player","id":483,"created_at":1617848748,"company":"P10","price":20},{"type":"pass","entity":3714,"entity_type":"player","id":484,"created_at":1617848751},{"type":"bid","entity":488,"entity_type":"player","id":485,"created_at":1617848803,"company":"P10","price":25},{"type":"bid","entity":488,"entity_type":"player","id":486,"created_at":1617848806,"company":"P14","price":25},{"type":"pass","entity":488,"entity_type":"player","id":487,"created_at":1617848841},{"type":"pass","entity":4035,"entity_type":"player","id":488,"created_at":1617848844},{"type":"bid","entity":3714,"entity_type":"player","id":489,"created_at":1617848856,"company":"P10","price":30},{"type":"pass","entity":3714,"entity_type":"player","id":490,"created_at":1617848865},{"type":"pass","entity":488,"entity_type":"player","id":491,"created_at":1617848876},{"type":"pass","entity":4035,"entity_type":"player","id":492,"created_at":1617848882},{"type":"pass","entity":3714,"entity_type":"player","id":493,"created_at":1617848885},{"type":"pass","entity":"21","entity_type":"corporation","id":494,"created_at":1617848893},{"type":"lay_tile","entity":"21","entity_type":"corporation","id":495,"created_at":1617848902,"hex":"H27","tile":"8-9","rotation":3},{"type":"run_routes","entity":"21","entity_type":"corporation","id":496,"created_at":1617848908,"routes":[{"train":"L-1","connections":[["F33","E34"]],"hexes":["F33","E34"],"revenue":80,"revenue_str":"F33-E34"}]},{"type":"pass","entity":"21","entity_type":"corporation","id":497,"created_at":1617848910},{"type":"pass","entity":"24","entity_type":"corporation","id":498,"created_at":1617848913},{"type":"lay_tile","entity":"24","entity_type":"corporation","id":499,"created_at":1617848919,"hex":"H25","tile":"4-1","rotation":0},{"type":"run_routes","entity":"24","entity_type":"corporation","id":500,"created_at":1617848924,"routes":[{"train":"L-2","connections":[["D35","E36","F35"]],"hexes":["D35","F35"],"revenue":60,"revenue_str":"D35-F35"}]},{"type":"pass","entity":"24","entity_type":"corporation","id":501,"created_at":1617848927},{"type":"pass","entity":"18","entity_type":"corporation","id":502,"created_at":1617848935},{"type":"lay_tile","entity":"18","entity_type":"corporation","id":503,"created_at":1617848984,"hex":"L37","tile":"83-2","rotation":0},{"type":"run_routes","entity":"18","entity_type":"corporation","id":504,"created_at":1617849002,"routes":[{"train":"L-3","connections":[["I42","J41"]],"hexes":["I42","J41"],"revenue":60,"revenue_str":"I42-J41"}]},{"type":"pass","entity":"18","entity_type":"corporation","id":505,"created_at":1617849009},{"type":"pass","entity":"GWR","entity_type":"corporation","id":506,"created_at":1617849015},{"type":"lay_tile","entity":"GWR","entity_type":"corporation","id":507,"created_at":1617849036,"hex":"L35","tile":"83-3","rotation":0},{"id":508,"city":"X2-0-0","slot":2,"type":"place_token","entity":"GWR","entity_type":"corporation","user":4035,"created_at":1617849113,"skip":true},{"id":509,"type":"undo","entity":"GWR","entity_type":"corporation","user":4035,"created_at":1617849126,"skip":true},{"type":"place_token","entity":"GWR","entity_type":"corporation","id":510,"created_at":1617849178,"city":"15-1-0","slot":0},{"type":"run_routes","entity":"GWR","entity_type":"corporation","id":511,"created_at":1617849219,"routes":[{"train":"2P-0","connections":[["J41","K40","L39","M38"]],"hexes":["J41","M38"],"revenue":90,"revenue_str":"J41-M38"},{"train":"3-1","connections":[["I30","H29","I28","J29"],["G36","H35","I34","I32","I30"]],"hexes":["J29","I30","G36"],"revenue":110,"revenue_str":"J29-I30-G36"},{"train":"L-17","connections":[["L33","L35","L37","M38"]],"hexes":["M38","L33"],"revenue":90,"revenue_str":"M38-L33"}]},{"type":"dividend","entity":"GWR","entity_type":"corporation","id":512,"created_at":1617849229,"kind":"payout"},{"type":"pass","entity":"GWR","entity_type":"corporation","id":513,"created_at":1617849258},{"id":514,"type":"merge","entity":"GWR","corporation":"18","entity_type":"corporation","user":4035,"created_at":1617849281,"skip":true},{"id":515,"type":"undo","entity":"GWR","entity_type":"corporation","user":4035,"created_at":1617849292,"skip":true},{"type":"merge","entity":"GWR","entity_type":"corporation","id":516,"created_at":1617849396,"corporation":"18"},{"type":"choose","entity":"GWR","entity_type":"corporation","id":517,"created_at":1617849404,"choice":"money"},{"type":"choose","entity":"GWR","entity_type":"corporation","id":518,"created_at":1617849422,"choice":"replace"},{"type":"pass","entity":"CR","entity_type":"corporation","id":519,"created_at":1617849522},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":520,"created_at":1617849529,"hex":"G4","tile":"6-4","rotation":5},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":521,"created_at":1617849545,"hex":"G6","tile":"9-4","rotation":1},{"type":"pass","entity":"CR","entity_type":"corporation","id":522,"created_at":1617849556},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":523,"created_at":1617849576,"routes":[{"train":"L-18","connections":[["E6","E4","E2"]],"hexes":["E6","E2"],"revenue":60,"revenue_str":"E6-E2"},{"train":"L-7","connections":[["E6","F5"]],"hexes":["E6","F5"],"revenue":60,"revenue_str":"E6-F5"},{"train":"3-3","connections":[["F7","G8","G10","H11","G12"],["E6","F7"]],"hexes":["G12","F7","E6"],"revenue":120,"revenue_str":"G12-F7-E6 (£30)"}]},{"type":"dividend","entity":"CR","entity_type":"corporation","id":524,"created_at":1617849582,"kind":"payout"},{"type":"pass","entity":"CR","entity_type":"corporation","id":525,"created_at":1617849588},{"type":"pass","entity":"CR","entity_type":"corporation","id":526,"created_at":1617849591},{"type":"pass","entity":"CR","entity_type":"corporation","id":527,"created_at":1617849592},{"type":"pass","entity":"MR","entity_type":"corporation","id":528,"created_at":1617849651},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":529,"created_at":1617849665,"hex":"K28","tile":"6-5","rotation":1},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":530,"created_at":1617849671,"hex":"K26","tile":"8-10","rotation":4},{"type":"pass","entity":"MR","entity_type":"corporation","id":531,"created_at":1617849678},{"type":"pass","entity":"MR","entity_type":"corporation","id":532,"created_at":1617849682},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":533,"created_at":1617849753,"routes":[{"train":"L-19","connections":[["I30","J29"]],"hexes":["J29","I30"],"revenue":80,"revenue_str":"J29-I30"},{"train":"L-16","connections":[["I30","H29","I28","J29"]],"hexes":["J29","I30"],"revenue":80,"revenue_str":"J29-I30"},{"train":"3-4","connections":[["L33","L31","K30"],["M38","L37","L35","L33"]],"hexes":["K30","L33","M38"],"revenue":110,"revenue_str":"K30-L33-M38"},{"train":"L-8","connections":[["I30","I32","I34","H35","G36"]],"hexes":["G36","I30"],"revenue":80,"revenue_str":"G36-I30"}]},{"type":"dividend","entity":"MR","entity_type":"corporation","id":534,"created_at":1617849756,"kind":"payout"},{"type":"merge","entity":"MR","entity_type":"corporation","id":535,"created_at":1617849848,"corporation":"24"},{"type":"choose","entity":"MR","entity_type":"corporation","id":536,"created_at":1617849851,"choice":"two_shares"},{"type":"choose","entity":"MR","entity_type":"corporation","id":537,"created_at":1617849860,"choice":"exchange"},{"type":"discard_train","entity":"MR","entity_type":"corporation","id":538,"created_at":1617849863,"train":"L-2"},{"type":"acquire_company","entity":"LBSCR","entity_type":"corporation","id":539,"created_at":1617849935,"company":"P12"},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":540,"created_at":1617849944},{"type":"lay_tile","entity":"LBSCR","entity_type":"corporation","id":541,"created_at":1617849952,"hex":"M42","tile":"405-0","rotation":3},{"type":"lay_tile","entity":"P12","entity_type":"company","id":542,"created_at":1617849965,"hex":"K42","tile":"405-1","rotation":3},{"type":"place_token","entity":"LBSCR","entity_type":"corporation","id":543,"created_at":1617849976,"city":"X2-0-0","slot":1},{"type":"run_routes","entity":"LBSCR","entity_type":"corporation","id":544,"created_at":1617850002,"routes":[{"train":"3-2","connections":[["M42","L41","K42"],["M38","M40","M42"]],"hexes":["K42","M42","M38"],"revenue":180,"revenue_str":"K42-M42-M38 (£40)"}]},{"type":"dividend","entity":"LBSCR","entity_type":"corporation","id":545,"created_at":1617850008,"kind":"payout"},{"type":"buy_train","entity":"LBSCR","entity_type":"corporation","id":546,"created_at":1617850023,"train":"3-7","price":200,"variant":"3"},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":547,"created_at":1617850027},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":548,"created_at":1617850030},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":549,"created_at":1617850031},{"type":"acquire_company","entity":"LNWR","entity_type":"corporation","id":550,"created_at":1617850059,"company":"P4"},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":551,"created_at":1617850063},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":552,"created_at":1617850072,"hex":"M36","tile":"58-3","rotation":0},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":553,"created_at":1617850105},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":554,"created_at":1617850125},{"type":"run_routes","entity":"LNWR","entity_type":"corporation","id":555,"created_at":1617850147,"routes":[{"train":"2P-1","connections":[["I22","H23"]],"hexes":["H23","I22"],"revenue":70,"revenue_str":"H23-I22"}]},{"type":"dividend","entity":"LNWR","entity_type":"corporation","id":556,"created_at":1617850155,"kind":"payout"},{"type":"buy_train","entity":"LNWR","entity_type":"corporation","id":557,"created_at":1617850164,"train":"3-8","price":200,"variant":"3"},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":558,"created_at":1617850208},{"type":"pass","entity":"LYR","entity_type":"corporation","id":559,"created_at":1617850213},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":560,"created_at":1617850221,"hex":"G22","tile":"207-0","rotation":3},{"type":"pass","entity":"LYR","entity_type":"corporation","id":561,"created_at":1617850227},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":562,"created_at":1617850230,"routes":[{"train":"3-5","connections":[["H23","I22"],["G22","H23"]],"hexes":["I22","H23","G22"],"revenue":150,"revenue_str":"I22-H23-G22 (£40)"}]},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":563,"created_at":1617850232,"kind":"payout"},{"type":"pass","entity":"LYR","entity_type":"corporation","id":564,"created_at":1617850245},{"type":"merge","entity":"LYR","entity_type":"corporation","id":565,"created_at":1617850247,"corporation":"21"},{"type":"choose","entity":"LYR","entity_type":"corporation","id":566,"created_at":1617850249,"choice":"two_shares"},{"type":"choose","entity":"LYR","entity_type":"corporation","id":567,"created_at":1617850254,"choice":"exchange"},{"type":"pass","entity":"LYR","entity_type":"corporation","id":568,"created_at":1617850255},{"type":"pass","entity":"GWR","entity_type":"corporation","id":569,"created_at":1617850266},{"type":"lay_tile","entity":"GWR","entity_type":"corporation","id":570,"created_at":1617850299,"hex":"I22","tile":"X2-1","rotation":0},{"type":"place_token","entity":"GWR","entity_type":"corporation","id":571,"created_at":1617850374,"city":"X2-0-0","slot":2},{"type":"run_routes","entity":"GWR","entity_type":"corporation","id":572,"created_at":1617850413,"routes":[{"train":"2P-0","connections":[["J41","K40","L39","M38"]],"hexes":["J41","M38"],"revenue":90,"revenue_str":"J41-M38"},{"train":"3-1","connections":[["I30","H29","I28","J29"],["G36","H35","I34","I32","I30"]],"hexes":["J29","I30","G36"],"revenue":110,"revenue_str":"J29-I30-G36"},{"train":"L-17","connections":[["L33","L35","L37","M38"]],"hexes":["L33","M38"],"revenue":90,"revenue_str":"L33-M38"},{"train":"L-3","connections":[["I30","J29"]],"hexes":["J29","I30"],"revenue":80,"revenue_str":"J29-I30"}]},{"type":"dividend","entity":"GWR","entity_type":"corporation","id":573,"created_at":1617850424,"kind":"payout"},{"type":"buy_train","entity":"GWR","entity_type":"corporation","id":574,"created_at":1617850435,"train":"4-0","price":300,"variant":"4"},{"type":"buy_train","entity":"GWR","entity_type":"corporation","id":575,"created_at":1617850444,"train":"4-1","price":300,"variant":"4"},{"id":576,"type":"pass","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617850465,"skip":true},{"id":577,"hex":"H5","tile":"622-0","type":"lay_tile","entity":"CR","rotation":5,"entity_type":"corporation","user":3714,"created_at":1617850486,"skip":true},{"id":578,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617850500,"skip":true},{"id":579,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617850503,"skip":true},{"id":580,"type":"acquire_company","entity":"CR","company":"P10","entity_type":"corporation","user":3714,"created_at":1617850514,"skip":true},{"id":581,"type":"pass","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617850515,"skip":true},{"id":582,"hex":"H5","tile":"622-0","type":"lay_tile","entity":"CR","rotation":5,"entity_type":"corporation","user":3714,"created_at":1617850522,"skip":true},{"id":583,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617850528,"skip":true},{"id":584,"hex":"H5","tile":"622-0","type":"lay_tile","entity":"P10","rotation":5,"entity_type":"company","user":3714,"created_at":1617850533,"skip":true},{"id":585,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617850540,"skip":true},{"id":586,"hex":"H5","tile":"207-1","type":"lay_tile","entity":"CR","rotation":5,"entity_type":"corporation","user":3714,"created_at":1617850546,"skip":true},{"id":587,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617850582,"skip":true},{"id":588,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617850586,"skip":true},{"id":589,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617850589,"skip":true},{"type":"pass","entity":"CR","entity_type":"corporation","id":590,"created_at":1617850593},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":591,"created_at":1617850597,"hex":"H5","tile":"207-1","rotation":5},{"type":"pass","entity":"CR","entity_type":"corporation","id":592,"created_at":1617850612},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":593,"created_at":1617850622,"routes":[{"train":"3-3","connections":[["F7","G8","G10","H11","G12"],["E6","F7"]],"hexes":["G12","F7","E6"],"revenue":120,"revenue_str":"G12-F7-E6 (£30)"}]},{"type":"dividend","entity":"CR","entity_type":"corporation","id":594,"created_at":1617850627,"kind":"half"},{"type":"buy_train","entity":"CR","entity_type":"corporation","id":595,"created_at":1617850629,"train":"4-2","price":300,"variant":"4"},{"type":"pass","entity":"CR","entity_type":"corporation","id":596,"created_at":1617850631},{"type":"pass","entity":"CR","entity_type":"corporation","id":597,"created_at":1617850632},{"type":"pass","entity":"MR","entity_type":"corporation","id":598,"created_at":1617850649},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":599,"created_at":1617850656,"hex":"L25","tile":"8-11","rotation":1},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":600,"created_at":1617850660,"hex":"L23","tile":"9-9","rotation":0},{"type":"pass","entity":"MR","entity_type":"corporation","id":601,"created_at":1617850671},{"type":"place_token","entity":"MR","entity_type":"corporation","id":602,"created_at":1617850685,"city":"15-1-0","slot":1},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":603,"created_at":1617850707,"routes":[{"train":"3-4","connections":[["J41","K42"],["M38","L37","L39","K40","J41"]],"hexes":["K42","J41","M38"],"revenue":130,"revenue_str":"K42-J41-M38"}]},{"type":"dividend","entity":"MR","entity_type":"corporation","id":604,"created_at":1617850709,"kind":"payout"},{"type":"buy_train","entity":"MR","entity_type":"corporation","id":605,"created_at":1617850713,"train":"4-3","price":300,"variant":"4"},{"type":"pass","entity":"MR","entity_type":"corporation","id":606,"created_at":1617850717},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":607,"created_at":1617850818},{"type":"lay_tile","entity":"LBSCR","entity_type":"corporation","id":608,"created_at":1617850860,"hex":"K30","tile":"15-3","rotation":5},{"type":"run_routes","entity":"LBSCR","entity_type":"corporation","id":609,"created_at":1617850899,"routes":[{"train":"3-2","connections":[["M42","L41","K42"],["M38","M40","M42"]],"hexes":["K42","M42","M38"],"revenue":180,"revenue_str":"K42-M42-M38 (£40)"},{"train":"3-7","connections":[["J29","K30"],["I30","H29","I28","J29"]],"hexes":["K30","J29","I30"],"revenue":110,"revenue_str":"K30-J29-I30"}]},{"type":"dividend","entity":"LBSCR","entity_type":"corporation","id":610,"created_at":1617850902,"kind":"payout"},{"type":"buy_train","entity":"LBSCR","entity_type":"corporation","id":611,"created_at":1617850905,"train":"4-4","price":300,"variant":"4"},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":612,"created_at":1617850906},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":613,"created_at":1617850911},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":614,"created_at":1617850940,"hex":"H41","tile":"83-4","rotation":2},{"type":"run_routes","entity":"LNWR","entity_type":"corporation","id":615,"created_at":1617850973,"routes":[{"train":"2P-1","connections":[["I22","H23"]],"hexes":["I22","H23"],"revenue":80,"revenue_str":"I22-H23"},{"train":"3-8","connections":[["M36","L35","L33"],["M38","M36"]],"hexes":["L33","M36","M38"],"revenue":100,"revenue_str":"L33-M36-M38"}]},{"id":616,"kind":"payout","type":"dividend","entity":"LNWR","entity_type":"corporation","user":4035,"created_at":1617850981,"skip":true},{"id":617,"type":"undo","entity":"LNWR","entity_type":"corporation","user":4035,"created_at":1617851003,"skip":true},{"type":"dividend","entity":"LNWR","entity_type":"corporation","id":618,"created_at":1617851015,"kind":"payout"},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":619,"created_at":1617851024},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":620,"created_at":1617851026},{"type":"pass","entity":"LYR","entity_type":"corporation","id":621,"created_at":1617851035},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":622,"created_at":1617851050,"hex":"H21","tile":"2-0","rotation":5},{"id":623,"hex":"L21","tile":"9-1","type":"lay_tile","entity":"LYR","rotation":0,"entity_type":"corporation","user":488,"created_at":1617851061,"skip":true},{"id":624,"type":"undo","entity":"LYR","entity_type":"corporation","user":488,"created_at":1617851082,"skip":true},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":625,"created_at":1617851090,"hex":"J31","tile":"58-4","rotation":2},{"type":"pass","entity":"LYR","entity_type":"corporation","id":626,"created_at":1617851098},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":627,"created_at":1617851101,"routes":[{"train":"3-5","connections":[["H23","I22"],["G22","H23"]],"hexes":["I22","H23","G22"],"revenue":170,"revenue_str":"I22-H23-G22 (£50)"}]},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":628,"created_at":1617851103,"kind":"payout"},{"type":"buy_train","entity":"LYR","entity_type":"corporation","id":629,"created_at":1617851105,"train":"4-5","price":300,"variant":"4"},{"type":"pass","entity":"LYR","entity_type":"corporation","id":630,"created_at":1617851149},{"type":"pass","entity":"LYR","entity_type":"corporation","id":631,"created_at":1617851151},{"type":"buy_shares","entity":488,"entity_type":"player","id":632,"created_at":1617851162,"shares":["LNWR_2"],"percent":10},{"type":"bid","entity":3714,"entity_type":"player","id":633,"created_at":1617851199,"company":"M1","price":100},{"type":"pass","entity":3714,"entity_type":"player","id":634,"created_at":1617851207},{"type":"buy_shares","entity":4035,"entity_type":"player","id":635,"created_at":1617851212,"shares":["LNWR_3"],"percent":10},{"type":"bid","entity":488,"entity_type":"player","id":636,"created_at":1617851314,"company":"M8","price":1205},{"type":"pass","entity":488,"entity_type":"player","id":637,"created_at":1617851319},{"type":"par","entity":3714,"entity_type":"player","id":638,"created_at":1617851335,"corporation":"NBR","share_price":"100,4,4"},{"type":"buy_shares","entity":4035,"entity_type":"player","id":639,"created_at":1617851345,"shares":["LNWR_4"],"percent":10},{"type":"pass","entity":488,"entity_type":"player","id":640,"created_at":1617851364},{"type":"buy_shares","entity":3714,"entity_type":"player","id":641,"created_at":1617851373,"shares":["NBR_1"],"percent":10},{"type":"buy_shares","entity":4035,"entity_type":"player","id":642,"created_at":1617851398,"shares":["LNWR_5"],"percent":10},{"type":"pass","entity":488,"entity_type":"player","id":643,"created_at":1617851402},{"type":"buy_shares","entity":3714,"entity_type":"player","id":644,"created_at":1617851406,"shares":["NBR_2"],"percent":10},{"type":"buy_shares","entity":4035,"entity_type":"player","id":645,"created_at":1617851498,"shares":["LNWR_6"],"percent":10},{"type":"pass","entity":488,"entity_type":"player","id":646,"created_at":1617851505},{"type":"buy_shares","entity":3714,"entity_type":"player","id":647,"created_at":1617851556,"shares":["NBR_3"],"percent":10},{"type":"buy_shares","entity":4035,"entity_type":"player","id":648,"created_at":1617851631,"shares":["LBSCR_3"],"percent":10},{"type":"pass","entity":488,"entity_type":"player","id":649,"created_at":1617851634},{"type":"pass","entity":3714,"entity_type":"player","id":650,"created_at":1617851645},{"type":"pass","entity":4035,"entity_type":"player","id":651,"created_at":1617851650},{"id":652,"type":"pass","entity":"8","entity_type":"corporation","user":488,"created_at":1617851659,"skip":true},{"id":653,"type":"undo","entity":"GWR","entity_type":"corporation","user":488,"created_at":1617851686,"skip":true},{"type":"pass","entity":"8","entity_type":"corporation","id":654,"created_at":1617851693},{"type":"discard_train","entity":"GWR","entity_type":"corporation","id":655,"created_at":1617851745,"train":"3-1"},{"type":"discard_train","entity":"LBSCR","entity_type":"corporation","id":656,"created_at":1617851747,"train":"3-2"},{"type":"lay_tile","entity":"8","entity_type":"corporation","id":657,"created_at":1617851768,"hex":"K24","tile":"5-3","rotation":5},{"type":"buy_train","entity":"8","entity_type":"corporation","id":658,"created_at":1617851795,"train":"3-4","price":1204},{"id":659,"type":"pass","entity":"1","entity_type":"corporation","user":3714,"created_at":1617851819,"skip":true},{"id":660,"hex":"H3","tile":"4-2","type":"lay_tile","entity":"1","rotation":0,"entity_type":"corporation","user":3714,"created_at":1617851827,"skip":true},{"id":661,"type":"undo","entity":"1","entity_type":"corporation","user":3714,"created_at":1617851838,"skip":true},{"id":662,"type":"pass","entity":"1","entity_type":"corporation","user":3714,"created_at":1617851857,"skip":true},{"id":663,"type":"buy_train","price":1,"train":"3-3","entity":"1","entity_type":"corporation","user":3714,"created_at":1617851906,"skip":true},{"id":664,"type":"undo","entity":"GWR","entity_type":"corporation","user":3714,"created_at":1617851916,"skip":true},{"id":665,"type":"undo","entity":"1","entity_type":"corporation","user":3714,"created_at":1617851921,"skip":true},{"id":666,"hex":"H3","tile":"4-2","type":"lay_tile","entity":"1","rotation":0,"entity_type":"corporation","user":3714,"created_at":1617851924,"skip":true},{"id":667,"type":"buy_train","price":60,"train":"3-3","entity":"1","entity_type":"corporation","user":3714,"created_at":1617851952,"skip":true},{"id":668,"type":"undo","entity":"GWR","entity_type":"corporation","user":3714,"created_at":1617851981,"skip":true},{"id":669,"type":"undo","entity":"1","entity_type":"corporation","user":3714,"created_at":1617851983,"skip":true},{"id":670,"type":"undo","entity":"1","entity_type":"corporation","user":3714,"created_at":1617851985,"skip":true},{"id":671,"type":"undo","entity":"1","entity_type":"corporation","user":3714,"created_at":1617851986,"skip":true},{"id":672,"type":"redo","entity":"8","entity_type":"corporation","user":3714,"created_at":1617851990,"skip":true},{"type":"pass","entity":"1","entity_type":"corporation","id":673,"created_at":1617851996},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":674,"created_at":1617852015,"hex":"G2","tile":"83-5","rotation":1},{"type":"buy_train","entity":"1","entity_type":"corporation","id":675,"created_at":1617852027,"train":"3-3","price":100},{"type":"pass","entity":"GWR","entity_type":"corporation","id":676,"created_at":1617852070},{"type":"lay_tile","entity":"GWR","entity_type":"corporation","id":677,"created_at":1617852081,"hex":"G40","tile":"83-6","rotation":0},{"type":"run_routes","entity":"GWR","entity_type":"corporation","id":678,"created_at":1617852136,"routes":[{"train":"2P-0","connections":[["I30","H29","I28","J29"]],"hexes":["J29","I30"],"revenue":80,"revenue_str":"J29-I30"},{"train":"4-0","connections":[["I42","H41","G40","G38","G36"],["J41","I42"],["M38","L39","K40","J41"]],"hexes":["G36","I42","J41","M38"],"revenue":180,"revenue_str":"G36-I42-J41-M38 (£30)"},{"train":"4-1","connections":[["L33","L35","L37","M38"],["K30","L31","L33"],["J29","K30"]],"hexes":["M38","L33","K30","J29"],"revenue":150,"revenue_str":"M38-L33-K30-J29"}]},{"type":"dividend","entity":"GWR","entity_type":"corporation","id":679,"created_at":1617852144,"kind":"payout"},{"type":"pass","entity":"MR","entity_type":"corporation","id":680,"created_at":1617852193},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":681,"created_at":1617852252,"hex":"M38","tile":"X22-0","rotation":0},{"type":"pass","entity":"MR","entity_type":"corporation","id":682,"created_at":1617852258},{"type":"place_token","entity":"MR","entity_type":"corporation","id":683,"created_at":1617852282,"city":"15-3-0","slot":1},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":684,"created_at":1617852301,"routes":[{"train":"4-3","connections":[["K42","L41","M42"],["J41","K42"],["M38","L37","L39","K40","J41"]],"hexes":["M42","K42","J41","M38"],"revenue":190,"revenue_str":"M42-K42-J41-M38"}]},{"type":"dividend","entity":"MR","entity_type":"corporation","id":685,"created_at":1617852303,"kind":"payout"},{"type":"buy_train","entity":"MR","entity_type":"corporation","id":686,"created_at":1617852306,"train":"5-1","price":500,"variant":"5"},{"type":"pass","entity":"MR","entity_type":"corporation","id":687,"created_at":1617852315},{"type":"acquire_company","entity":"CR","entity_type":"corporation","id":688,"created_at":1617852400,"company":"P13"},{"type":"pass","entity":"CR","entity_type":"corporation","id":689,"created_at":1617852407},{"id":690,"hex":"H5","tile":"X5-0","type":"lay_tile","entity":"CR","rotation":5,"entity_type":"corporation","user":3714,"created_at":1617852425,"skip":true},{"id":691,"type":"pass","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617852438,"skip":true},{"id":692,"type":"choose","choice":"0","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617852449,"skip":true},{"id":693,"type":"run_routes","entity":"CR","routes":[{"hexes":["G12","F7","E6","F5","G4","H5"],"train":"4-2","revenue":210,"connections":[["F7","G8","G10","H11","G12"],["E6","F7"],["F5","E6"],["G4","F5"],["H5","G4"]],"revenue_str":"G12-F7-E6-F5-G4-H5 (£30)"}],"entity_type":"corporation","user":3714,"created_at":1617852462,"skip":true},{"id":694,"kind":"payout","type":"dividend","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617852468,"skip":true},{"id":695,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617852476,"skip":true},{"id":696,"kind":"half","type":"dividend","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617852488,"skip":true},{"id":697,"type":"pass","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617852493,"skip":true},{"id":698,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617852540,"skip":true},{"id":699,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617852544,"skip":true},{"id":700,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617852546,"skip":true},{"id":701,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617852548,"skip":true},{"id":702,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617852555,"skip":true},{"id":703,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617852559,"skip":true},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":704,"created_at":1617852565,"hex":"G4","tile":"619-1","rotation":3},{"type":"pass","entity":"CR","entity_type":"corporation","id":705,"created_at":1617852573},{"type":"choose","entity":"CR","entity_type":"corporation","id":706,"created_at":1617852580,"choice":"0"},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":707,"created_at":1617852588,"routes":[{"train":"4-2","connections":[["F7","G8","G10","H11","G12"],["E6","F7"],["F5","E6"],["G4","F5"],["H5","G4"]],"hexes":["G12","F7","E6","F5","G4","H5"],"revenue":210,"revenue_str":"G12-F7-E6-F5-G4-H5 (£30)"}]},{"type":"dividend","entity":"CR","entity_type":"corporation","id":708,"created_at":1617852590,"kind":"half"},{"type":"pass","entity":"CR","entity_type":"corporation","id":709,"created_at":1617852594},{"type":"pass","entity":"CR","entity_type":"corporation","id":710,"created_at":1617852597},{"type":"pass","entity":"CR","entity_type":"corporation","id":711,"created_at":1617852600},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":712,"created_at":1617852609},{"type":"lay_tile","entity":"LBSCR","entity_type":"corporation","id":713,"created_at":1617852623,"hex":"M42","tile":"X10-0","rotation":3},{"type":"run_routes","entity":"LBSCR","entity_type":"corporation","id":714,"created_at":1617852798,"routes":[{"train":"3-7","connections":[["M38","M40","M42"]],"hexes":["M42","M38"],"revenue":180,"revenue_str":"M42-M38 (£50)"},{"train":"4-4","connections":[["J41","K40","L39","M38"],["K42","J41"],["M42","L41","K42"]],"hexes":["M38","J41","K42","M42"],"revenue":200,"revenue_str":"M38-J41-K42-M42"}]},{"type":"dividend","entity":"LBSCR","entity_type":"corporation","id":715,"created_at":1617852801,"kind":"payout"},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":716,"created_at":1617852808},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":717,"created_at":1617852811},{"type":"acquire_company","entity":"LNWR","entity_type":"corporation","id":718,"created_at":1617852832,"company":"P1"},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":719,"created_at":1617852835},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":720,"created_at":1617852848,"hex":"K32","tile":"9-1","rotation":0},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":721,"created_at":1617852868,"hex":"K34","tile":"8-2","rotation":3},{"type":"place_token","entity":"LNWR","entity_type":"corporation","id":722,"created_at":1617852881,"city":"15-3-0","slot":1},{"type":"run_routes","entity":"LNWR","entity_type":"corporation","id":723,"created_at":1617852986,"routes":[{"train":"2P-1","connections":[["I22","H23"]],"hexes":["I22","H23"],"revenue":80,"revenue_str":"I22-H23"},{"train":"3-8","connections":[["J29","I30"],["K30","J29"]],"hexes":["I30","J29","K30"],"revenue":110,"revenue_str":"I30-J29-K30"},{"train":"5P-0","connections":[["M36","M38"],["J41","K40","L39","L37","L35","M36"],["I42","J41"],["G36","G38","G40","H41","I42"]],"hexes":["M38","M36","J41","I42","G36"],"revenue":180,"revenue_str":"M38-M36-J41-I42-G36"}]},{"type":"dividend","entity":"LNWR","entity_type":"corporation","id":724,"created_at":1617852996,"kind":"payout"},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":725,"created_at":1617853078},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":726,"created_at":1617853083},{"id":727,"type":"acquire_company","entity":"LYR","company":"P14","entity_type":"corporation","user":488,"created_at":1617853095,"skip":true},{"id":728,"type":"pass","entity":"LYR","entity_type":"corporation","user":488,"created_at":1617853097,"skip":true},{"id":729,"hex":"I22","tile":"X7-0","type":"lay_tile","entity":"LYR","rotation":0,"entity_type":"corporation","user":488,"created_at":1617853109,"skip":true},{"id":730,"type":"undo","entity":"LYR","action_id":726,"entity_type":"corporation","user":488,"created_at":1617853127,"skip":true},{"type":"acquire_company","entity":"LYR","entity_type":"corporation","id":731,"created_at":1617853135,"company":"P14"},{"type":"pass","entity":"LYR","entity_type":"corporation","id":732,"created_at":1617853141},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":733,"created_at":1617853168,"hex":"I22","tile":"X7-0","rotation":0},{"type":"choose","entity":"LYR","entity_type":"corporation","id":734,"created_at":1617853177,"choice":"1"},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":735,"created_at":1617853207,"routes":[{"train":"3-5","connections":[["H23","I22"],["G22","H23"]],"hexes":["I22","H23","G22"],"revenue":130,"revenue_str":"I22-H23-G22"},{"train":"4-5","connections":[["G34","F35"],["G32","G34"],["H25","H27","I28","H29","H31","G32"],["H23","H25"],["H21","H23"],["G22","H21"],["G20","G22"],["H21","G20"],["I22","H21"]],"hexes":["F35","G34","G32","H25","H23","H21","G22","G20","H21","I22"],"revenue":280,"revenue_str":"F35-G34-G32-H25-H23-H21-G22-G20-H21-I22 (£60)"}]},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":736,"created_at":1617853209,"kind":"payout"},{"type":"pass","entity":"LYR","entity_type":"corporation","id":737,"created_at":1617853214},{"type":"pass","entity":"NBR","entity_type":"corporation","id":738,"created_at":1617853245},{"type":"lay_tile","entity":"NBR","entity_type":"corporation","id":739,"created_at":1617853249,"hex":"E8","tile":"7-2","rotation":3},{"type":"lay_tile","entity":"NBR","entity_type":"corporation","id":740,"created_at":1617853268,"hex":"H13","tile":"58-5","rotation":0},{"type":"hex_token","entity":"NBR","entity_type":"corporation","id":741,"created_at":1617853274,"hex":"H1","token_type":"destination"},{"type":"pass","entity":"NBR","entity_type":"corporation","id":742,"created_at":1617853277},{"type":"buy_train","entity":"NBR","entity_type":"corporation","id":743,"created_at":1617853281,"train":"5-2","price":500,"variant":"5"},{"type":"pass","entity":"8","entity_type":"corporation","id":744,"created_at":1617853289},{"type":"lay_tile","entity":"8","entity_type":"corporation","id":745,"created_at":1617853298,"hex":"K26","tile":"82-0","rotation":3},{"type":"run_routes","entity":"8","entity_type":"corporation","id":746,"created_at":1617853312,"routes":[{"train":"3-4","connections":[["K28","J29"],["K24","K26","K28"]],"hexes":["J29","K28","K24"],"revenue":70,"revenue_str":"J29-K28-K24"}]},{"type":"pass","entity":"1","entity_type":"corporation","id":747,"created_at":1617853329},{"type":"lay_tile","entity":"1","entity_type":"corporation","id":748,"created_at":1617853363,"hex":"G6","tile":"83-7","rotation":4},{"type":"run_routes","entity":"1","entity_type":"corporation","id":749,"created_at":1617853374,"routes":[{"train":"3-3","connections":[["G4","H5"],["H1","G2","G4"]],"hexes":["H5","G4","H1"],"revenue":120,"revenue_str":"H5-G4-H1"}]},{"type":"pass","entity":"GWR","entity_type":"corporation","id":750,"created_at":1617853379},{"type":"lay_tile","entity":"GWR","entity_type":"corporation","id":751,"created_at":1617853401,"hex":"L35","tile":"544-0","rotation":2},{"type":"run_routes","entity":"GWR","entity_type":"corporation","id":752,"created_at":1617853494,"routes":[{"train":"2P-0","connections":[["I30","H29","I28","J29"]],"hexes":["I30","J29"],"revenue":80,"revenue_str":"I30-J29"},{"train":"4-0","connections":[["I42","H41","G40","G38","G36"],["J41","I42"],["M38","L39","K40","J41"]],"hexes":["G36","I42","J41","M38"],"revenue":200,"revenue_str":"G36-I42-J41-M38 (£30)"},{"train":"4-1","connections":[["M36","M38"],["L33","L35","M36"],["K30","L31","L33"]],"hexes":["M38","M36","L33","K30"],"revenue":150,"revenue_str":"M38-M36-L33-K30"}]},{"type":"dividend","entity":"GWR","entity_type":"corporation","id":753,"created_at":1617853505,"kind":"payout"},{"type":"pass","entity":"MR","entity_type":"corporation","id":754,"created_at":1617853566},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":755,"created_at":1617853584,"hex":"I30","tile":"X7-1","rotation":0},{"type":"pass","entity":"MR","entity_type":"corporation","id":756,"created_at":1617853612},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":757,"created_at":1617853636,"routes":[{"train":"4-3","connections":[["K42","L41","M42"],["J41","K42"],["M38","L37","L39","K40","J41"]],"hexes":["M42","K42","J41","M38"],"revenue":200,"revenue_str":"M42-K42-J41-M38"},{"train":"5-1","connections":[["I30","I32","I34","H35","G36"],["J29","I30"],["K30","J29"],["L33","L35","K34","K32","K30"]],"hexes":["G36","I30","J29","K30","L33"],"revenue":180,"revenue_str":"G36-I30-J29-K30-L33"}]},{"type":"dividend","entity":"MR","entity_type":"corporation","id":758,"created_at":1617853638,"kind":"payout"},{"type":"pass","entity":"MR","entity_type":"corporation","id":759,"created_at":1617853649},{"type":"acquire_company","entity":"LBSCR","entity_type":"corporation","id":760,"created_at":1617853677,"company":"P2"},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":761,"created_at":1617853682},{"id":762,"hex":"J31","tile":"80-1","type":"lay_tile","entity":"P2","rotation":2,"entity_type":"company","user":3714,"created_at":1617853709,"skip":true},{"id":763,"type":"undo","entity":"LBSCR","entity_type":"corporation","user":3714,"created_at":1617853792,"skip":true},{"type":"lay_tile","entity":"LBSCR","entity_type":"corporation","id":764,"created_at":1617853813,"hex":"J29","tile":"63-0","rotation":0},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":765,"created_at":1617853826},{"type":"run_routes","entity":"LBSCR","entity_type":"corporation","id":766,"created_at":1617853855,"routes":[{"train":"3-7","connections":[["M42","L41","K42"],["M38","M40","M42"]],"hexes":["K42","M42","M38"],"revenue":220,"revenue_str":"K42-M42-M38 (£50)"},{"train":"4-4","connections":[["I30","I32","I34","H35","G36"],["J29","I30"],["K30","J29"]],"hexes":["G36","I30","J29","K30"],"revenue":160,"revenue_str":"G36-I30-J29-K30"}]},{"type":"dividend","entity":"LBSCR","entity_type":"corporation","id":767,"created_at":1617853863,"kind":"payout"},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":768,"created_at":1617853865},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":769,"created_at":1617853867},{"type":"acquire_company","entity":"CR","entity_type":"corporation","id":770,"created_at":1617853882,"company":"P10"},{"id":771,"type":"pass","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617853890,"skip":true},{"id":772,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617853958,"skip":true},{"type":"pass","entity":"CR","entity_type":"corporation","id":773,"created_at":1617853961},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":774,"created_at":1617853994,"hex":"G4","tile":"611-0","rotation":5},{"type":"pass","entity":"CR","entity_type":"corporation","id":775,"created_at":1617853996},{"type":"pass","entity":"CR","entity_type":"corporation","id":776,"created_at":1617854002},{"type":"choose","entity":"CR","entity_type":"corporation","id":777,"created_at":1617854012,"choice":"0"},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":778,"created_at":1617854048,"routes":[{"train":"4-2","connections":[["F7","G8","G10","H11","G12"],["E6","F7"],["F5","E6"],["G4","F5"],["H5","G4"],["F7","G6","H5"]],"hexes":["G12","F7","E6","F5","G4","H5","F7"],"revenue":230,"revenue_str":"G12-F7-E6-F5-G4-H5-F7 (£30)"}]},{"id":779,"kind":"payout","type":"dividend","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617854051,"skip":true},{"id":780,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617854058,"skip":true},{"id":781,"kind":"half","type":"dividend","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617854061,"skip":true},{"id":782,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617854066,"skip":true},{"id":783,"kind":"half","type":"dividend","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617854067,"skip":true},{"id":784,"type":"pass","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617854075,"skip":true},{"id":785,"type":"merge","entity":"CR","corporation":"1","entity_type":"corporation","user":3714,"created_at":1617854079,"skip":true},{"id":786,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617854094,"skip":true},{"id":787,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617854098,"skip":true},{"id":788,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617854102,"skip":true},{"type":"dividend","entity":"CR","entity_type":"corporation","id":789,"created_at":1617854103,"kind":"payout"},{"type":"pass","entity":"CR","entity_type":"corporation","id":790,"created_at":1617854106},{"type":"merge","entity":"CR","entity_type":"corporation","id":791,"created_at":1617854107,"corporation":"1"},{"type":"choose","entity":"CR","entity_type":"corporation","id":792,"created_at":1617854109,"choice":"two_shares"},{"type":"choose","entity":"CR","entity_type":"corporation","id":793,"created_at":1617854114,"choice":"replace"},{"type":"pass","entity":"CR","entity_type":"corporation","id":794,"created_at":1617854117},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":795,"created_at":1617854124},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":796,"created_at":1617854256,"hex":"K34","tile":"80-1","rotation":3},{"type":"run_routes","entity":"LNWR","entity_type":"corporation","id":797,"created_at":1617854286,"routes":[{"train":"2P-1","connections":[["I22","H23"]],"hexes":["I22","H23"],"revenue":90,"revenue_str":"I22-H23"},{"train":"3-8","connections":[["J29","I30"],["K30","J29"]],"hexes":["I30","J29","K30"],"revenue":130,"revenue_str":"I30-J29-K30"},{"train":"5P-0","connections":[["M36","M38"],["J41","K40","L39","L37","L35","M36"],["I42","J41"],["G36","G38","G40","H41","I42"]],"hexes":["M38","M36","J41","I42","G36"],"revenue":180,"revenue_str":"M38-M36-J41-I42-G36"}]},{"type":"dividend","entity":"LNWR","entity_type":"corporation","id":798,"created_at":1617854295,"kind":"payout"},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":799,"created_at":1617854304},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":800,"created_at":1617854307},{"type":"acquire_company","entity":"LYR","entity_type":"corporation","id":801,"created_at":1617854316,"company":"P5"},{"type":"acquire_company","entity":"LYR","entity_type":"corporation","id":802,"created_at":1617854320,"company":"P15"},{"type":"pass","entity":"LYR","entity_type":"corporation","id":803,"created_at":1617854322},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":804,"created_at":1617854338,"hex":"G22","tile":"X5-0","rotation":2},{"type":"place_token","entity":"LYR","entity_type":"corporation","id":805,"created_at":1617854349,"city":"X7-1-0","slot":3},{"type":"choose","entity":"LYR","entity_type":"corporation","id":806,"created_at":1617854356,"choice":"1"},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":807,"created_at":1617854363,"routes":[{"train":"3-5","connections":[["H23","I22"],["G22","H23"]],"hexes":["I22","H23","G22"],"revenue":140,"revenue_str":"I22-H23-G22"},{"train":"4-5","connections":[["G34","F35"],["G32","G34"],["H25","H27","I28","H29","H31","G32"],["H23","H25"],["H21","H23"],["G22","H21"],["G20","G22"],["H21","G20"],["I22","H21"]],"hexes":["F35","G34","G32","H25","H23","H21","G22","G20","H21","I22"],"revenue":290,"revenue_str":"F35-G34-G32-H25-H23-H21-G22-G20-H21-I22 (£60)"}]},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":808,"created_at":1617854365,"kind":"payout"},{"type":"merge","entity":"LYR","entity_type":"corporation","id":809,"created_at":1617854368,"corporation":"8"},{"type":"choose","entity":"LYR","entity_type":"corporation","id":810,"created_at":1617854371,"choice":"two_shares"},{"type":"choose","entity":"LYR","entity_type":"corporation","id":811,"created_at":1617854377,"choice":"replace"},{"type":"discard_train","entity":"LYR","entity_type":"corporation","id":812,"created_at":1617854379,"train":"3-4"},{"type":"pass","entity":"NBR","entity_type":"corporation","id":813,"created_at":1617854386},{"type":"pass","entity":"NBR","entity_type":"corporation","id":814,"created_at":1617854468},{"type":"run_routes","entity":"NBR","entity_type":"corporation","id":815,"created_at":1617854478,"routes":[{"train":"5-2","connections":[["F7","E8","E6"],["H5","G6","F7"],["G4","H5"],["H1","G2","G4"]],"hexes":["E6","F7","H5","G4","H1"],"revenue":250,"revenue_str":"E6-F7-H5-G4-H1 (£50)"}]},{"type":"dividend","entity":"NBR","entity_type":"corporation","id":816,"created_at":1617854480,"kind":"payout"},{"type":"pass","entity":"NBR","entity_type":"corporation","id":817,"created_at":1617854484},{"type":"pass","entity":"NBR","entity_type":"corporation","id":818,"created_at":1617854485},{"type":"buy_shares","entity":3714,"entity_type":"player","id":819,"created_at":1617854519,"shares":["LBSCR_4"],"percent":10},{"type":"buy_shares","entity":4035,"entity_type":"player","id":820,"created_at":1617854586,"shares":["CR_7"],"percent":10},{"type":"buy_shares","entity":488,"entity_type":"player","id":821,"created_at":1617862170,"shares":["LNWR_7"],"percent":10},{"type":"choose_ability","entity":"P16","entity_type":"company","id":822,"created_at":1617888314,"choice":"CR_ipo"},{"type":"buy_shares","entity":4035,"entity_type":"player","id":823,"created_at":1617907567,"shares":["LBSCR_5"],"percent":10},{"type":"bid","entity":488,"entity_type":"player","id":824,"created_at":1617907773,"company":"M7","price":1640},{"type":"program_share_pass","entity":488,"entity_type":"player","id":825,"created_at":1617907792,"auto_actions":[{"type":"pass","entity":488,"entity_type":"player","created_at":1617907793}]},{"type":"message","entity":488,"entity_type":"player","id":826,"created_at":1617907812,"message":"I am on AP."},{"type":"buy_shares","entity":3714,"entity_type":"player","id":827,"created_at":1617922654,"shares":["LBSCR_6"],"percent":10},{"type":"buy_shares","entity":4035,"entity_type":"player","id":828,"created_at":1617928876,"auto_actions":[{"type":"pass","entity":488,"entity_type":"player","created_at":1617928874}],"shares":["LBSCR_7"],"percent":10},{"type":"buy_shares","entity":3714,"entity_type":"player","id":829,"created_at":1617929827,"shares":["NBR_4"],"percent":10},{"type":"buy_shares","entity":4035,"entity_type":"player","id":830,"created_at":1617930268,"auto_actions":[{"type":"pass","entity":488,"entity_type":"player","created_at":1617930266}],"shares":["NBR_5"],"percent":10},{"type":"pass","entity":3714,"entity_type":"player","id":831,"created_at":1617931846},{"type":"buy_shares","entity":4035,"entity_type":"player","id":832,"created_at":1617931861,"auto_actions":[{"type":"pass","entity":488,"entity_type":"player","created_at":1617931859}],"shares":["NBR_6"],"percent":10},{"type":"pass","entity":3714,"entity_type":"player","id":833,"created_at":1617931866},{"type":"buy_shares","entity":4035,"entity_type":"player","id":834,"created_at":1617931875,"auto_actions":[{"type":"pass","entity":488,"entity_type":"player","created_at":1617931873}],"shares":["NBR_7"],"percent":10},{"type":"pass","entity":3714,"entity_type":"player","id":835,"created_at":1617931877},{"type":"buy_shares","entity":4035,"entity_type":"player","id":836,"created_at":1617931890,"auto_actions":[{"type":"pass","entity":488,"entity_type":"player","created_at":1617931888}],"shares":["NBR_8"],"percent":10},{"type":"pass","entity":3714,"entity_type":"player","id":837,"created_at":1617931892},{"type":"pass","entity":4035,"entity_type":"player","id":838,"created_at":1617931902},{"type":"pass","entity":"7","entity_type":"corporation","id":839,"created_at":1617932042},{"type":"lay_tile","entity":"7","entity_type":"corporation","id":840,"created_at":1617932063,"hex":"K24","tile":"14-2","rotation":2},{"type":"buy_train","entity":"7","entity_type":"corporation","id":841,"created_at":1617932070,"train":"6-1","price":600,"variant":"6"},{"type":"pass","entity":"GWR","entity_type":"corporation","id":842,"created_at":1617932083},{"type":"lay_tile","entity":"GWR","entity_type":"corporation","id":843,"created_at":1617932132,"hex":"K34","tile":"546-0","rotation":1},{"type":"run_routes","entity":"GWR","entity_type":"corporation","id":844,"created_at":1617932213,"routes":[{"train":"2P-0","connections":[["I30","H29","I28","J29"]],"hexes":["I30","J29"],"revenue":100,"revenue_str":"I30-J29"},{"train":"4-0","connections":[["I42","H41","G40","G38","G36"],["J41","I42"],["M38","L39","K40","J41"]],"hexes":["G36","I42","J41","M38"],"revenue":200,"revenue_str":"G36-I42-J41-M38 (£30)"},{"train":"4-1","connections":[["J29","K30"],["I30","J29"],["G36","H35","I34","I32","I30"]],"hexes":["K30","J29","I30","G36"],"revenue":160,"revenue_str":"K30-J29-I30-G36"}]},{"type":"dividend","entity":"GWR","entity_type":"corporation","id":845,"created_at":1617932226,"kind":"payout"},{"type":"pass","entity":"MR","entity_type":"corporation","id":846,"created_at":1617932558},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":847,"created_at":1617932568,"hex":"L21","tile":"9-10","rotation":0},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":848,"created_at":1617932573,"hex":"L19","tile":"5-4","rotation":0},{"type":"hex_token","entity":"MR","entity_type":"corporation","id":849,"created_at":1617932581,"hex":"L19","token_type":"destination"},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":850,"created_at":1617932617,"routes":[{"train":"4-3","connections":[["K42","L41","M42"],["J41","K42"],["M38","L37","L39","K40","J41"]],"hexes":["M42","K42","J41","M38"],"revenue":200,"revenue_str":"M42-K42-J41-M38"},{"train":"5-1","connections":[["I30","I32","I34","H35","G36"],["J29","I30"],["K30","J29"],["L33","L35","K34","K32","K30"]],"hexes":["G36","I30","J29","K30","L33"],"revenue":190,"revenue_str":"G36-I30-J29-K30-L33"}]},{"type":"dividend","entity":"MR","entity_type":"corporation","id":851,"created_at":1617932628,"kind":"payout"},{"type":"pass","entity":"MR","entity_type":"corporation","id":852,"created_at":1617932637},{"type":"message","entity":4035,"entity_type":"player","id":853,"created_at":1617932669,"message":"hi guys.....i'm finishing a movie with the kids....will check back before bed"},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":854,"created_at":1617934571},{"id":855,"hex":"G36","tile":"207-0","type":"lay_tile","entity":"LBSCR","rotation":4,"entity_type":"corporation","user":3714,"created_at":1617935107,"skip":true},{"id":856,"type":"undo","entity":"LBSCR","entity_type":"corporation","user":3714,"created_at":1617935150,"skip":true},{"type":"lay_tile","entity":"LBSCR","entity_type":"corporation","id":857,"created_at":1617935186,"hex":"K42","tile":"X10-1","rotation":3},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":858,"created_at":1617935199},{"type":"run_routes","entity":"LBSCR","entity_type":"corporation","id":859,"created_at":1617935231,"routes":[{"train":"4-4","connections":[["K42","J41"],["M42","L41","K42"],["M38","M40","M42"]],"hexes":["J41","K42","M42","M38"],"revenue":260,"revenue_str":"J41-K42-M42-M38 (£50)"}]},{"type":"dividend","entity":"LBSCR","entity_type":"corporation","id":860,"created_at":1617935234,"kind":"payout"},{"type":"buy_train","entity":"LBSCR","entity_type":"corporation","id":861,"created_at":1617935241,"train":"6-2","price":600,"variant":"6"},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":862,"created_at":1617935262},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":863,"created_at":1617935266},{"type":"pass","entity":"LYR","entity_type":"corporation","id":864,"created_at":1617935655},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":865,"created_at":1617935681,"hex":"H23","tile":"63-1","rotation":0},{"type":"pass","entity":"LYR","entity_type":"corporation","id":866,"created_at":1617935690},{"type":"choose","entity":"LYR","entity_type":"corporation","id":867,"created_at":1617935696,"choice":"0"},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":868,"created_at":1617935736,"routes":[{"train":"4-5","connections":[["I30","J31"],["H25","H27","I28","H29","I30"],["H23","H25"],["H21","H23"],["G22","H21"],["G20","G22"],["H21","G20"],["I22","H21"]],"hexes":["J31","I30","H25","H23","H21","G22","G20","H21","I22"],"revenue":320,"revenue_str":"J31-I30-H25-H23-H21-G22-G20-H21-I22 (£60)"}]},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":869,"created_at":1617935739,"kind":"payout"},{"type":"buy_train","entity":"LYR","entity_type":"corporation","id":870,"created_at":1617935756,"train":"6-1","price":1},{"type":"pass","entity":"LYR","entity_type":"corporation","id":871,"created_at":1617935765},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":872,"created_at":1617938984},{"id":873,"hex":"J31","tile":"144-0","type":"lay_tile","entity":"LNWR","rotation":0,"entity_type":"corporation","user":4035,"created_at":1617939038,"skip":true},{"id":874,"type":"run_routes","entity":"LNWR","routes":[{"hexes":["I22","H23"],"train":"2P-1","revenue":100,"connections":[["I22","H23"]],"revenue_str":"I22-H23"},{"hexes":["M38","M36","K30","J29","I30"],"train":"5P-0","revenue":220,"connections":[["M36","M38"],["K30","K32","K34","L35","M36"],["J29","K30"],["I30","H29","I28","J29"]],"revenue_str":"M38-M36-K30-J29-I30"}],"entity_type":"corporation","user":4035,"created_at":1617939417,"skip":true},{"id":875,"type":"undo","entity":"LNWR","entity_type":"corporation","user":4035,"created_at":1617939470,"skip":true},{"id":876,"type":"undo","entity":"LNWR","entity_type":"corporation","user":4035,"created_at":1617939507,"skip":true},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":877,"created_at":1617939519,"hex":"K30","tile":"63-2","rotation":0},{"type":"run_routes","entity":"LNWR","entity_type":"corporation","id":878,"created_at":1617939572,"routes":[{"train":"2P-1","connections":[["I22","H23"]],"hexes":["I22","H23"],"revenue":100,"revenue_str":"I22-H23"},{"train":"5P-0","connections":[["M36","M38"],["K30","K32","K34","L35","M36"],["J29","K30"],["I30","H29","I28","J29"]],"hexes":["M38","M36","K30","J29","I30"],"revenue":230,"revenue_str":"M38-M36-K30-J29-I30"}]},{"type":"dividend","entity":"LNWR","entity_type":"corporation","id":879,"created_at":1617939578,"kind":"payout"},{"type":"buy_train","entity":"LNWR","entity_type":"corporation","id":880,"created_at":1617939646,"train":"4-0","price":1032},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":881,"created_at":1617939667},{"type":"pass","entity":"CR","entity_type":"corporation","id":882,"created_at":1617940855},{"type":"lay_tile","entity":"P10","entity_type":"company","id":883,"created_at":1617940876,"hex":"H5","tile":"X5-1","rotation":5},{"type":"pass","entity":"CR","entity_type":"corporation","id":884,"created_at":1617940923},{"id":885,"type":"pass","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617940937,"skip":true},{"id":886,"type":"choose","choice":"0","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617940940,"skip":true},{"id":887,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617940972,"skip":true},{"id":888,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617940975,"skip":true},{"id":889,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617940979,"skip":true},{"id":890,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617940986,"skip":true},{"id":891,"type":"redo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617940993,"skip":true},{"id":892,"type":"redo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617940996,"skip":true},{"id":893,"type":"redo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617941000,"skip":true},{"id":894,"type":"choose","choice":"0","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617941003,"skip":true},{"id":895,"type":"run_routes","entity":"CR","routes":[{"hexes":["G12","F7","E6","F5","G4","H5","F7"],"train":"4-2","revenue":240,"connections":[["F7","G8","G10","H11","G12"],["E6","F7"],["F5","E6"],["G4","F5"],["H5","G4"],["F7","G6","H5"]],"revenue_str":"G12-F7-E6-F5-G4-H5-F7 (£30)"}],"entity_type":"corporation","user":3714,"created_at":1617941008,"skip":true},{"id":896,"kind":"payout","type":"dividend","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617941011,"skip":true},{"id":897,"type":"buy_train","price":1000,"train":"7-0","entity":"CR","variant":"E","entity_type":"corporation","user":3714,"created_at":1617941089,"skip":true},{"id":898,"type":"pass","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617941092,"skip":true},{"id":899,"type":"undo","entity":"NBR","entity_type":"corporation","user":3714,"created_at":1617941111,"skip":true},{"id":900,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617941117,"skip":true},{"id":901,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617941221,"skip":true},{"id":902,"kind":"half","type":"dividend","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617941225,"skip":true},{"id":903,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617941262,"skip":true},{"id":904,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617941268,"skip":true},{"id":905,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617941272,"skip":true},{"id":906,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617941275,"skip":true},{"type":"place_token","entity":"CR","entity_type":"corporation","id":907,"created_at":1617941277,"city":"X5-1-0","slot":2},{"type":"choose","entity":"CR","entity_type":"corporation","id":908,"created_at":1617941280,"choice":"0"},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":909,"created_at":1617941331,"routes":[{"train":"4-2","connections":[["G12","H13"],["F7","G8","G10","H11","G12"],["E6","F7"],["F5","E6"],["G4","F5"],["H5","G4"],["F7","G6","H5"]],"hexes":["H13","G12","F7","E6","F5","G4","H5","F7"],"revenue":250,"revenue_str":"H13-G12-F7-E6-F5-G4-H5-F7 (£30)"}]},{"type":"dividend","entity":"CR","entity_type":"corporation","id":910,"created_at":1617941344,"kind":"half"},{"type":"buy_train","entity":"CR","entity_type":"corporation","id":911,"created_at":1617941367,"train":"7-0","price":1000,"variant":"E"},{"id":912,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617941379,"skip":true},{"id":913,"type":"redo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617941403,"skip":true},{"type":"pass","entity":"CR","entity_type":"corporation","id":914,"created_at":1617941420},{"type":"pass","entity":"NBR","entity_type":"corporation","id":915,"created_at":1617941432},{"type":"lay_tile","entity":"NBR","entity_type":"corporation","id":916,"created_at":1617941513,"hex":"H5","tile":"X11-0","rotation":5},{"type":"pass","entity":"NBR","entity_type":"corporation","id":917,"created_at":1617941526},{"type":"run_routes","entity":"NBR","entity_type":"corporation","id":918,"created_at":1617941534,"routes":[{"train":"5-2","connections":[["F7","E8","E6"],["H5","G6","F7"],["G4","H5"],["H1","G2","G4"]],"hexes":["E6","F7","H5","G4","H1"],"revenue":300,"revenue_str":"E6-F7-H5-G4-H1 (£60)"}]},{"type":"dividend","entity":"NBR","entity_type":"corporation","id":919,"created_at":1617941560,"kind":"half"},{"type":"buy_train","entity":"NBR","entity_type":"corporation","id":920,"created_at":1617941565,"train":"7-1","price":750,"variant":"7"},{"type":"pass","entity":"7","entity_type":"corporation","id":921,"created_at":1617949083},{"type":"lay_tile","entity":"7","entity_type":"corporation","id":922,"created_at":1617949097,"hex":"L19","tile":"15-4","rotation":0},{"type":"buy_train","entity":"7","entity_type":"corporation","id":923,"created_at":1617949120,"train":"7-2","price":1000,"variant":"E"},{"type":"pass","entity":"GWR","entity_type":"corporation","id":924,"created_at":1617963657},{"type":"lay_tile","entity":"GWR","entity_type":"corporation","id":925,"created_at":1617963824,"hex":"J35","tile":"7-0","rotation":3},{"type":"lay_tile","entity":"GWR","entity_type":"corporation","id":926,"created_at":1617963918,"hex":"J33","tile":"9-11","rotation":0},{"type":"run_routes","entity":"GWR","entity_type":"corporation","id":927,"created_at":1617964027,"routes":[{"train":"2P-0","connections":[["J41","K40","L39","M38"]],"hexes":["M38","J41"],"revenue":110,"revenue_str":"M38-J41"}]},{"type":"dividend","entity":"GWR","entity_type":"corporation","id":928,"created_at":1617964036,"kind":"payout"},{"type":"buy_train","entity":"GWR","entity_type":"corporation","id":929,"created_at":1617964042,"train":"7-3","price":1000,"variant":"E"},{"type":"pass","entity":"GWR","entity_type":"corporation","id":930,"created_at":1617964052},{"type":"pass","entity":"MR","entity_type":"corporation","id":931,"created_at":1617975605},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":932,"created_at":1617975627,"hex":"I30","tile":"X13-0","rotation":0},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":933,"created_at":1617975743,"routes":[{"train":"5-1","connections":[["J29","I30"],["K30","J29"],["L33","L31","K30"],["M38","L37","L35","K34","L33"]],"hexes":["I30","J29","K30","L33","M38"],"revenue":270,"revenue_str":"I30-J29-K30-L33-M38"}]},{"type":"dividend","entity":"MR","entity_type":"corporation","id":934,"created_at":1617975749,"kind":"half"},{"type":"buy_train","entity":"MR","entity_type":"corporation","id":935,"created_at":1617975752,"train":"7-4","price":1000,"variant":"E"},{"type":"acquire_company","entity":"LBSCR","entity_type":"corporation","id":936,"created_at":1617976485,"company":"P18"},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":937,"created_at":1617976496},{"type":"choose_ability","entity":"P18","entity_type":"company","id":938,"created_at":1617976507,"choice":"exchange"},{"id":939,"hex":"N41","tile":"8-12","type":"lay_tile","entity":"LBSCR","rotation":5,"entity_type":"corporation","user":3714,"created_at":1617976540,"skip":true},{"id":940,"hex":"O42","tile":"4-2","type":"lay_tile","entity":"LBSCR","rotation":2,"entity_type":"corporation","user":3714,"created_at":1617976545,"skip":true},{"id":941,"type":"undo","entity":"LBSCR","entity_type":"corporation","user":3714,"created_at":1617976637,"skip":true},{"id":942,"type":"undo","entity":"LBSCR","entity_type":"corporation","user":3714,"created_at":1617976642,"skip":true},{"type":"lay_tile","entity":"LBSCR","entity_type":"corporation","id":943,"created_at":1617976693,"hex":"K18","tile":"9-0","rotation":2},{"type":"lay_tile","entity":"LBSCR","entity_type":"corporation","id":944,"created_at":1617976697,"hex":"J17","tile":"9-3","rotation":2},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":945,"created_at":1617976746},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":946,"created_at":1617976751},{"type":"run_routes","entity":"LBSCR","entity_type":"corporation","id":947,"created_at":1617976796,"routes":[{"train":"6-2","connections":[["I42","H41","G40","G38","G36"],["J41","I42"],["K42","J41"],["M42","L41","K42"],["M38","M40","M42"]],"hexes":["G36","I42","J41","K42","M42","M38"],"revenue":320,"revenue_str":"G36-I42-J41-K42-M42-M38 (£50)"}]},{"type":"dividend","entity":"LBSCR","entity_type":"corporation","id":948,"created_at":1617976804,"kind":"payout"},{"type":"buy_train","entity":"LBSCR","entity_type":"corporation","id":949,"created_at":1617976810,"train":"7-5","price":1000,"variant":"E"},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":950,"created_at":1617976812},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":951,"created_at":1617976815},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":952,"created_at":1617976944},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":953,"created_at":1617977012,"hex":"K26","tile":"545-0","rotation":3},{"type":"run_routes","entity":"LNWR","entity_type":"corporation","id":954,"created_at":1617977110,"routes":[{"train":"2P-1","connections":[["I22","H23"]],"hexes":["I22","H23"],"revenue":100,"revenue_str":"I22-H23"},{"train":"5P-0","connections":[["M36","M38"],["K30","K32","K34","L35","M36"],["J29","K30"],["I30","H29","I28","J29"]],"hexes":["M38","M36","K30","J29","I30"],"revenue":250,"revenue_str":"M38-M36-K30-J29-I30"}]},{"type":"dividend","entity":"LNWR","entity_type":"corporation","id":955,"created_at":1617977119,"kind":"payout"},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":956,"created_at":1617977141},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":957,"created_at":1617977189},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":958,"created_at":1617977192},{"type":"pass","entity":"LYR","entity_type":"corporation","id":959,"created_at":1617977424},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":960,"created_at":1617977454,"hex":"I22","tile":"X13-1","rotation":0},{"type":"pass","entity":"LYR","entity_type":"corporation","id":961,"created_at":1617977489},{"type":"choose","entity":"LYR","entity_type":"corporation","id":962,"created_at":1617977492,"choice":"0"},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":963,"created_at":1617977528,"routes":[{"train":"6-1","connections":[["J29","K30"],["I30","J29"],["H25","H27","I28","H29","I30"],["H23","H25"],["H21","H23"],["G22","H21"],["G20","G22"],["H21","G20"],["I22","H21"]],"hexes":["K30","J29","I30","H25","H23","H21","G22","G20","H21","I22"],"revenue":450,"revenue_str":"K30-J29-I30-H25-H23-H21-G22-G20-H21-I22 (£80)"}]},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":964,"created_at":1617977530,"kind":"payout"},{"type":"pass","entity":"LYR","entity_type":"corporation","id":965,"created_at":1617977536},{"type":"merge","entity":"LYR","entity_type":"corporation","id":966,"created_at":1617977556,"corporation":"7"},{"type":"choose","entity":"LYR","entity_type":"corporation","id":967,"created_at":1617977562,"choice":"money"},{"type":"choose","entity":"LYR","entity_type":"corporation","id":968,"created_at":1617977565,"choice":"replace"},{"type":"acquire_company","entity":"CR","entity_type":"corporation","id":969,"created_at":1617979181,"company":"P8"},{"type":"pass","entity":"CR","entity_type":"corporation","id":970,"created_at":1617979184},{"id":971,"type":"choose","choice":"token","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617979193,"skip":true},{"id":972,"hex":"H15","tile":"8-12","type":"lay_tile","entity":"CR","rotation":3,"entity_type":"corporation","user":3714,"created_at":1617979209,"skip":true},{"id":973,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617979222,"skip":true},{"id":974,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617979225,"skip":true},{"type":"choose","entity":"CR","entity_type":"corporation","id":975,"created_at":1617979232,"choice":"token"},{"id":976,"hex":"H15","tile":"8-12","type":"lay_tile","entity":"CR","rotation":3,"entity_type":"corporation","user":3714,"created_at":1617979238,"skip":true},{"id":977,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617979248,"skip":true},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":978,"created_at":1617979282,"hex":"H15","tile":"8-12","rotation":3},{"type":"lay_tile","entity":"P8","entity_type":"company","id":979,"created_at":1617979288,"hex":"I16","tile":"9-12","rotation":2},{"type":"pass","entity":"CR","entity_type":"corporation","id":980,"created_at":1617979300},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":981,"created_at":1617979367,"routes":[{"train":"7-0","connections":[["G12","H13"],["F7","G8","G10","H11","G12"],["E6","F7"],["F7","E8","E6"],["H5","G6","F7"],["G4","H5"],["H1","G2","G4"]],"hexes":["H13","G12","F7","E6","F7","H5","G4","H1"],"revenue":500,"revenue_str":"H13-G12-F7-E6-F7-H5-G4-H1 (£60)"}]},{"type":"dividend","entity":"CR","entity_type":"corporation","id":982,"created_at":1617979375,"kind":"payout"},{"type":"pass","entity":"CR","entity_type":"corporation","id":983,"created_at":1617979379},{"type":"pass","entity":"NBR","entity_type":"corporation","id":984,"created_at":1617979392},{"id":985,"hex":"G4","tile":"X18-0","type":"lay_tile","entity":"NBR","rotation":5,"entity_type":"corporation","user":3714,"created_at":1617979420,"skip":true},{"id":986,"type":"undo","entity":"NBR","entity_type":"corporation","user":3714,"created_at":1617979462,"skip":true},{"type":"lay_tile","entity":"NBR","entity_type":"corporation","id":987,"created_at":1617979466,"hex":"H3","tile":"4-2","rotation":0},{"type":"pass","entity":"NBR","entity_type":"corporation","id":988,"created_at":1617979477},{"type":"run_routes","entity":"NBR","entity_type":"corporation","id":989,"created_at":1617979608,"routes":[{"train":"5-2","connections":[["E6","E4","E2"],["F5","E6"],["G4","F5"],["H1","G2","G4"]],"hexes":["E2","E6","F5","G4","H1"],"revenue":200,"revenue_str":"E2-E6-F5-G4-H1"},{"train":"7-1","connections":[["E6","F7"],["F7","E8","E6"],["G4","G6","F7"],["H5","G4"],["H3","H5"],["H1","H3"]],"hexes":["F7","E6","F7","G4","H5","H3","H1"],"revenue":320,"revenue_str":"F7-E6-F7-G4-H5-H3-H1 (£60)"}]},{"type":"dividend","entity":"NBR","entity_type":"corporation","id":990,"created_at":1617979615,"kind":"payout"},{"type":"buy_shares","entity":4035,"entity_type":"player","id":991,"created_at":1617979643,"shares":["LBSCR_8"],"percent":10},{"type":"buy_shares","entity":3714,"entity_type":"player","id":992,"created_at":1617979668,"shares":["LNWR_8"],"percent":10},{"type":"buy_shares","entity":488,"entity_type":"player","id":993,"created_at":1617979878,"shares":["LNWR_9"],"percent":10},{"type":"pass","entity":4035,"entity_type":"player","id":994,"created_at":1617979894},{"type":"program_share_pass","entity":488,"entity_type":"player","id":995,"created_at":1617979907},{"type":"pass","entity":3714,"entity_type":"player","id":996,"created_at":1617981322,"auto_actions":[{"type":"pass","entity":488,"entity_type":"player","created_at":1617981321}]},{"type":"pass","entity":"GWR","entity_type":"corporation","id":997,"created_at":1617981352},{"type":"lay_tile","entity":"GWR","entity_type":"corporation","id":998,"created_at":1617981371,"hex":"J31","tile":"144-0","rotation":0},{"type":"run_routes","entity":"GWR","entity_type":"corporation","id":999,"created_at":1617981461,"routes":[{"train":"2P-0","connections":[["M38","L39","L37","L35","K34","K32","K30"]],"hexes":["K30","M38"],"revenue":120,"revenue_str":"K30-M38"},{"train":"7-3","connections":[["J41","K40","L39","M38"],["I42","J41"],["G36","G38","G40","H41","I42"],["I30","I32","I34","H35","G36"],["J31","I30"],["L33","L35","K34","J35","J33","J31"]],"hexes":["M38","J41","I42","G36","I30","J31","L33"],"revenue":560,"revenue_str":"M38-J41-I42-G36-I30-J31-L33 (£60)"}]},{"type":"dividend","entity":"GWR","entity_type":"corporation","id":1000,"created_at":1617981470,"kind":"payout"},{"type":"pass","entity":"GWR","entity_type":"corporation","id":1001,"created_at":1617981473},{"type":"pass","entity":"MR","entity_type":"corporation","id":1002,"created_at":1617982581},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":1003,"created_at":1617982596,"hex":"L19","tile":"63-3","rotation":0},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":1004,"created_at":1617982646,"routes":[{"train":"5-1","connections":[["J29","I30"],["K30","J29"],["L33","L31","K30"],["M38","L37","L35","K34","L33"]],"hexes":["I30","J29","K30","L33","M38"],"revenue":270,"revenue_str":"I30-J29-K30-L33-M38"},{"train":"7-4","connections":[["K28","K26","L25","L23","L21","L19"],["J29","K28"],["I30","H29","I28","J29"],["J31","I30"],["K30","K32","K34","J35","J33","J31"],["L33","L31","K30"],["M38","L37","L35","K34","L33"]],"hexes":["L19","K28","J29","I30","J31","K30","L33","M38"],"revenue":700,"revenue_str":"L19-K28-J29-I30-J31-K30-L33-M38 (£80)"}]},{"type":"dividend","entity":"MR","entity_type":"corporation","id":1005,"created_at":1617982648,"kind":"payout"},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":1006,"created_at":1617982713},{"id":1007,"hex":"M42","tile":"X16-0","type":"lay_tile","entity":"LBSCR","rotation":3,"entity_type":"corporation","user":3714,"created_at":1617982774,"skip":true},{"id":1008,"type":"pass","entity":"LBSCR","entity_type":"corporation","user":3714,"created_at":1617982845,"skip":true},{"id":1009,"type":"undo","entity":"LBSCR","entity_type":"corporation","user":3714,"created_at":1617982875,"skip":true},{"id":1010,"type":"undo","entity":"LBSCR","entity_type":"corporation","user":3714,"created_at":1617982993,"skip":true},{"type":"lay_tile","entity":"LBSCR","entity_type":"corporation","id":1011,"created_at":1617983007,"hex":"M42","tile":"X16-0","rotation":3},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":1012,"created_at":1617983010},{"type":"place_token","entity":"LBSCR","entity_type":"corporation","id":1013,"created_at":1617983018,"city":"X13-1-0","slot":2},{"type":"run_routes","entity":"LBSCR","entity_type":"corporation","id":1014,"created_at":1617983049,"routes":[{"train":"6-2","connections":[["I42","H41","G40","G38","G36"],["J41","I42"],["K42","J41"],["M42","L41","K42"],["M38","M40","M42"]],"hexes":["G36","I42","J41","K42","M42","M38"],"revenue":280,"revenue_str":"G36-I42-J41-K42-M42-M38"},{"train":"7-5","connections":[["H23","I22"],["H25","H23"],["I30","H29","I28","H27","H25"],["G36","H35","I34","I32","I30"],["I42","H41","G40","G38","G36"],["J41","I42"],["K42","J41"],["M42","L41","K42"],["M38","M40","M42"]],"hexes":["I22","H23","H25","I30","G36","I42","J41","K42","M42","M38"],"revenue":720,"revenue_str":"I22-H23-H25-I30-G36-I42-J41-K42-M42-M38 (£120)"}]},{"type":"dividend","entity":"LBSCR","entity_type":"corporation","id":1015,"created_at":1617983052,"kind":"payout"},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":1016,"created_at":1617983058},{"type":"pass","entity":"LYR","entity_type":"corporation","id":1017,"created_at":1617983778},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":1018,"created_at":1617983811,"hex":"J29","tile":"X19-0","rotation":0},{"type":"place_token","entity":"LYR","entity_type":"corporation","id":1019,"created_at":1617983820,"city":"X19-0-0","slot":2},{"type":"choose","entity":"LYR","entity_type":"corporation","id":1020,"created_at":1617983825,"choice":"0"},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":1021,"created_at":1617983857,"routes":[{"train":"6-1","connections":[["J29","K30"],["I30","J29"],["H25","H27","I28","H29","I30"],["H23","H25"],["H21","H23"],["G22","H21"],["G20","G22"],["H21","G20"],["I22","H21"]],"hexes":["K30","J29","I30","H25","H23","H21","G22","G20","H21","I22"],"revenue":380,"revenue_str":"K30-J29-I30-H25-H23-H21-G22-G20-H21-I22"},{"train":"7-2","connections":[["K28","K26","K24"],["J29","K28"],["I30","J29"],["H25","H27","I28","H29","I30"],["H23","H25"],["H21","H23"],["G22","H21"],["G20","G22"],["H21","G20"],["I22","H21"]],"hexes":["K24","K28","J29","I30","H25","H23","H21","G22","G20","H21","I22"],"revenue":820,"revenue_str":"K24-K28-J29-I30-H25-H23-H21-G22-G20-H21-I22 (£160)"}]},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":1022,"created_at":1617983860,"kind":"payout"},{"type":"pass","entity":"LYR","entity_type":"corporation","id":1023,"created_at":1617983865},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":1024,"created_at":1617985506},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":1025,"created_at":1617985528,"hex":"L29","tile":"8-13","rotation":1},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":1026,"created_at":1617985532,"hex":"L27","tile":"8-1","rotation":0},{"type":"run_routes","entity":"LNWR","entity_type":"corporation","id":1027,"created_at":1617985630,"routes":[{"train":"2P-1","connections":[["I22","H23"]],"hexes":["I22","H23"],"revenue":120,"revenue_str":"I22-H23"},{"train":"5P-0","connections":[["M36","M38"],["K30","K32","K34","L35","M36"],["J29","K30"],["I30","H29","I28","J29"]],"hexes":["M38","M36","K30","J29","I30"],"revenue":260,"revenue_str":"M38-M36-K30-J29-I30"}]},{"type":"dividend","entity":"LNWR","entity_type":"corporation","id":1028,"created_at":1617985887,"kind":"half"},{"type":"buy_train","entity":"LNWR","entity_type":"corporation","id":1029,"created_at":1617985893,"train":"7-7","price":750,"variant":"7"},{"type":"pass","entity":"CR","entity_type":"corporation","id":1030,"created_at":1617986546},{"id":1031,"hex":"J23","tile":"9-4","type":"lay_tile","entity":"CR","rotation":2,"entity_type":"corporation","user":3714,"created_at":1617986598,"skip":true},{"id":1032,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617986605,"skip":true},{"id":1033,"hex":"K20","tile":"57-3","type":"lay_tile","entity":"CR","rotation":1,"entity_type":"corporation","user":3714,"created_at":1617986658,"skip":true},{"id":1034,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617986686,"skip":true},{"type":"lay_tile","entity":"CR","entity_type":"corporation","id":1035,"created_at":1617986690,"hex":"G4","tile":"X18-0","rotation":5},{"type":"pass","entity":"CR","entity_type":"corporation","id":1036,"created_at":1617986693},{"type":"place_token","entity":"CR","entity_type":"corporation","id":1037,"created_at":1617986697,"city":"X13-1-0","slot":3},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":1038,"created_at":1617986742,"routes":[{"train":"7-0","connections":[["H23","I22"],["H25","H23"],["J29","I28","H27","H25"],["K28","J29"],["L19","L21","L23","L25","K26","K28"],["H13","H15","I16","J17","K18","L19"],["G12","H13"],["F7","G8","G10","H11","G12"],["E6","F7"],["F7","E8","E6"],["H5","G6","F7"],["G4","H5"],["H1","G2","G4"]],"hexes":["I22","H23","H25","J29","K28","L19","H13","G12","F7","E6","F7","H5","G4","H1"],"revenue":660,"revenue_str":"I22-H23-H25-J29-K28-L19-H13-G12-F7-E6-F7-H5-G4-H1 (£60)"}]},{"type":"dividend","entity":"CR","entity_type":"corporation","id":1039,"created_at":1617986744,"kind":"payout"},{"type":"pass","entity":"CR","entity_type":"corporation","id":1040,"created_at":1617986750},{"type":"pass","entity":"NBR","entity_type":"corporation","id":1041,"created_at":1617986758},{"id":1042,"hex":"K20","tile":"57-3","type":"lay_tile","entity":"NBR","rotation":1,"entity_type":"corporation","user":3714,"created_at":1617986797,"skip":true},{"id":1043,"type":"undo","entity":"NBR","entity_type":"corporation","user":3714,"created_at":1617986834,"skip":true},{"id":1044,"type":"undo","entity":"NBR","entity_type":"corporation","user":3714,"created_at":1617986873,"skip":true},{"id":1045,"type":"redo","entity":"NBR","entity_type":"corporation","user":3714,"created_at":1617986876,"skip":true},{"id":1046,"hex":"G20","tile":"143-0","type":"lay_tile","entity":"NBR","rotation":4,"entity_type":"corporation","user":3714,"created_at":1617986896,"skip":true},{"id":1047,"type":"run_routes","entity":"NBR","routes":[{"hexes":["E2","E6","F5","G4","H1"],"train":"5-2","revenue":210,"connections":[["E6","E4","E2"],["F5","E6"],["G4","F5"],["H1","G2","G4"]],"revenue_str":"E2-E6-F5-G4-H1"},{"hexes":["F7","E6","F7","G4","H5","H3","H1"],"train":"7-1","revenue":330,"connections":[["E6","F7"],["F7","E8","E6"],["G4","G6","F7"],["H5","G4"],["H3","H5"],["H1","H3"]],"revenue_str":"F7-E6-F7-G4-H5-H3-H1 (£60)"}],"entity_type":"corporation","user":3714,"created_at":1617986918,"skip":true},{"id":1048,"kind":"payout","type":"dividend","entity":"NBR","entity_type":"corporation","user":3714,"created_at":1617986920,"skip":true},{"id":1049,"type":"undo","entity":"GWR","entity_type":"corporation","user":3714,"created_at":1617987016,"skip":true},{"id":1050,"type":"undo","entity":"NBR","entity_type":"corporation","user":3714,"created_at":1617987019,"skip":true},{"id":1051,"type":"undo","entity":"NBR","entity_type":"corporation","user":3714,"created_at":1617987022,"skip":true},{"id":1052,"type":"undo","entity":"NBR","entity_type":"corporation","user":3714,"created_at":1617987027,"skip":true},{"id":1053,"type":"redo","entity":"NBR","entity_type":"corporation","user":3714,"created_at":1617987030,"skip":true},{"type":"lay_tile","entity":"NBR","entity_type":"corporation","id":1054,"created_at":1617987034,"hex":"K20","tile":"57-3","rotation":1},{"type":"pass","entity":"NBR","entity_type":"corporation","id":1055,"created_at":1617987042},{"type":"run_routes","entity":"NBR","entity_type":"corporation","id":1056,"created_at":1617987054,"routes":[{"train":"5-2","connections":[["E6","E4","E2"],["F5","E6"],["G4","F5"],["H1","G2","G4"]],"hexes":["E2","E6","F5","G4","H1"],"revenue":210,"revenue_str":"E2-E6-F5-G4-H1"},{"train":"7-1","connections":[["E6","F7"],["F7","E8","E6"],["G4","G6","F7"],["H5","G4"],["H3","H5"],["H1","H3"]],"hexes":["F7","E6","F7","G4","H5","H3","H1"],"revenue":330,"revenue_str":"F7-E6-F7-G4-H5-H3-H1 (£60)"}]},{"type":"dividend","entity":"NBR","entity_type":"corporation","id":1057,"created_at":1617987056,"kind":"payout"},{"type":"pass","entity":"GWR","entity_type":"corporation","id":1058,"created_at":1617987672},{"type":"lay_tile","entity":"GWR","entity_type":"corporation","id":1059,"created_at":1617987773,"hex":"J23","tile":"9-4","rotation":2},{"type":"pass","entity":"GWR","entity_type":"corporation","id":1060,"created_at":1617987817},{"type":"run_routes","entity":"GWR","entity_type":"corporation","id":1061,"created_at":1617987920,"routes":[{"train":"2P-0","connections":[["I30","H29","I28","J29"]],"hexes":["J29","I30"],"revenue":130,"revenue_str":"J29-I30"},{"train":"7-3","connections":[["J41","K40","L39","M38"],["I42","J41"],["G36","G38","G40","H41","I42"],["I30","I32","I34","H35","G36"],["J31","I30"],["L33","L35","K34","J35","J33","J31"]],"hexes":["M38","J41","I42","G36","I30","J31","L33"],"revenue":560,"revenue_str":"M38-J41-I42-G36-I30-J31-L33 (£60)"}]},{"type":"dividend","entity":"GWR","entity_type":"corporation","id":1062,"created_at":1617987951,"kind":"payout"},{"type":"pass","entity":"GWR","entity_type":"corporation","id":1063,"created_at":1617987955},{"type":"pass","entity":"MR","entity_type":"corporation","id":1064,"created_at":1617988279},{"type":"lay_tile","entity":"MR","entity_type":"corporation","id":1065,"created_at":1617988306,"hex":"L19","tile":"X19-1","rotation":0},{"type":"run_routes","entity":"MR","entity_type":"corporation","id":1066,"created_at":1617988314,"routes":[{"train":"5-1","connections":[["J29","I30"],["K30","J29"],["L33","L31","K30"],["M38","L37","L35","K34","L33"]],"hexes":["I30","J29","K30","L33","M38"],"revenue":280,"revenue_str":"I30-J29-K30-L33-M38"},{"train":"7-4","connections":[["K28","K26","L25","L23","L21","L19"],["J29","K28"],["I30","H29","I28","J29"],["J31","I30"],["K30","K32","K34","J35","J33","J31"],["L33","L31","K30"],["M38","L37","L35","K34","L33"]],"hexes":["L19","K28","J29","I30","J31","K30","L33","M38"],"revenue":760,"revenue_str":"L19-K28-J29-I30-J31-K30-L33-M38 (£100)"}]},{"type":"dividend","entity":"MR","entity_type":"corporation","id":1067,"created_at":1617988319,"kind":"payout"},{"type":"pass","entity":"MR","entity_type":"corporation","id":1068,"created_at":1617988330},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":1069,"created_at":1617988516},{"id":1070,"hex":"J21","tile":"4-3","type":"lay_tile","entity":"LBSCR","rotation":1,"entity_type":"corporation","user":3714,"created_at":1617988527,"skip":true},{"id":1071,"type":"undo","entity":"LBSCR","entity_type":"corporation","user":3714,"created_at":1617988541,"skip":true},{"type":"lay_tile","entity":"LBSCR","entity_type":"corporation","id":1072,"created_at":1617988548,"hex":"M38","tile":"X23-0","rotation":0},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":1073,"created_at":1617988554},{"type":"run_routes","entity":"LBSCR","entity_type":"corporation","id":1074,"created_at":1617988613,"routes":[{"train":"6-2","connections":[["I42","H41","G40","G38","G36"],["J41","I42"],["K42","J41"],["M42","L41","K42"],["M38","M40","M42"]],"hexes":["G36","I42","J41","K42","M42","M38"],"revenue":300,"revenue_str":"G36-I42-J41-K42-M42-M38"},{"train":"7-5","connections":[["H23","I22"],["H25","H23"],["I30","H29","I28","H27","H25"],["G36","H35","I34","I32","I30"],["I42","H41","G40","G38","G36"],["J41","I42"],["K42","J41"],["M42","L41","K42"],["M38","M40","M42"]],"hexes":["I22","H23","H25","I30","G36","I42","J41","K42","M42","M38"],"revenue":760,"revenue_str":"I22-H23-H25-I30-G36-I42-J41-K42-M42-M38 (£120)"}]},{"type":"dividend","entity":"LBSCR","entity_type":"corporation","id":1075,"created_at":1617988617,"kind":"payout"},{"type":"pass","entity":"LBSCR","entity_type":"corporation","id":1076,"created_at":1617988621},{"type":"message","entity":4035,"entity_type":"player","id":1077,"created_at":1617988922,"message":"hi guys...i am heading out with cy for a few hours bike ride....will be back to computer after 530 today....I think we can finish tonight. Lou is coming on strong!"},{"type":"message","entity":4035,"entity_type":"player","id":1078,"created_at":1617989143,"message":"don't think i'll be able to overcome 2 E trains....:("},{"type":"pass","entity":"LYR","entity_type":"corporation","id":1079,"created_at":1617989147},{"type":"message","entity":4035,"entity_type":"player","id":1080,"created_at":1617989157,"message":"well played lou"},{"type":"message","entity":4035,"entity_type":"player","id":1081,"created_at":1617989163,"message":"and bruce of course!"},{"type":"lay_tile","entity":"LYR","entity_type":"corporation","id":1082,"created_at":1617989168,"hex":"G22","tile":"X11-1","rotation":2},{"type":"pass","entity":"LYR","entity_type":"corporation","id":1083,"created_at":1617989176},{"type":"choose","entity":"LYR","entity_type":"corporation","id":1084,"created_at":1617989182,"choice":"0"},{"type":"run_routes","entity":"LYR","entity_type":"corporation","id":1085,"created_at":1617989196,"routes":[{"train":"6-1","connections":[["J29","K30"],["I30","J29"],["H25","H27","I28","H29","I30"],["H23","H25"],["H21","H23"],["G22","H21"],["G20","G22"],["H21","G20"],["I22","H21"]],"hexes":["K30","J29","I30","H25","H23","H21","G22","G20","H21","I22"],"revenue":390,"revenue_str":"K30-J29-I30-H25-H23-H21-G22-G20-H21-I22"},{"train":"7-2","connections":[["K28","K26","K24"],["J29","K28"],["I30","J29"],["H25","H27","I28","H29","I30"],["H23","H25"],["H21","H23"],["G22","H21"],["G20","G22"],["H21","G20"],["I22","H21"]],"hexes":["K24","K28","J29","I30","H25","H23","H21","G22","G20","H21","I22"],"revenue":840,"revenue_str":"K24-K28-J29-I30-H25-H23-H21-G22-G20-H21-I22 (£160)"}]},{"type":"dividend","entity":"LYR","entity_type":"corporation","id":1086,"created_at":1617989200,"kind":"payout"},{"type":"pass","entity":"LYR","entity_type":"corporation","id":1087,"created_at":1617989206},{"type":"pass","entity":"CR","entity_type":"corporation","id":1088,"created_at":1617989496},{"id":1089,"hex":"J21","tile":"4-3","type":"lay_tile","entity":"CR","rotation":1,"entity_type":"corporation","user":3714,"created_at":1617989503,"skip":true},{"id":1090,"type":"undo","entity":"CR","entity_type":"corporation","user":3714,"created_at":1617989515,"skip":true},{"type":"pass","entity":"CR","entity_type":"corporation","id":1091,"created_at":1617989535},{"type":"run_routes","entity":"CR","entity_type":"corporation","id":1092,"created_at":1617989546,"routes":[{"train":"7-0","connections":[["H23","I22"],["H25","H23"],["J29","I28","H27","H25"],["K28","J29"],["L19","L21","L23","L25","K26","K28"],["H13","H15","I16","J17","K18","L19"],["G12","H13"],["F7","G8","G10","H11","G12"],["E6","F7"],["F7","E8","E6"],["H5","G6","F7"],["G4","H5"],["H1","G2","G4"]],"hexes":["I22","H23","H25","J29","K28","L19","H13","G12","F7","E6","F7","H5","G4","H1"],"revenue":660,"revenue_str":"I22-H23-H25-J29-K28-L19-H13-G12-F7-E6-F7-H5-G4-H1 (£60)"}]},{"type":"dividend","entity":"CR","entity_type":"corporation","id":1093,"created_at":1617989547,"kind":"payout"},{"type":"pass","entity":"CR","entity_type":"corporation","id":1094,"created_at":1617989555},{"type":"message","entity":3714,"entity_type":"player","id":1095,"created_at":1617989585,"message":"Kurt, run the NBR for the same as last round for me. thanks"},{"type":"pass","entity":"LNWR","entity_type":"corporation","id":1096,"created_at":1618005292},{"id":1097,"hex":"K30","tile":"X19-2","type":"lay_tile","entity":"LNWR","rotation":0,"entity_type":"corporation","user":4035,"created_at":1618005417,"skip":true},{"id":1098,"type":"undo","entity":"LNWR","entity_type":"corporation","user":4035,"created_at":1618005643,"skip":true},{"id":1099,"hex":"K30","tile":"X19-2","type":"lay_tile","entity":"LNWR","rotation":0,"entity_type":"corporation","user":4035,"created_at":1618005804,"skip":true},{"id":1100,"type":"undo","entity":"LNWR","entity_type":"corporation","user":4035,"created_at":1618006257,"skip":true},{"type":"lay_tile","entity":"LNWR","entity_type":"corporation","id":1101,"created_at":1618006435,"hex":"L25","tile":"80-2","rotation":1},{"type":"run_routes","entity":"LNWR","entity_type":"corporation","id":1102,"created_at":1618006744,"routes":[{"train":"2P-1","connections":[["I22","H21"]],"hexes":["H21","I22"],"revenue":90,"revenue_str":"H21-I22"},{"train":"5P-0","connections":[["K30","L31","L33"],["J29","K30"],["K28","J29"],["L19","L21","L23","L25","K26","K28"]],"hexes":["L33","K30","J29","K28","L19"],"revenue":190,"revenue_str":"L33-K30-J29-K28-L19"},{"train":"7-7","connections":[["H23","G22"],["I22","H23"],["K24","J23","I22"],["K30","L29","L27","K26","K24"],["M36","L35","K34","K32","K30"],["M38","M36"]],"hexes":["G22","H23","I22","K24","K30","M36","M38"],"revenue":440,"revenue_str":"G22-H23-I22-K24-K30-M36-M38 (£80)"}]},{"type":"dividend","entity":"LNWR","entity_type":"corporation","id":1103,"created_at":1618006751,"kind":"payout"},{"type":"pass","entity":"NBR","entity_type":"corporation","id":1104,"user":4035,"created_at":1618006783},{"type":"pass","entity":"NBR","entity_type":"corporation","id":1105,"user":4035,"created_at":1618006869},{"type":"run_routes","entity":"NBR","entity_type":"corporation","id":1106,"user":4035,"created_at":1618006873,"routes":[{"train":"5-2","connections":[["E6","E4","E2"],["F5","E6"],["G4","F5"],["H1","G2","G4"]],"hexes":["E2","E6","F5","G4","H1"],"revenue":210,"revenue_str":"E2-E6-F5-G4-H1"},{"train":"7-1","connections":[["E6","F7"],["F7","E8","E6"],["G4","G6","F7"],["H5","G4"],["H3","H5"],["H1","H3"]],"hexes":["F7","E6","F7","G4","H5","H3","H1"],"revenue":330,"revenue_str":"F7-E6-F7-G4-H5-H3-H1 (£60)"}]},{"type":"dividend","entity":"NBR","entity_type":"corporation","id":1107,"user":4035,"created_at":1618006875,"kind":"payout"},{"type":"message","entity":4035,"entity_type":"player","id":1108,"created_at":1618006999,"message":"good game guys!"},{"type":"message","entity":488,"entity_type":"player","id":1109,"created_at":1618007478,"message":"see you Wednesday. OF course, we can play async whenever you like."}],"loaded":true,"created_at":1617839842,"updated_at":1618007478} \ No newline at end of file diff --git a/spec/fixtures/1846/19962.json b/spec/fixtures/1846/19962.json deleted file mode 100755 index c7ba71679c..0000000000 --- a/spec/fixtures/1846/19962.json +++ /dev/null @@ -1 +0,0 @@ -{"id":19962,"description":"Live - Open","user":{"id":512,"name":"DrAwesome"},"players":[{"id":4338,"name":"EAB"},{"id":3739,"name":"Random Guy"},{"id":512,"name":"DrAwesome"},{"id":762,"name":"Talbatross"}],"max_players":5,"title":"1846","settings":{"seed":1198354547,"unlisted":false,"optional_rules":["first_ed"]},"user_settings":null,"status":"finished","turn":5,"round":"Operating Round","acting":[4338,3739,512],"result":{"3739":1918,"512":1910,"4338":1828,"762":0},"actions":[{"type":"bid","entity":762,"entity_type":"player","id":1,"company":"LSL","price":40},{"type":"bid","entity":512,"entity_type":"player","id":2,"company":"SC","price":40},{"type":"bid","entity":3739,"entity_type":"player","id":3,"company":"Pass (4)","price":0},{"type":"bid","entity":4338,"entity_type":"player","id":4,"company":"C&WI","price":60},{"type":"bid","entity":762,"entity_type":"player","id":5,"company":"O&I","price":40},{"type":"bid","entity":512,"entity_type":"player","id":6,"company":"Pass (1)","price":0},{"type":"bid","entity":3739,"entity_type":"player","id":7,"company":"BIG4","price":40},{"type":"bid","entity":4338,"entity_type":"player","id":8,"company":"MPC","price":60},{"type":"bid","entity":762,"entity_type":"player","id":9,"company":"Pass (3)","price":0},{"type":"bid","entity":512,"entity_type":"player","id":10,"company":"MS","price":60},{"type":"bid","entity":3739,"entity_type":"player","id":11,"company":"Pass (2)","price":0},{"id":12,"type":"bid","price":80,"entity":4338,"company":"MAIL","entity_type":"player","user":4338,"created_at":1608782398,"skip":true},{"id":13,"type":"undo","entity":4338,"entity_type":"player","user":4338,"created_at":1608782444,"skip":true},{"type":"pass","entity":4338,"entity_type":"player","id":14},{"type":"bid","entity":762,"entity_type":"player","id":15,"company":"MAIL","price":80},{"type":"par","entity":4338,"entity_type":"player","id":16,"corporation":"NYC","share_price":"40,0,4"},{"type":"par","entity":3739,"entity_type":"player","id":17,"corporation":"B&O","share_price":"60,0,6"},{"id":18,"type":"par","entity":512,"corporation":"GT","entity_type":"player","share_price":"70,0,7","user":512,"created_at":1608782755,"skip":true},{"id":19,"type":"undo","entity":762,"entity_type":"player","user":512,"created_at":1608782834,"skip":true},{"type":"par","entity":512,"entity_type":"player","id":20,"corporation":"IC","share_price":"70,0,7"},{"type":"message","entity":762,"entity_type":"player","id":21,"message":"sorry, still thinking"},{"type":"par","entity":762,"entity_type":"player","id":22,"corporation":"ERIE","share_price":"50,0,5"},{"type":"buy_shares","entity":4338,"entity_type":"player","id":23,"shares":["NYC_1"],"percent":10},{"type":"buy_shares","entity":3739,"entity_type":"player","id":24,"shares":["B&O_1"],"percent":10},{"type":"buy_shares","entity":512,"entity_type":"player","id":25,"shares":["IC_1"],"percent":10},{"type":"buy_shares","entity":762,"entity_type":"player","id":26,"shares":["ERIE_1"],"percent":10},{"type":"buy_shares","entity":4338,"entity_type":"player","id":27,"shares":["NYC_2"],"percent":10},{"type":"buy_shares","entity":3739,"entity_type":"player","id":28,"shares":["B&O_2"],"percent":10},{"type":"pass","entity":512,"entity_type":"player","id":29},{"type":"buy_shares","entity":762,"entity_type":"player","id":30,"shares":["ERIE_2"],"percent":10},{"type":"buy_shares","entity":4338,"entity_type":"player","id":31,"shares":["NYC_3"],"percent":10},{"type":"buy_shares","entity":3739,"entity_type":"player","id":32,"shares":["B&O_3"],"percent":10},{"type":"pass","entity":512,"entity_type":"player","id":33},{"type":"buy_shares","entity":762,"entity_type":"player","id":34,"shares":["ERIE_3"],"percent":10},{"type":"buy_shares","entity":4338,"entity_type":"player","id":35,"shares":["NYC_4"],"percent":10},{"type":"pass","entity":3739,"entity_type":"player","id":36},{"type":"pass","entity":512,"entity_type":"player","id":37},{"type":"pass","entity":762,"entity_type":"player","id":38},{"type":"sell_shares","entity":4338,"entity_type":"player","id":39,"shares":["NYC_1","NYC_2","NYC_3","NYC_4"],"percent":40},{"type":"par","entity":4338,"entity_type":"player","id":40,"corporation":"PRR","share_price":"100,0,10"},{"type":"pass","entity":3739,"entity_type":"player","id":41},{"type":"pass","entity":512,"entity_type":"player","id":42},{"type":"pass","entity":762,"entity_type":"player","id":43},{"type":"assign","entity":"SC","entity_type":"company","id":44,"target":"MS","target_type":"minor"},{"type":"assign","entity":"SC","entity_type":"company","id":45,"target":"D14","target_type":"hex"},{"type":"lay_tile","entity":"MS","entity_type":"minor","id":46,"hex":"C13","tile":"7-0","rotation":4},{"type":"lay_tile","entity":"MS","entity_type":"minor","id":47,"hex":"D14","tile":"5-0","rotation":1},{"type":"run_routes","entity":"MS","entity_type":"minor","id":48,"routes":[{"train":"2-0","connections":[["D14","C13","C15"]]}]},{"id":49,"type":"pass","entity":"BIG4","entity_type":"minor","user":3739,"created_at":1608783461,"skip":true},{"id":50,"type":"undo","entity":"NYC","entity_type":"corporation","user":3739,"created_at":1608783463,"skip":true},{"id":51,"hex":"G9","tile":"57-0","type":"lay_tile","entity":"BIG4","rotation":1,"entity_type":"minor","user":3739,"created_at":1608783469,"skip":true},{"id":52,"type":"undo","entity":"BIG4","entity_type":"minor","user":3739,"created_at":1608783483,"skip":true},{"type":"lay_tile","entity":"BIG4","entity_type":"minor","id":53,"hex":"G9","tile":"6-0","rotation":2},{"type":"lay_tile","entity":"BIG4","entity_type":"minor","id":54,"hex":"G11","tile":"8-0","rotation":5},{"id":55,"type":"pass","entity":"NYC","entity_type":"corporation","user":4338,"created_at":1608783622,"skip":true},{"id":56,"type":"buy_train","price":80,"train":"2-2","entity":"NYC","variant":"2","entity_type":"corporation","user":4338,"created_at":1608783623,"skip":true},{"id":57,"type":"buy_train","price":80,"train":"2-3","entity":"NYC","variant":"2","entity_type":"corporation","user":4338,"created_at":1608783624,"skip":true},{"id":58,"type":"buy_train","price":80,"train":"2-4","entity":"NYC","variant":"2","entity_type":"corporation","user":4338,"created_at":1608783624,"skip":true},{"id":59,"type":"undo","entity":"ERIE","entity_type":"corporation","user":4338,"created_at":1608783633,"skip":true},{"id":60,"type":"undo","entity":"NYC","entity_type":"corporation","user":4338,"created_at":1608783636,"skip":true},{"id":61,"type":"undo","entity":"NYC","entity_type":"corporation","user":4338,"created_at":1608783639,"skip":true},{"id":62,"type":"undo","entity":"NYC","entity_type":"corporation","user":4338,"created_at":1608783640,"skip":true},{"type":"pass","entity":"NYC","entity_type":"corporation","id":63},{"type":"buy_train","entity":"NYC","entity_type":"corporation","id":64,"train":"2-2","price":80,"variant":"2"},{"type":"buy_train","entity":"NYC","entity_type":"corporation","id":65,"train":"2-3","price":80,"variant":"2"},{"type":"buy_train","entity":"NYC","entity_type":"corporation","id":66,"train":"2-4","price":80,"variant":"2"},{"type":"lay_tile","entity":"ERIE","entity_type":"corporation","id":67,"hex":"E19","tile":"9-0","rotation":1},{"type":"lay_tile","entity":"ERIE","entity_type":"corporation","id":68,"hex":"E17","tile":"291-0","rotation":3},{"type":"pass","entity":"ERIE","entity_type":"corporation","id":69},{"type":"buy_train","entity":"ERIE","entity_type":"corporation","id":70,"train":"2-5","price":80,"variant":"2"},{"type":"pass","entity":"ERIE","entity_type":"corporation","id":71},{"type":"pass","entity":"ERIE","entity_type":"corporation","id":72},{"type":"place_token","entity":"B&O","entity_type":"corporation","id":73,"city":"H12-0-0","slot":0},{"id":74,"hex":"H12","tile":"292-0","type":"lay_tile","entity":"B&O","rotation":0,"entity_type":"corporation","user":3739,"created_at":1608783873,"skip":true},{"id":75,"type":"undo","entity":"B&O","entity_type":"corporation","user":3739,"created_at":1608783917,"skip":true},{"type":"lay_tile","entity":"B&O","entity_type":"corporation","id":76,"hex":"H12","tile":"292-0","rotation":0},{"type":"sell_shares","entity":"B&O","entity_type":"corporation","id":77,"shares":["B&O_4"],"percent":10,"share_price":50},{"type":"pass","entity":"B&O","entity_type":"corporation","id":78},{"type":"buy_train","entity":"B&O","entity_type":"corporation","id":79,"train":"2-6","price":80,"variant":"2"},{"type":"buy_train","entity":"B&O","entity_type":"corporation","id":80,"train":"2-7","price":80,"variant":"2"},{"type":"pass","entity":"B&O","entity_type":"corporation","id":81},{"type":"pass","entity":"B&O","entity_type":"corporation","id":82},{"id":83,"type":"undo","entity":"IC","entity_type":"corporation","user":3739,"created_at":1608784003,"skip":true},{"id":84,"type":"redo","entity":"B&O","entity_type":"corporation","user":3739,"created_at":1608784013,"skip":true},{"type":"lay_tile","entity":"IC","entity_type":"corporation","id":85,"hex":"J4","tile":"9-1","rotation":0},{"type":"lay_tile","entity":"IC","entity_type":"corporation","id":86,"hex":"H6","tile":"8-1","rotation":0},{"type":"sell_shares","entity":"IC","entity_type":"corporation","id":87,"shares":["IC_2"],"percent":10,"share_price":60},{"type":"pass","entity":"IC","entity_type":"corporation","id":88},{"type":"buy_train","entity":"IC","entity_type":"corporation","id":89,"train":"4-0","price":160,"variant":"3/5"},{"type":"pass","entity":"IC","entity_type":"corporation","id":90},{"type":"pass","entity":"IC","entity_type":"corporation","id":91},{"type":"sell_shares","entity":"PRR","entity_type":"corporation","id":92,"shares":["PRR_1","PRR_2"],"percent":20,"share_price":90},{"type":"buy_company","entity":"PRR","entity_type":"corporation","id":93,"company":"C&WI","price":60},{"type":"buy_company","entity":"PRR","entity_type":"corporation","id":94,"company":"MPC","price":60},{"type":"place_token","entity":"C&WI","entity_type":"company","id":95,"city":"D6-0-3","slot":0},{"type":"assign","entity":"MPC","entity_type":"company","id":96,"target":"D6","target_type":"hex"},{"type":"lay_tile","entity":"PRR","entity_type":"corporation","id":97,"hex":"D6","tile":"298-0","rotation":0},{"type":"lay_tile","entity":"PRR","entity_type":"corporation","id":98,"hex":"E7","tile":"9-2","rotation":2},{"type":"pass","entity":"PRR","entity_type":"corporation","id":99},{"type":"buy_train","entity":"PRR","entity_type":"corporation","id":100,"train":"2-2","price":1},{"type":"buy_train","entity":"PRR","entity_type":"corporation","id":101,"train":"2-3","price":1},{"type":"buy_train","entity":"PRR","entity_type":"corporation","id":102,"train":"2-4","price":1},{"type":"buy_train","entity":"PRR","entity_type":"corporation","id":103,"train":"4-1","price":180,"variant":"4"},{"type":"pass","entity":"PRR","entity_type":"corporation","id":104},{"type":"pass","entity":"SC","entity_type":"company","id":105},{"type":"lay_tile","entity":"MS","entity_type":"minor","id":106,"hex":"D12","tile":"9-3","rotation":1},{"type":"lay_tile","entity":"MS","entity_type":"minor","id":107,"hex":"D10","tile":"9-4","rotation":1},{"type":"run_routes","entity":"MS","entity_type":"minor","id":108,"routes":[{"train":"2-0","connections":[["D14","C13","C15"]]}]},{"id":109,"type":"undo","entity":"BIG4","entity_type":"minor","user":3739,"created_at":1608784411,"skip":true},{"id":110,"type":"redo","entity":"MS","entity_type":"minor","user":3739,"created_at":1608784414,"skip":true},{"type":"run_routes","entity":"BIG4","entity_type":"minor","id":111,"routes":[{"train":"2-1","connections":[["H12","G11","G9"]]}]},{"type":"lay_tile","entity":"PRR","entity_type":"corporation","id":112,"hex":"F8","tile":"9-5","rotation":2},{"type":"lay_tile","entity":"PRR","entity_type":"corporation","id":113,"hex":"G9","tile":"15-0","rotation":1},{"type":"run_routes","entity":"PRR","entity_type":"corporation","id":114,"routes":[{"train":"2-2","connections":[["C5","D6"]]},{"train":"2-3","connections":[["F20","F22"]]},{"train":"2-4","connections":[["F20","G21"]]},{"train":"4-1","connections":[["G9","G11","H12"],["G9","F8","E7","D6"]]}]},{"type":"dividend","entity":"PRR","entity_type":"corporation","id":115,"kind":"payout"},{"type":"pass","entity":"PRR","entity_type":"corporation","id":116},{"type":"buy_company","entity":"IC","entity_type":"corporation","id":117,"company":"MS","price":60},{"type":"lay_tile","entity":"IC","entity_type":"corporation","id":118,"hex":"D8","tile":"9-6","rotation":1},{"type":"lay_tile","entity":"IC","entity_type":"corporation","id":119,"hex":"C15","tile":"294-0","rotation":0},{"id":120,"type":"buy_company","price":40,"entity":"IC","company":"SC","entity_type":"corporation","user":512,"created_at":1608784635,"skip":true},{"id":121,"type":"assign","entity":"SC","target":"C5","entity_type":"company","target_type":"hex","user":512,"created_at":1608784645,"skip":true},{"id":122,"type":"pass","entity":"IC","entity_type":"corporation","user":512,"created_at":1608784653,"skip":true},{"id":123,"type":"run_routes","entity":"IC","routes":[{"train":"4-0","connections":[["C5","D6"],["D6","D8","D10","D12","D14"],["C15","C13","D14"],["C15","C17"]]}],"entity_type":"corporation","user":512,"created_at":1608784665,"skip":true},{"id":124,"kind":"payout","type":"dividend","entity":"IC","entity_type":"corporation","user":512,"created_at":1608784668,"skip":true},{"id":125,"type":"undo","entity":"IC","entity_type":"corporation","user":512,"created_at":1608784712,"skip":true},{"id":126,"type":"undo","entity":"IC","entity_type":"corporation","user":512,"created_at":1608784715,"skip":true},{"id":127,"type":"undo","entity":"IC","entity_type":"corporation","user":512,"created_at":1608784719,"skip":true},{"id":128,"type":"undo","entity":"IC","entity_type":"corporation","user":512,"created_at":1608784721,"skip":true},{"id":129,"type":"undo","entity":"IC","entity_type":"corporation","user":512,"created_at":1608784727,"skip":true},{"type":"buy_company","entity":"IC","entity_type":"corporation","id":130,"company":"SC","price":17},{"type":"assign","entity":"SC","entity_type":"company","id":131,"target":"C5","target_type":"hex"},{"type":"pass","entity":"IC","entity_type":"corporation","id":132},{"type":"run_routes","entity":"IC","entity_type":"corporation","id":133,"routes":[{"train":"4-0","connections":[["C5","D6"],["D6","D8","D10","D12","D14"],["C15","C13","D14"],["C15","C17"]]}]},{"type":"dividend","entity":"IC","entity_type":"corporation","id":134,"kind":"payout"},{"type":"buy_train","entity":"IC","entity_type":"corporation","id":135,"train":"4-2","price":160,"variant":"3/5"},{"type":"pass","entity":"IC","entity_type":"corporation","id":136},{"type":"pass","entity":"IC","entity_type":"corporation","id":137},{"type":"lay_tile","entity":"B&O","entity_type":"corporation","id":138,"hex":"I11","tile":"9-7","rotation":0},{"type":"pass","entity":"B&O","entity_type":"corporation","id":139},{"type":"run_routes","entity":"B&O","entity_type":"corporation","id":140,"routes":[{"train":"2-6","connections":[["G9","G11","H12"]]},{"train":"2-7","connections":[["J10","I11","H12"]]}]},{"id":141,"kind":"payout","type":"dividend","entity":"B&O","entity_type":"corporation","user":3739,"created_at":1608784858,"skip":true},{"id":142,"type":"pass","entity":"B&O","entity_type":"corporation","user":3739,"created_at":1608784860,"skip":true},{"id":143,"type":"pass","entity":"B&O","entity_type":"corporation","user":3739,"created_at":1608784865,"skip":true},{"id":144,"type":"undo","entity":"ERIE","entity_type":"corporation","user":3739,"created_at":1608784877,"skip":true},{"id":145,"type":"undo","entity":"B&O","entity_type":"corporation","user":3739,"created_at":1608784879,"skip":true},{"id":146,"type":"undo","entity":"B&O","entity_type":"corporation","user":3739,"created_at":1608784880,"skip":true},{"id":147,"kind":"half","type":"dividend","entity":"B&O","entity_type":"corporation","user":3739,"created_at":1608784889,"skip":true},{"id":148,"type":"undo","entity":"B&O","entity_type":"corporation","user":3739,"created_at":1608784897,"skip":true},{"type":"dividend","entity":"B&O","entity_type":"corporation","id":149,"kind":"payout"},{"type":"pass","entity":"B&O","entity_type":"corporation","id":150},{"type":"buy_company","entity":"B&O","entity_type":"corporation","id":151,"company":"BIG4","price":40},{"type":"pass","entity":"B&O","entity_type":"corporation","id":152},{"type":"lay_tile","entity":"ERIE","entity_type":"corporation","id":153,"hex":"D20","tile":"619-0","rotation":3},{"type":"place_token","entity":"ERIE","entity_type":"corporation","id":154,"city":"619-0-0","slot":1},{"type":"lay_tile","entity":"ERIE","entity_type":"corporation","id":155,"hex":"D18","tile":"8-2","rotation":4},{"type":"buy_company","entity":"ERIE","entity_type":"corporation","id":156,"company":"LSL","price":40},{"type":"lay_tile","entity":"LSL","entity_type":"company","id":157,"hex":"E17","tile":"294-1","rotation":0},{"type":"run_routes","entity":"ERIE","entity_type":"corporation","id":158,"routes":[{"train":"2-5","connections":[["E17","D18","D20"]]}]},{"type":"dividend","entity":"ERIE","entity_type":"corporation","id":159,"kind":"payout"},{"type":"buy_company","entity":"ERIE","entity_type":"corporation","id":160,"company":"O&I","price":40},{"type":"pass","entity":"ERIE","entity_type":"corporation","id":161},{"type":"pass","entity":"ERIE","entity_type":"corporation","id":162},{"type":"message","entity":3739,"entity_type":"player","id":163,"message":"been a long time since I played"},{"type":"message","entity":3739,"entity_type":"player","id":164,"message":"shares in market affect stock price?"},{"type":"message","entity":762,"entity_type":"player","id":165,"message":"at the end of the SR"},{"type":"message","entity":762,"entity_type":"player","id":166,"message":"drops by 1 if any shares are in market"},{"type":"message","entity":762,"entity_type":"player","id":167,"message":"also drops by one if the director sells"},{"type":"buy_shares","entity":3739,"entity_type":"player","id":168,"shares":["B&O_4"],"percent":10},{"type":"buy_shares","entity":512,"entity_type":"player","id":169,"shares":["IC_2"],"percent":10},{"type":"buy_shares","entity":762,"entity_type":"player","id":170,"shares":["IC_3"],"percent":10},{"type":"buy_shares","entity":4338,"entity_type":"player","id":171,"shares":["PRR_1"],"percent":10},{"type":"buy_shares","entity":3739,"entity_type":"player","id":172,"shares":["IC_4"],"percent":10},{"type":"buy_shares","entity":512,"entity_type":"player","id":173,"shares":["IC_5"],"percent":10},{"type":"buy_shares","entity":762,"entity_type":"player","id":174,"shares":["B&O_5"],"percent":10},{"type":"buy_shares","entity":4338,"entity_type":"player","id":175,"shares":["IC_6"],"percent":10},{"type":"pass","entity":3739,"entity_type":"player","id":176},{"type":"buy_shares","entity":512,"entity_type":"player","id":177,"shares":["IC_7"],"percent":10},{"type":"pass","entity":762,"entity_type":"player","id":178},{"type":"pass","entity":4338,"entity_type":"player","id":179},{"type":"pass","entity":3739,"entity_type":"player","id":180},{"type":"pass","entity":512,"entity_type":"player","id":181},{"type":"place_token","entity":"PRR","entity_type":"corporation","id":182,"city":"E11-1-0","slot":0},{"type":"lay_tile","entity":"PRR","entity_type":"corporation","id":183,"hex":"E11","tile":"5-1","rotation":2},{"id":184,"hex":"D12","tile":"24-0","type":"lay_tile","entity":"PRR","rotation":4,"entity_type":"corporation","user":4338,"created_at":1608785418,"skip":true},{"id":185,"type":"undo","entity":"PRR","entity_type":"corporation","user":4338,"created_at":1608785421,"skip":true},{"type":"lay_tile","entity":"PRR","entity_type":"corporation","id":186,"hex":"D10","tile":"23-0","rotation":1},{"type":"buy_shares","entity":"PRR","entity_type":"corporation","id":187,"shares":["PRR_2"],"percent":10,"share_price":112},{"type":"run_routes","entity":"PRR","entity_type":"corporation","id":188,"routes":[{"train":"2-2","connections":[["C5","D6"]]},{"train":"2-3","connections":[["D6","D8","D10","E11"]]},{"train":"2-4","connections":[["F20","G21"]]},{"train":"4-1","connections":[["G9","G11","H12"],["G9","F8","E7","D6"]]}]},{"type":"dividend","entity":"PRR","entity_type":"corporation","id":189,"kind":"payout"},{"type":"pass","entity":"PRR","entity_type":"corporation","id":190},{"type":"lay_tile","entity":"IC","entity_type":"corporation","id":191,"hex":"D14","tile":"619-1","rotation":5},{"type":"lay_tile","entity":"IC","entity_type":"corporation","id":192,"hex":"E15","tile":"8-3","rotation":2},{"type":"place_token","entity":"IC","entity_type":"corporation","id":193,"city":"619-1-0","slot":1},{"type":"assign","entity":"SC","entity_type":"company","id":194,"target":"D14","target_type":"hex"},{"type":"run_routes","entity":"IC","entity_type":"corporation","id":195,"routes":[{"train":"4-0","connections":[["C5","D6"],["D14","D12","D10","D8","D6"],["D14","C13","C15"],["C15","C17"]]},{"train":"2-0","connections":[["D14","C15"]]},{"train":"4-2","connections":[["E17","D18","D20"],["D14","E15","E17"]]}]},{"type":"dividend","entity":"IC","entity_type":"corporation","id":196,"kind":"payout"},{"type":"buy_train","entity":"IC","entity_type":"corporation","id":197,"train":"4-3","price":180,"variant":"4"},{"type":"pass","entity":"IC","entity_type":"corporation","id":198},{"type":"lay_tile","entity":"B&O","entity_type":"corporation","id":199,"hex":"H12","tile":"295-0","rotation":0},{"type":"pass","entity":"B&O","entity_type":"corporation","id":200},{"type":"run_routes","entity":"B&O","entity_type":"corporation","id":201,"routes":[{"train":"2-6","connections":[["H12","G11","G9"]]},{"train":"2-7","connections":[["H12","I11","J10"]]},{"train":"2-1","connections":[["G9","F8","E7","D6"]]}]},{"id":202,"kind":"payout","type":"dividend","entity":"B&O","entity_type":"corporation","user":3739,"created_at":1608785632,"skip":true},{"id":203,"type":"undo","entity":"B&O","entity_type":"corporation","user":3739,"created_at":1608785652,"skip":true},{"type":"dividend","entity":"B&O","entity_type":"corporation","id":204,"kind":"payout"},{"id":205,"type":"buy_train","price":160,"train":"4-4","entity":"B&O","variant":"3/5","entity_type":"corporation","user":3739,"created_at":1608785668,"skip":true},{"id":206,"type":"undo","entity":"B&O","entity_type":"corporation","user":3739,"created_at":1608785683,"skip":true},{"type":"pass","entity":"B&O","entity_type":"corporation","id":207},{"type":"pass","entity":"B&O","entity_type":"corporation","id":208},{"id":209,"type":"sell_shares","entity":"ERIE","shares":["ERIE_4","ERIE_5","ERIE_6","ERIE_7","ERIE_8"],"percent":50,"entity_type":"corporation","share_price":50,"user":762,"created_at":1608785712,"skip":true},{"type":"message","entity":3739,"entity_type":"player","id":210,"message":"no rust 2day :D"},{"id":211,"hex":"E19","tile":"24-0","type":"lay_tile","entity":"ERIE","rotation":1,"entity_type":"corporation","user":762,"created_at":1608785721,"skip":true},{"id":212,"type":"buy_company","price":80,"entity":"ERIE","company":"MAIL","entity_type":"corporation","user":762,"created_at":1608785727,"skip":true},{"id":213,"type":"undo","entity":"ERIE","entity_type":"corporation","user":762,"created_at":1608785739,"skip":true},{"id":214,"type":"undo","entity":"ERIE","entity_type":"corporation","user":762,"created_at":1608785740,"skip":true},{"id":215,"type":"undo","entity":"ERIE","entity_type":"corporation","user":762,"created_at":1608785742,"skip":true},{"id":216,"type":"pass","entity":"ERIE","entity_type":"corporation","user":762,"created_at":1608785749,"skip":true},{"id":217,"type":"undo","entity":"ERIE","entity_type":"corporation","user":762,"created_at":1608785780,"skip":true},{"type":"sell_shares","entity":"ERIE","entity_type":"corporation","id":218,"shares":["ERIE_4","ERIE_5"],"percent":20,"share_price":50},{"type":"place_token","entity":"ERIE","entity_type":"corporation","id":219,"city":"619-1-0","slot":1},{"type":"lay_tile","entity":"ERIE","entity_type":"corporation","id":220,"hex":"D8","tile":"23-1","rotation":4},{"type":"lay_tile","entity":"O&I","entity_type":"company","id":221,"hex":"F16","tile":"8-4","rotation":1},{"type":"lay_tile","entity":"O&I","entity_type":"company","id":222,"hex":"F14","tile":"8-5","rotation":4},{"type":"pass","entity":"ERIE","entity_type":"corporation","id":223},{"type":"run_routes","entity":"ERIE","entity_type":"corporation","id":224,"routes":[{"train":"2-5","connections":[["E17","D18","D20"]]}]},{"id":225,"kind":"payout","type":"dividend","entity":"ERIE","entity_type":"corporation","user":762,"created_at":1608785895,"skip":true},{"id":226,"type":"undo","entity":"ERIE","entity_type":"corporation","user":762,"created_at":1608785898,"skip":true},{"type":"dividend","entity":"ERIE","entity_type":"corporation","id":227,"kind":"payout"},{"type":"buy_company","entity":"ERIE","entity_type":"corporation","id":228,"company":"MAIL","price":64},{"type":"lay_tile","entity":"PRR","entity_type":"corporation","id":229,"hex":"E11","tile":"619-2","rotation":0},{"type":"lay_tile","entity":"PRR","entity_type":"corporation","id":230,"hex":"F10","tile":"9-8","rotation":0},{"type":"place_token","entity":"PRR","entity_type":"corporation","id":231,"city":"15-0-0","slot":1},{"type":"run_routes","entity":"PRR","entity_type":"corporation","id":232,"routes":[{"train":"2-2","connections":[["C5","D6"]]},{"train":"2-3","connections":[["E11","D10","D8","D6"]]},{"train":"2-4","connections":[["G9","F10","E11"]]},{"train":"4-1","connections":[["H12","I11","J10"],["H12","G11","G9"],["G9","F8","E7","D6"]]}]},{"type":"dividend","entity":"PRR","entity_type":"corporation","id":233,"kind":"payout"},{"id":234,"hex":"F14","tile":"25-0","type":"lay_tile","entity":"IC","rotation":4,"entity_type":"corporation","user":512,"created_at":1608786129,"skip":true},{"id":235,"hex":"E13","tile":"8-6","type":"lay_tile","entity":"IC","rotation":5,"entity_type":"corporation","user":512,"created_at":1608786137,"skip":true},{"id":236,"city":"619-2-0","slot":1,"type":"place_token","entity":"IC","entity_type":"corporation","user":512,"created_at":1608786140,"skip":true},{"id":237,"type":"undo","entity":"IC","entity_type":"corporation","user":512,"created_at":1608786183,"skip":true},{"id":238,"type":"undo","entity":"IC","entity_type":"corporation","user":512,"created_at":1608786187,"skip":true},{"id":239,"type":"undo","entity":"IC","entity_type":"corporation","user":512,"created_at":1608786190,"skip":true},{"id":240,"hex":"G13","tile":"57-0","type":"lay_tile","entity":"IC","rotation":0,"entity_type":"corporation","user":512,"created_at":1608786203,"skip":true},{"id":241,"hex":"B16","tile":"6-1","type":"lay_tile","entity":"IC","rotation":4,"entity_type":"corporation","user":512,"created_at":1608786247,"skip":true},{"id":242,"city":"298-0-2","slot":0,"type":"place_token","entity":"IC","entity_type":"corporation","user":512,"created_at":1608786251,"skip":true},{"id":243,"type":"undo","entity":"IC","entity_type":"corporation","user":512,"created_at":1608786306,"skip":true},{"id":244,"type":"undo","entity":"IC","entity_type":"corporation","user":512,"created_at":1608786308,"skip":true},{"id":245,"type":"undo","entity":"IC","entity_type":"corporation","user":512,"created_at":1608786311,"skip":true},{"type":"lay_tile","entity":"IC","entity_type":"corporation","id":246,"hex":"B16","tile":"6-1","rotation":4},{"type":"place_token","entity":"IC","entity_type":"corporation","id":247,"city":"298-0-2","slot":0},{"type":"pass","entity":"IC","entity_type":"corporation","id":248},{"type":"run_routes","entity":"IC","entity_type":"corporation","id":249,"routes":[{"train":"4-0","connections":[["B16","C15"],["B16","B18"]]},{"train":"2-0","connections":[["D14","C15"]]},{"train":"4-2","connections":[["C15","C17"],["D14","C13","C15"],["D14","D12","D10","D8","D6"],["C5","D6"]]},{"train":"4-3","connections":[["D20","C21"],["E17","D18","D20"],["D14","E15","E17"]]}]},{"type":"dividend","entity":"IC","entity_type":"corporation","id":250,"kind":"payout"},{"type":"pass","entity":"IC","entity_type":"corporation","id":251},{"type":"lay_tile","entity":"B&O","entity_type":"corporation","id":252,"hex":"H10","tile":"8-6","rotation":4},{"type":"lay_tile","entity":"B&O","entity_type":"corporation","id":253,"hex":"I9","tile":"8-7","rotation":3},{"type":"pass","entity":"B&O","entity_type":"corporation","id":254},{"type":"run_routes","entity":"B&O","entity_type":"corporation","id":255,"routes":[{"train":"2-6","connections":[["H12","G11","G9"]]},{"train":"2-7","connections":[["H12","I11","J10"]]},{"train":"2-1","connections":[["H12","H10","I9","J10"]]}]},{"type":"dividend","entity":"B&O","entity_type":"corporation","id":256,"kind":"payout"},{"type":"buy_train","entity":"B&O","entity_type":"corporation","id":257,"train":"4-4","price":180,"variant":"4"},{"type":"pass","entity":"ERIE","entity_type":"corporation","id":258},{"type":"run_routes","entity":"ERIE","entity_type":"corporation","id":259,"routes":[{"train":"2-5","connections":[["E17","D18","D20"]]}]},{"type":"dividend","entity":"ERIE","entity_type":"corporation","id":260,"kind":"payout"},{"type":"pass","entity":"ERIE","entity_type":"corporation","id":261},{"id":262,"type":"sell_shares","entity":762,"shares":["ERIE_1","ERIE_2","ERIE_3"],"percent":30,"entity_type":"player","user":762,"created_at":1608786527,"skip":true},{"id":263,"type":"sell_shares","entity":762,"shares":["B&O_5"],"percent":10,"entity_type":"player","user":762,"created_at":1608786558,"skip":true},{"id":264,"type":"undo","entity":762,"entity_type":"player","user":762,"created_at":1608786582,"skip":true},{"id":265,"type":"undo","entity":762,"entity_type":"player","user":762,"created_at":1608786584,"skip":true},{"type":"sell_shares","entity":762,"entity_type":"player","id":266,"shares":["B&O_5"],"percent":10},{"type":"sell_shares","entity":762,"entity_type":"player","id":267,"shares":["ERIE_1","ERIE_2"],"percent":20},{"type":"par","entity":762,"entity_type":"player","id":268,"corporation":"GT","share_price":"150,0,14"},{"type":"message","entity":3739,"entity_type":"player","id":269,"message":"what's the operation order again?"},{"type":"buy_shares","entity":4338,"entity_type":"player","id":270,"shares":["PRR_3"],"percent":10},{"type":"message","entity":3739,"entity_type":"player","id":271,"message":"which corp operates first?"},{"type":"message","entity":4338,"entity_type":"player","id":272,"message":"by stock price, high to low, right?"},{"type":"buy_shares","entity":3739,"entity_type":"player","id":273,"shares":["PRR_4"],"percent":10},{"type":"message","entity":762,"entity_type":"player","id":274,"message":"high to low"},{"type":"message","entity":762,"entity_type":"player","id":275,"message":"it's only low to high in the 1st OR"},{"type":"buy_shares","entity":512,"entity_type":"player","id":276,"shares":["PRR_5"],"percent":10},{"type":"buy_shares","entity":762,"entity_type":"player","id":277,"shares":["PRR_6"],"percent":10},{"type":"buy_shares","entity":4338,"entity_type":"player","id":278,"shares":["PRR_7"],"percent":10},{"type":"buy_shares","entity":3739,"entity_type":"player","id":279,"shares":["PRR_8"],"percent":10},{"type":"buy_shares","entity":512,"entity_type":"player","id":280,"shares":["PRR_2"],"percent":10},{"type":"sell_shares","entity":762,"entity_type":"player","id":281,"shares":["PRR_6"],"percent":10},{"type":"buy_shares","entity":762,"entity_type":"player","id":282,"shares":["GT_1"],"percent":10},{"type":"pass","entity":4338,"entity_type":"player","id":283},{"id":284,"type":"sell_shares","entity":3739,"shares":["IC_4"],"percent":10,"entity_type":"player","user":3739,"created_at":1608786817,"skip":true},{"id":285,"type":"undo","entity":3739,"entity_type":"player","user":3739,"created_at":1608786822,"skip":true},{"id":286,"type":"sell_shares","entity":3739,"shares":["B&O_1"],"percent":10,"entity_type":"player","user":3739,"created_at":1608786824,"skip":true},{"id":287,"type":"undo","entity":3739,"entity_type":"player","user":3739,"created_at":1608786828,"skip":true},{"id":288,"type":"sell_shares","entity":3739,"shares":["B&O_1","B&O_2"],"percent":20,"entity_type":"player","user":3739,"created_at":1608786829,"skip":true},{"id":289,"type":"buy_shares","entity":3739,"shares":["PRR_6"],"percent":10,"entity_type":"player","user":3739,"created_at":1608786838,"skip":true},{"id":290,"type":"undo","entity":512,"entity_type":"player","user":3739,"created_at":1608786850,"skip":true},{"id":291,"type":"undo","entity":3739,"entity_type":"player","user":3739,"created_at":1608786854,"skip":true},{"type":"sell_shares","entity":3739,"entity_type":"player","id":292,"shares":["B&O_1"],"percent":10},{"type":"buy_shares","entity":3739,"entity_type":"player","id":293,"shares":["PRR_6"],"percent":10},{"type":"buy_shares","entity":512,"entity_type":"player","id":294,"shares":["B&O_6"],"percent":10},{"type":"buy_shares","entity":762,"entity_type":"player","id":295,"shares":["GT_2"],"percent":10},{"type":"pass","entity":4338,"entity_type":"player","id":296},{"type":"message","entity":3739,"entity_type":"player","id":297,"message":"so is erie going to liquidate?"},{"type":"message","entity":762,"entity_type":"player","id":298,"message":"probably not"},{"type":"message","entity":762,"entity_type":"player","id":299,"message":"it has a friend"},{"type":"message","entity":3739,"entity_type":"player","id":300,"message":"how does that work again?"},{"type":"buy_shares","entity":3739,"entity_type":"player","id":301,"shares":["ERIE_6"],"percent":10},{"type":"buy_shares","entity":512,"entity_type":"player","id":302,"shares":["B&O_7"],"percent":10},{"type":"pass","entity":762,"entity_type":"player","id":303},{"type":"pass","entity":4338,"entity_type":"player","id":304},{"type":"pass","entity":3739,"entity_type":"player","id":305},{"type":"buy_shares","entity":512,"entity_type":"player","id":306,"shares":["ERIE_7"],"percent":10},{"type":"pass","entity":762,"entity_type":"player","id":307},{"type":"pass","entity":4338,"entity_type":"player","id":308},{"type":"pass","entity":3739,"entity_type":"player","id":309},{"type":"sell_shares","entity":512,"entity_type":"player","id":310,"shares":["ERIE_7"],"percent":10},{"type":"sell_shares","entity":512,"entity_type":"player","id":311,"shares":["B&O_6","B&O_7"],"percent":20},{"type":"sell_shares","entity":512,"entity_type":"player","id":312,"shares":["PRR_5","PRR_2"],"percent":20},{"type":"sell_shares","entity":512,"entity_type":"player","id":313,"shares":["IC_1"],"percent":10},{"type":"buy_shares","entity":512,"entity_type":"player","id":314,"shares":["GT_3"],"percent":10},{"type":"pass","entity":762,"entity_type":"player","id":315},{"type":"pass","entity":4338,"entity_type":"player","id":316},{"type":"pass","entity":3739,"entity_type":"player","id":317},{"type":"buy_shares","entity":512,"entity_type":"player","id":318,"shares":["GT_4"],"percent":10},{"type":"pass","entity":762,"entity_type":"player","id":319},{"type":"pass","entity":4338,"entity_type":"player","id":320},{"type":"pass","entity":3739,"entity_type":"player","id":321},{"type":"buy_shares","entity":512,"entity_type":"player","id":322,"shares":["GT_5"],"percent":10},{"type":"message","entity":3739,"entity_type":"player","id":323,"message":"talb buy 1 share GT"},{"type":"message","entity":3739,"entity_type":"player","id":324,"message":"i'll buy other"},{"type":"message","entity":762,"entity_type":"player","id":325,"message":"I can't"},{"type":"message","entity":3739,"entity_type":"player","id":326,"message":"sell IC+Erie"},{"type":"message","entity":4338,"entity_type":"player","id":327,"message":"he can't sell more erie"},{"type":"message","entity":762,"entity_type":"player","id":328,"message":"can't sell Erie"},{"type":"message","entity":3739,"entity_type":"player","id":329,"message":"ah ok"},{"type":"pass","entity":762,"entity_type":"player","id":330},{"type":"pass","entity":4338,"entity_type":"player","id":331},{"type":"pass","entity":3739,"entity_type":"player","id":332},{"type":"buy_shares","entity":512,"entity_type":"player","id":333,"shares":["GT_6"],"percent":10},{"type":"pass","entity":762,"entity_type":"player","id":334},{"type":"pass","entity":4338,"entity_type":"player","id":335},{"type":"pass","entity":3739,"entity_type":"player","id":336},{"type":"sell_shares","entity":512,"entity_type":"player","id":337,"shares":["IC_2"],"percent":10},{"type":"buy_shares","entity":512,"entity_type":"player","id":338,"shares":["GT_7"],"percent":10},{"type":"pass","entity":762,"entity_type":"player","id":339},{"type":"pass","entity":4338,"entity_type":"player","id":340},{"type":"pass","entity":3739,"entity_type":"player","id":341},{"type":"pass","entity":512,"entity_type":"player","id":342},{"type":"lay_tile","entity":"GT","entity_type":"corporation","id":343,"hex":"C13","tile":"29-0","rotation":4},{"type":"place_token","entity":"GT","entity_type":"corporation","id":344,"city":"294-0-0","slot":1},{"id":345,"type":"pass","entity":"GT","entity_type":"corporation","user":512,"created_at":1608787525,"skip":true},{"id":346,"type":"undo","entity":"GT","entity_type":"corporation","user":512,"created_at":1608787579,"skip":true},{"type":"sell_shares","entity":"GT","entity_type":"corporation","id":347,"shares":["GT_8"],"percent":10,"share_price":137},{"type":"pass","entity":"GT","entity_type":"corporation","id":348},{"id":349,"type":"buy_train","price":800,"train":"4-0","entity":"GT","entity_type":"corporation","user":512,"created_at":1608787600,"skip":true},{"id":350,"type":"undo","entity":"GT","entity_type":"corporation","user":512,"created_at":1608787611,"skip":true},{"id":351,"type":"buy_train","price":700,"train":"4-0","entity":"GT","entity_type":"corporation","user":512,"created_at":1608787645,"skip":true},{"id":352,"type":"buy_train","price":500,"train":"5-0","entity":"GT","variant":"5","entity_type":"corporation","user":512,"created_at":1608787649,"skip":true},{"id":353,"type":"undo","entity":"GT","entity_type":"corporation","user":512,"created_at":1608787718,"skip":true},{"id":354,"type":"undo","entity":"GT","entity_type":"corporation","user":512,"created_at":1608787729,"skip":true},{"type":"buy_train","entity":"GT","entity_type":"corporation","id":355,"train":"4-0","price":200},{"type":"buy_train","entity":"GT","entity_type":"corporation","id":356,"train":"5-0","price":500,"variant":"5"},{"type":"buy_train","entity":"GT","entity_type":"corporation","id":357,"train":"5-1","price":500,"variant":"5"},{"type":"lay_tile","entity":"PRR","entity_type":"corporation","id":358,"hex":"D6","tile":"299-0","rotation":0},{"id":359,"hex":"G13","tile":"57-0","type":"lay_tile","entity":"PRR","rotation":0,"entity_type":"corporation","user":4338,"created_at":1608787773,"skip":true},{"id":360,"city":"294-1-0","slot":1,"type":"place_token","entity":"PRR","entity_type":"corporation","user":4338,"created_at":1608787813,"skip":true},{"id":361,"type":"buy_shares","entity":"PRR","shares":["PRR_5","PRR_2"],"percent":20,"entity_type":"corporation","share_price":150,"user":4338,"created_at":1608787837,"skip":true},{"id":362,"type":"undo","entity":"PRR","entity_type":"corporation","user":4338,"created_at":1608787861,"skip":true},{"id":363,"type":"undo","entity":"PRR","entity_type":"corporation","user":4338,"created_at":1608787863,"skip":true},{"id":364,"type":"undo","entity":"PRR","entity_type":"corporation","user":4338,"created_at":1608787867,"skip":true},{"type":"message","entity":3739,"entity_type":"player","id":365,"message":"So it seems much better to use big 10 as teleport than to teleport for $100"},{"type":"place_token","entity":"PRR","entity_type":"corporation","id":366,"city":"295-0-0","slot":1},{"type":"lay_tile","entity":"PRR","entity_type":"corporation","id":367,"hex":"E13","tile":"9-9","rotation":1},{"type":"buy_shares","entity":"PRR","entity_type":"corporation","id":368,"shares":["PRR_5","PRR_2"],"percent":20,"share_price":150},{"type":"run_routes","entity":"PRR","entity_type":"corporation","id":369,"routes":[{"train":"2-2","connections":[["E11","D10","D8","D6"]]},{"train":"2-3","connections":[["C5","D6"]]},{"train":"2-4","connections":[["H12","I11","J10"]]},{"train":"4-1","connections":[["H12","H10","I9","J10"],["H12","G11","G9"],["D6","E7","F8","G9"]]}]},{"type":"dividend","entity":"PRR","entity_type":"corporation","id":370,"kind":"half"},{"type":"buy_train","entity":"PRR","entity_type":"corporation","id":371,"train":"5-2","price":450,"variant":"4/6"},{"type":"buy_train","entity":"PRR","entity_type":"corporation","id":372,"train":"5-3","price":500,"variant":"5"},{"id":373,"type":"buy_shares","entity":"B&O","shares":["B&O_5","B&O_1"],"percent":20,"entity_type":"corporation","share_price":100,"user":3739,"created_at":1608787939,"skip":true},{"id":374,"hex":"H12","tile":"297-0","type":"lay_tile","entity":"B&O","rotation":0,"entity_type":"corporation","user":3739,"created_at":1608787947,"skip":true},{"id":375,"type":"pass","entity":"B&O","entity_type":"corporation","user":3739,"created_at":1608787970,"skip":true},{"id":376,"type":"run_routes","entity":"B&O","routes":[{"train":"2-6","connections":[["D6","E7","F8","G9"]]},{"train":"2-7","connections":[["H12","I11","J10"]]},{"train":"2-1","connections":[["H12","H10","I9","J10"]]},{"train":"4-4","connections":[["D6","C7","D8","D10","E11"],["G9","F10","E11"],["H12","G11","G9"]]}],"entity_type":"corporation","user":3739,"created_at":1608787988,"skip":true},{"id":377,"kind":"half","type":"dividend","entity":"B&O","entity_type":"corporation","user":3739,"created_at":1608787998,"skip":true},{"id":378,"type":"undo","entity":"B&O","entity_type":"corporation","user":3739,"created_at":1608788004,"skip":true},{"id":379,"type":"undo","entity":"B&O","entity_type":"corporation","user":3739,"created_at":1608788009,"skip":true},{"id":380,"type":"undo","entity":"B&O","entity_type":"corporation","user":3739,"created_at":1608788013,"skip":true},{"id":381,"type":"undo","entity":"B&O","entity_type":"corporation","user":3739,"created_at":1608788031,"skip":true},{"id":382,"type":"undo","entity":"B&O","entity_type":"corporation","user":3739,"created_at":1608788035,"skip":true},{"type":"message","entity":3739,"entity_type":"player","id":383,"message":"think I'm like 30 short"},{"type":"message","entity":3739,"entity_type":"player","id":384,"message":"oh not if I issue"},{"type":"sell_shares","entity":"B&O","entity_type":"corporation","id":385,"shares":["B&O_8"],"percent":10,"share_price":80},{"type":"lay_tile","entity":"B&O","entity_type":"corporation","id":386,"hex":"H12","tile":"297-0","rotation":0},{"type":"pass","entity":"B&O","entity_type":"corporation","id":387},{"type":"run_routes","entity":"B&O","entity_type":"corporation","id":388,"routes":[{"train":"2-6","connections":[["D6","E7","F8","G9"]]},{"train":"2-7","connections":[["H12","I11","J10"]]},{"train":"2-1","connections":[["H12","H10","I9","J10"]]},{"train":"4-4","connections":[["E11","D10","D8","D6"],["G9","F10","E11"],["H12","G11","G9"]]}]},{"type":"dividend","entity":"B&O","entity_type":"corporation","id":389,"kind":"withhold"},{"type":"buy_train","entity":"B&O","entity_type":"corporation","id":390,"train":"6-0","price":800,"variant":"6"},{"type":"pass","entity":"B&O","entity_type":"corporation","id":391},{"type":"lay_tile","entity":"IC","entity_type":"corporation","id":392,"hex":"D12","tile":"20-0","rotation":0},{"type":"buy_shares","entity":"IC","entity_type":"corporation","id":393,"shares":["IC_1","IC_2"],"percent":20,"share_price":100},{"type":"pass","entity":"IC","entity_type":"corporation","id":394},{"type":"run_routes","entity":"IC","entity_type":"corporation","id":395,"routes":[{"train":"4-2","connections":[["C15","C17"],["C15","C13","D14"],["D6","D8","D10","D12","D14"],["C5","D6"]]},{"train":"4-3","connections":[["E17","D18","D20"],["D14","E15","E17"],["D14","C15"]]}]},{"type":"dividend","entity":"IC","entity_type":"corporation","id":396,"kind":"half"},{"type":"buy_train","entity":"IC","entity_type":"corporation","id":397,"train":"5-0","price":20},{"type":"pass","entity":"IC","entity_type":"corporation","id":398},{"type":"buy_shares","entity":"ERIE","entity_type":"corporation","id":399,"shares":["ERIE_4","ERIE_5","ERIE_1"],"percent":30,"share_price":70},{"type":"lay_tile","entity":"ERIE","entity_type":"corporation","id":400,"hex":"D20","tile":"611-0","rotation":3},{"type":"sell_shares","entity":"ERIE","entity_type":"corporation","id":401,"shares":["ERIE_8","ERIE_4"],"percent":20,"share_price":20},{"type":"sell_shares","entity":762,"entity_type":"player","id":402,"shares":["GT_1","GT_2","GT_3","GT_4"],"percent":40},{"type":"sell_shares","entity":762,"entity_type":"player","id":403,"shares":["IC_3"],"percent":10},{"type":"sell_shares","entity":762,"entity_type":"player","id":404,"shares":["ERIE_3"],"percent":10},{"type":"bankrupt","entity":"ERIE","entity_type":"corporation","id":405},{"type":"lay_tile","entity":"PRR","entity_type":"corporation","id":406,"hex":"E15","tile":"23-2","rotation":4},{"type":"message","entity":3739,"entity_type":"player","id":407,"message":"gg talb"},{"type":"message","entity":762,"entity_type":"player","id":408,"message":"gg]"},{"type":"lay_tile","entity":"PRR","entity_type":"corporation","id":409,"hex":"G13","tile":"57-0","rotation":0},{"type":"pass","entity":"PRR","entity_type":"corporation","id":410},{"type":"run_routes","entity":"PRR","entity_type":"corporation","id":411,"routes":[{"train":"4-1","connections":[["H12","H10","I9","J10"],["H12","G11","G9"],["D6","E7","F8","G9"]]},{"train":"5-2","connections":[["D20","D22"],["D20","D18","E17"],["E17","E15","E13","E11"],["D6","C7","D8","D10","E11"],["C5","D6"]]},{"train":"5-3","connections":[["H12","I11","J10"],["G13","H12"],["G13","F14","F16","E17"],["E17","E19","E21"]]}]},{"type":"dividend","entity":"PRR","entity_type":"corporation","id":412,"kind":"payout"},{"type":"place_token","entity":"GT","entity_type":"corporation","id":413,"city":"619-2-0","slot":1},{"type":"lay_tile","entity":"GT","entity_type":"corporation","id":414,"hex":"C15","tile":"297-1","rotation":0},{"type":"pass","entity":"GT","entity_type":"corporation","id":415},{"type":"run_routes","entity":"GT","entity_type":"corporation","id":416,"routes":[{"train":"4-0","connections":[["C15","B16"],["B16","B18"]]},{"train":"5-1","connections":[["C5","D6"],["D6","C7","D8","D10","E11"],["C15","C13","D12","E11"],["C15","C17"]]}]},{"type":"dividend","entity":"GT","entity_type":"corporation","id":417,"kind":"payout"},{"type":"pass","entity":"GT","entity_type":"corporation","id":418},{"type":"buy_shares","entity":"IC","entity_type":"corporation","id":419,"shares":["IC_3"],"percent":10,"share_price":124},{"type":"lay_tile","entity":"IC","entity_type":"corporation","id":420,"hex":"C15","tile":"290-0","rotation":0},{"type":"pass","entity":"IC","entity_type":"corporation","id":421},{"type":"run_routes","entity":"IC","entity_type":"corporation","id":422,"routes":[{"train":"5-0","connections":[["C5","D6"],["D6","D8","D10","D12","D14"],["C15","D14"],["C15","C17"]]}]},{"type":"dividend","entity":"IC","entity_type":"corporation","id":423,"kind":"payout"},{"type":"pass","entity":"IC","entity_type":"corporation","id":424},{"id":425,"hex":"E17","tile":"297-1","type":"lay_tile","entity":"B&O","rotation":3,"entity_type":"corporation","user":3739,"created_at":1608788869,"skip":true},{"id":426,"type":"undo","entity":"B&O","entity_type":"corporation","user":3739,"created_at":1608788881,"skip":true},{"id":427,"hex":"G11","tile":"25-0","type":"lay_tile","entity":"B&O","rotation":1,"entity_type":"corporation","user":3739,"created_at":1608788902,"skip":true},{"id":428,"type":"pass","entity":"B&O","entity_type":"corporation","user":3739,"created_at":1608788904,"skip":true},{"id":429,"type":"run_routes","entity":"B&O","routes":[{"train":"4-4","connections":[["H12","H10","I9","J10"],["G9","G11","H12"],["D6","E7","F8","G9"]]},{"train":"6-0","connections":[["D20","D22"],["D20","D18","E17"],["G13","F14","F16","E17"],["G13","H12"],["H12","I11","J10"]]}],"entity_type":"corporation","user":3739,"created_at":1608788924,"skip":true},{"id":430,"kind":"half","type":"dividend","entity":"B&O","entity_type":"corporation","user":3739,"created_at":1608788934,"skip":true},{"id":431,"type":"undo","entity":"B&O","entity_type":"corporation","user":3739,"created_at":1608788941,"skip":true},{"id":432,"type":"undo","entity":"B&O","entity_type":"corporation","user":3739,"created_at":1608788963,"skip":true},{"id":433,"type":"undo","entity":"B&O","entity_type":"corporation","user":3739,"created_at":1608788969,"skip":true},{"type":"message","entity":3739,"entity_type":"player","id":434,"message":"best to ignore chicago run"},{"type":"message","entity":3739,"entity_type":"player","id":435,"message":"focus on local optima"},{"type":"message","entity":3739,"entity_type":"player","id":436,"message":"as only 3 ORs remain"},{"type":"message","entity":3739,"entity_type":"player","id":437,"message":"or less"},{"id":438,"type":"undo","entity":"B&O","entity_type":"corporation","user":3739,"created_at":1608789007,"skip":true},{"type":"lay_tile","entity":"B&O","entity_type":"corporation","id":439,"hex":"G13","tile":"15-1","rotation":0},{"type":"pass","entity":"B&O","entity_type":"corporation","id":440},{"type":"run_routes","entity":"B&O","entity_type":"corporation","id":441,"routes":[{"train":"4-4","connections":[["H12","H10","I9","J10"],["H12","G11","G9"],["D6","E7","F8","G9"]]},{"train":"6-0","connections":[["D20","D22"],["D20","D18","E17"],["G13","F14","F16","E17"],["G13","H12"],["H12","I11","J10"]]}]},{"type":"dividend","entity":"B&O","entity_type":"corporation","id":442,"kind":"payout"},{"type":"pass","entity":"B&O","entity_type":"corporation","id":443},{"type":"buy_shares","entity":4338,"entity_type":"player","id":444,"shares":["PRR_5"],"percent":10},{"type":"end_game","entity":3739,"entity_type":"player","id":445}],"loaded":true,"created_at":1608781803,"updated_at":1608790489} \ No newline at end of file diff --git a/spec/fixtures/1846/hs_gcumggit_1595777670.json b/spec/fixtures/1846/hs_gcumggit_1595777670.json deleted file mode 100644 index 7ccc8ac325..0000000000 --- a/spec/fixtures/1846/hs_gcumggit_1595777670.json +++ /dev/null @@ -1,3558 +0,0 @@ -{ - "status": "finished", - "actions": [ - { - "type": "bid", - "entity": "Player 3", - "entity_type": "player", - "id": 1, - "company": "BIG4", - "price": 40, - "original_id": 1 - }, - { - "type": "bid", - "entity": "Player 2", - "entity_type": "player", - "id": 2, - "company": "O&I", - "price": 40, - "original_id": 2 - }, - { - "type": "bid", - "entity": "Player 1", - "entity_type": "player", - "id": 3, - "company": "Pass (2)", - "price": 0, - "original_id": 3 - }, - { - "type": "bid", - "entity": "Player 3", - "entity_type": "player", - "id": 4, - "company": "SC", - "price": 40, - "original_id": 4 - }, - { - "type": "bid", - "entity": "Player 2", - "entity_type": "player", - "id": 5, - "company": "MS", - "price": 60, - "original_id": 5 - }, - { - "type": "bid", - "entity": "Player 1", - "entity_type": "player", - "id": 6, - "company": "Pass (3)", - "price": 0, - "original_id": 6 - }, - { - "type": "bid", - "entity": "Player 3", - "entity_type": "player", - "id": 7, - "company": "C&WI", - "price": 60, - "original_id": 7 - }, - { - "type": "bid", - "entity": "Player 2", - "entity_type": "player", - "id": 8, - "company": "MAIL", - "price": 80, - "original_id": 8 - }, - { - "type": "par", - "entity": "Player 1", - "entity_type": "player", - "id": 9, - "corporation": "NYC", - "share_price": "80,0,8", - "original_id": 9 - }, - { - "type": "par", - "entity": "Player 2", - "entity_type": "player", - "id": 10, - "corporation": "B&O", - "share_price": "70,0,7", - "original_id": 10 - }, - { - "type": "buy_shares", - "entity": "Player 3", - "entity_type": "player", - "id": 11, - "shares": [ - "NYC_1" - ], - "original_id": 11 - }, - { - "type": "buy_shares", - "entity": "Player 1", - "entity_type": "player", - "id": 12, - "shares": [ - "NYC_2" - ], - "original_id": 12 - }, - { - "type": "buy_shares", - "entity": "Player 3", - "entity_type": "player", - "id": 13, - "shares": [ - "NYC_3" - ], - "original_id": 13 - }, - { - "type": "buy_shares", - "entity": "Player 1", - "entity_type": "player", - "id": 14, - "shares": [ - "NYC_4" - ], - "original_id": 14 - }, - { - "type": "buy_shares", - "entity": "Player 1", - "entity_type": "player", - "id": 15, - "shares": [ - "NYC_5" - ], - "original_id": 15 - }, - { - "type": "pass", - "entity": "Player 1", - "entity_type": "player", - "id": 16, - "original_id": 16 - }, - { - "type": "pass", - "entity": "SC", - "entity_type": "company", - "id": 17, - "original_id": 17 - }, - { - "type": "pass", - "entity": "MS", - "entity_type": "minor", - "id": 18, - "original_id": 18 - }, - { - "type": "pass", - "entity": "BIG4", - "entity_type": "minor", - "id": 19, - "original_id": 19 - }, - { - "type": "buy_company", - "entity": "B&O", - "entity_type": "corporation", - "id": 20, - "company": "MS", - "price": 1, - "original_id": 20 - }, - { - "type": "buy_company", - "entity": "B&O", - "entity_type": "corporation", - "id": 21, - "company": "BIG4", - "price": 1, - "original_id": 21 - }, - { - "type": "lay_tile", - "entity": "B&O", - "entity_type": "corporation", - "id": 22, - "hex": "C13", - "tile": "7-0", - "rotation": 4, - "original_id": 23 - }, - { - "type": "lay_tile", - "entity": "B&O", - "entity_type": "corporation", - "id": 23, - "hex": "D14", - "tile": "5-0", - "rotation": 1, - "original_id": 24 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 24, - "original_id": 25 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 25, - "original_id": 26 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 26, - "original_id": 27 - }, - { - "type": "sell_shares", - "entity": "NYC", - "entity_type": "corporation", - "id": 27, - "shares": [ - "NYC_6", - "NYC_7", - "NYC_8" - ], - "percent": 30, - "share_price": 70, - "original_id": 28 - }, - { - "type": "pass", - "entity": "NYC", - "entity_type": "corporation", - "id": 28, - "original_id": 29 - }, - { - "type": "buy_train", - "entity": "NYC", - "entity_type": "corporation", - "id": 29, - "train": "2-0", - "price": 769, - "original_id": 30 - }, - { - "type": "buy_company", - "entity": "NYC", - "entity_type": "corporation", - "id": 30, - "company": "SC", - "price": 1, - "original_id": 31 - }, - { - "id": 31, - "entity_type": "corporation", - "entity": "NYC", - "type": "pass", - "original_id": 0 - }, - { - "type": "run_routes", - "entity": "NYC", - "entity_type": "corporation", - "id": 32, - "routes": [ - - ], - "original_id": 32 - }, - { - "type": "pass", - "entity": "NYC", - "entity_type": "corporation", - "id": 33, - "original_id": 33 - }, - { - "type": "pass", - "entity": "NYC", - "entity_type": "corporation", - "id": 34, - "original_id": 34 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 35, - "original_id": 36 - }, - { - "type": "run_routes", - "entity": "B&O", - "entity_type": "corporation", - "id": 36, - "routes": [ - { - "train": "2-1", - "connections": [ - [ - "C15", - "C13", - "D14" - ] - ] - } - ], - "original_id": 37 - }, - { - "type": "dividend", - "entity": "B&O", - "entity_type": "corporation", - "id": 37, - "kind": "payout", - "original_id": 38 - }, - { - "type": "buy_train", - "entity": "B&O", - "entity_type": "corporation", - "id": 38, - "train": "2-0", - "price": 1, - "original_id": 39 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 39, - "original_id": 40 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 40, - "original_id": 41 - }, - { - "type": "pass", - "entity": "Player 3", - "entity_type": "player", - "id": 41, - "original_id": 42 - }, - { - "type": "sell_shares", - "entity": "Player 1", - "entity_type": "player", - "id": 42, - "shares": [ - "NYC_2" - ], - "percent": 10, - "original_id": 43 - }, - { - "percent": 10, - "shares": [ - "NYC_1" - ], - "id": 43, - "entity_type": "player", - "entity": "Player 3", - "type": "sell_shares", - "original_id": 43, - "skip": true - }, - { - "id": 44, - "entity_type": "player", - "entity": "Player 3", - "type": "undo", - "original_id": 44, - "skip": true - }, - { - "type": "pass", - "entity": "Player 3", - "entity_type": "player", - "id": 45, - "original_id": 46 - }, - { - "type": "sell_shares", - "entity": "Player 1", - "entity_type": "player", - "id": 46, - "shares": [ - "NYC_4" - ], - "percent": 10, - "original_id": 47 - }, - { - "type": "pass", - "entity": "Player 1", - "entity_type": "player", - "id": 47, - "original_id": 48 - }, - { - "type": "buy_shares", - "entity": "Player 2", - "entity_type": "player", - "id": 48, - "shares": [ - "NYC_6" - ], - "original_id": 49 - }, - { - "percent": 10, - "shares": [ - "NYC_1" - ], - "id": 49, - "entity_type": "player", - "entity": "Player 3", - "type": "sell_shares", - "original_id": 49, - "skip": true - }, - { - "id": 50, - "entity_type": "player", - "entity": "Player 3", - "type": "undo", - "original_id": 50, - "skip": true - }, - { - "type": "pass", - "entity": "Player 3", - "entity_type": "player", - "id": 51, - "original_id": 52 - }, - { - "type": "sell_shares", - "entity": "Player 1", - "entity_type": "player", - "id": 52, - "shares": [ - "NYC_5" - ], - "percent": 10, - "original_id": 53 - }, - { - "type": "pass", - "entity": "Player 1", - "entity_type": "player", - "id": 53, - "original_id": 54 - }, - { - "type": "pass", - "entity": "Player 3", - "entity_type": "player", - "id": 54, - "original_id": 55 - }, - { - "type": "pass", - "entity": "Player 1", - "entity_type": "player", - "id": 55, - "original_id": 56 - }, - { - "target_type": "hex", - "target": "G19", - "id": 56, - "entity_type": "company", - "entity": "SC", - "type": "assign", - "original_id": 56, - "skip": true - }, - { - "id": 57, - "entity_type": "corporation", - "entity": "B&O", - "type": "pass", - "original_id": 57, - "skip": true - }, - { - "id": 58, - "entity_type": "corporation", - "entity": "B&O", - "type": "pass", - "original_id": 58, - "skip": true - }, - { - "id": 59, - "entity_type": "corporation", - "entity": "B&O", - "type": "undo", - "original_id": 59, - "skip": true - }, - { - "id": 60, - "entity_type": "corporation", - "entity": "B&O", - "type": "undo", - "original_id": 60, - "skip": true - }, - { - "id": 61, - "entity_type": "corporation", - "entity": "B&O", - "type": "undo", - "original_id": 61, - "skip": true - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 62, - "original_id": 64 - }, - { - "type": "run_routes", - "entity": "B&O", - "entity_type": "corporation", - "id": 63, - "routes": [ - { - "train": "2-1", - "connections": [ - [ - "C15", - "C13", - "D14" - ] - ] - }, - { - "train": "2-0", - "connections": [ - [ - "H20", - "G19" - ] - ] - } - ], - "original_id": 65 - }, - { - "type": "dividend", - "entity": "B&O", - "entity_type": "corporation", - "id": 64, - "kind": "payout", - "original_id": 66 - }, - { - "type": "buy_train", - "entity": "B&O", - "entity_type": "corporation", - "id": 65, - "train": "2-2", - "price": 80, - "original_id": 67 - }, - { - "type": "buy_train", - "entity": "B&O", - "entity_type": "corporation", - "id": 66, - "train": "2-3", - "price": 80, - "original_id": 68 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 67, - "original_id": 69 - }, - { - "type": "pass", - "entity": "NYC", - "entity_type": "corporation", - "id": 68, - "original_id": 70 - }, - { - "price": 20, - "train": "2-0", - "id": 69, - "entity_type": "corporation", - "entity": "NYC", - "type": "buy_train", - "original_id": 70, - "skip": true - }, - { - "id": 70, - "entity_type": "corporation", - "entity": "NYC", - "type": "undo", - "original_id": 71, - "skip": true - }, - { - "type": "buy_train", - "entity": "NYC", - "entity_type": "corporation", - "id": 71, - "train": "2-0", - "price": 1, - "original_id": 73 - }, - { - "type": "buy_train", - "entity": "NYC", - "entity_type": "corporation", - "id": 72, - "train": "2-1", - "price": 1, - "original_id": 74 - }, - { - "price": 1, - "train": "2-2", - "id": 73, - "entity_type": "corporation", - "entity": "NYC", - "type": "buy_train", - "original_id": 74, - "skip": true - }, - { - "id": 74, - "entity_type": "corporation", - "entity": "NYC", - "type": "pass", - "original_id": 75, - "skip": true - }, - { - "id": 75, - "entity_type": "corporation", - "entity": "NYC", - "type": "pass", - "original_id": 76, - "skip": true - }, - { - "id": 76, - "entity_type": "corporation", - "entity": "B&O", - "type": "undo", - "original_id": 77, - "skip": true - }, - { - "id": 77, - "entity_type": "corporation", - "entity": "NYC", - "type": "undo", - "original_id": 78, - "skip": true - }, - { - "id": 78, - "entity_type": "corporation", - "entity": "NYC", - "type": "undo", - "original_id": 79, - "skip": true - }, - { - "type": "buy_train", - "entity": "NYC", - "entity_type": "corporation", - "id": 79, - "train": "2-2", - "price": 19, - "original_id": 81 - }, - { - "id": 80, - "entity_type": "corporation", - "entity": "NYC", - "type": "pass", - "original_id": 0 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 81, - "original_id": 83 - }, - { - "type": "run_routes", - "entity": "B&O", - "entity_type": "corporation", - "id": 82, - "routes": [ - { - "train": "2-3", - "connections": [ - [ - "C15", - "C13", - "D14" - ] - ] - } - ], - "original_id": 84 - }, - { - "type": "dividend", - "entity": "B&O", - "entity_type": "corporation", - "id": 83, - "kind": "payout", - "original_id": 85 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 84, - "original_id": 86 - }, - { - "id": 85, - "entity_type": "corporation", - "entity": "B&O", - "type": "pass", - "original_id": 86, - "skip": true - }, - { - "routes": [ - { - "connections": [ - [ - "C21", - "D20" - ] - ], - "train": "2-0" - } - ], - "id": 86, - "entity_type": "corporation", - "entity": "NYC", - "type": "run_routes", - "original_id": 87, - "skip": true - }, - { - "kind": "half", - "id": 87, - "entity_type": "corporation", - "entity": "NYC", - "type": "dividend", - "original_id": 88, - "skip": true - }, - { - "id": 88, - "entity_type": "corporation", - "entity": "NYC", - "type": "undo", - "original_id": 89, - "skip": true - }, - { - "id": 89, - "entity_type": "corporation", - "entity": "NYC", - "type": "undo", - "original_id": 90, - "skip": true - }, - { - "id": 90, - "entity_type": "corporation", - "entity": "NYC", - "type": "undo", - "original_id": 91, - "skip": true - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 91, - "original_id": 93 - }, - { - "type": "run_routes", - "entity": "NYC", - "entity_type": "corporation", - "id": 92, - "routes": [ - { - "train": "2-0", - "connections": [ - [ - "C21", - "D20" - ] - ] - } - ], - "original_id": 94 - }, - { - "type": "dividend", - "entity": "NYC", - "entity_type": "corporation", - "id": 93, - "kind": "half", - "original_id": 95 - }, - { - "type": "pass", - "entity": "NYC", - "entity_type": "corporation", - "id": 94, - "original_id": 96 - }, - { - "type": "pass", - "entity": "NYC", - "entity_type": "corporation", - "id": 95, - "original_id": 97 - }, - { - "type": "pass", - "entity": "Player 2", - "entity_type": "player", - "id": 96, - "original_id": 98 - }, - { - "type": "par", - "entity": "Player 3", - "entity_type": "player", - "id": 97, - "corporation": "GT", - "share_price": "40,0,4", - "original_id": 99 - }, - { - "type": "buy_shares", - "entity": "Player 1", - "entity_type": "player", - "id": 98, - "shares": [ - "GT_1" - ], - "original_id": 100 - }, - { - "type": "buy_shares", - "entity": "Player 2", - "entity_type": "player", - "id": 99, - "shares": [ - "GT_2" - ], - "original_id": 101 - }, - { - "type": "buy_shares", - "entity": "Player 1", - "entity_type": "player", - "id": 100, - "shares": [ - "GT_3" - ], - "original_id": 102 - }, - { - "type": "pass", - "entity": "Player 3", - "entity_type": "player", - "id": 101, - "original_id": 103 - }, - { - "type": "buy_shares", - "entity": "Player 1", - "entity_type": "player", - "id": 102, - "shares": [ - "GT_4" - ], - "original_id": 104 - }, - { - "type": "pass", - "entity": "Player 1", - "entity_type": "player", - "id": 103, - "original_id": 105 - }, - { - "type": "lay_tile", - "entity": "B&O", - "entity_type": "corporation", - "id": 104, - "hex": "D12", - "tile": "9-0", - "rotation": 1, - "original_id": 107 - }, - { - "type": "lay_tile", - "entity": "B&O", - "entity_type": "corporation", - "id": 105, - "hex": "D10", - "tile": "9-1", - "rotation": 1, - "original_id": 108 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 106, - "original_id": 109 - }, - { - "type": "run_routes", - "entity": "B&O", - "entity_type": "corporation", - "id": 107, - "routes": [ - { - "train": "2-3", - "connections": [ - [ - "C15", - "C13", - "D14" - ] - ] - } - ], - "original_id": 110 - }, - { - "type": "dividend", - "entity": "B&O", - "entity_type": "corporation", - "id": 108, - "kind": "payout", - "original_id": 111 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 109, - "original_id": 112 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 110, - "original_id": 113 - }, - { - "type": "sell_shares", - "entity": "GT", - "entity_type": "corporation", - "id": 111, - "shares": [ - "GT_5", - "GT_6", - "GT_7", - "GT_8" - ], - "percent": 40, - "share_price": 30, - "original_id": 114 - }, - { - "type": "lay_tile", - "entity": "GT", - "entity_type": "corporation", - "id": 112, - "hex": "B16", - "tile": "6-0", - "rotation": 0, - "original_id": 115 - }, - { - "type": "pass", - "entity": "GT", - "entity_type": "corporation", - "id": 113, - "original_id": 116 - }, - { - "type": "buy_train", - "entity": "GT", - "entity_type": "corporation", - "id": 114, - "train": "2-4", - "price": 80, - "original_id": 117 - }, - { - "type": "buy_train", - "entity": "GT", - "entity_type": "corporation", - "id": 115, - "train": "2-5", - "price": 80, - "original_id": 118 - }, - { - "type": "buy_train", - "entity": "GT", - "entity_type": "corporation", - "id": 116, - "train": "2-6", - "price": 80, - "original_id": 119 - }, - { - "type": "buy_train", - "entity": "GT", - "entity_type": "corporation", - "id": 117, - "train": "2-3", - "price": 100, - "original_id": 120 - }, - { - "type": "pass", - "entity": "NYC", - "entity_type": "corporation", - "id": 118, - "original_id": 122 - }, - { - "type": "run_routes", - "entity": "NYC", - "entity_type": "corporation", - "id": 119, - "routes": [ - { - "train": "2-0", - "connections": [ - [ - "C21", - "D20" - ] - ] - } - ], - "original_id": 123 - }, - { - "type": "dividend", - "entity": "NYC", - "entity_type": "corporation", - "id": 120, - "kind": "withhold", - "original_id": 124 - }, - { - "type": "pass", - "entity": "NYC", - "entity_type": "corporation", - "id": 121, - "original_id": 125 - }, - { - "type": "pass", - "entity": "NYC", - "entity_type": "corporation", - "id": 122, - "original_id": 126 - }, - { - "id": 123, - "entity_type": "corporation", - "entity": "B&O", - "type": "pass", - "original_id": 126, - "skip": true - }, - { - "id": 124, - "entity_type": "corporation", - "entity": "B&O", - "type": "undo", - "original_id": 127, - "skip": true - }, - { - "type": "sell_shares", - "entity": "B&O", - "entity_type": "corporation", - "id": 125, - "shares": [ - "B&O_1", - "B&O_2" - ], - "percent": 20, - "share_price": 70, - "original_id": 129 - }, - { - "type": "lay_tile", - "entity": "B&O", - "entity_type": "corporation", - "id": 126, - "hex": "D8", - "tile": "8-0", - "rotation": 2, - "original_id": 130 - }, - { - "type": "place_token", - "entity": "B&O", - "entity_type": "corporation", - "id": 127, - "city": "D6-0-1", - "slot": 0, - "original_id": 131 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 128, - "original_id": 132 - }, - { - "type": "buy_train", - "entity": "B&O", - "entity_type": "corporation", - "id": 129, - "train": "4-0", - "price": 160, - "variant": "3/5", - "original_id": 133 - }, - { - "type": "buy_train", - "entity": "B&O", - "entity_type": "corporation", - "id": 130, - "train": "4-1", - "price": 160, - "variant": "3/5", - "original_id": 134 - }, - { - "type": "buy_train", - "entity": "B&O", - "entity_type": "corporation", - "id": 131, - "train": "4-2", - "price": 160, - "variant": "3/5", - "original_id": 135 - }, - { - "type": "buy_train", - "entity": "B&O", - "entity_type": "corporation", - "id": 132, - "train": "4-3", - "price": 160, - "variant": "3/5", - "original_id": 136 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 133, - "original_id": 137 - }, - { - "type": "run_routes", - "entity": "GT", - "entity_type": "corporation", - "id": 134, - "routes": [ - { - "train": "2-4", - "connections": [ - [ - "C15", - "B16" - ] - ] - } - ], - "original_id": 138 - }, - { - "type": "dividend", - "entity": "GT", - "entity_type": "corporation", - "id": 135, - "kind": "withhold", - "original_id": 139 - }, - { - "type": "pass", - "entity": "GT", - "entity_type": "corporation", - "id": 136, - "original_id": 140 - }, - { - "id": 137, - "entity_type": "corporation", - "entity": "NYC", - "type": "pass", - "original_id": 141, - "skip": true - }, - { - "id": 138, - "entity_type": "corporation", - "entity": "NYC", - "type": "undo", - "original_id": 142, - "skip": true - }, - { - "type": "lay_tile", - "entity": "NYC", - "entity_type": "corporation", - "id": 139, - "hex": "E19", - "tile": "7-1", - "rotation": 3, - "original_id": 144 - }, - { - "type": "lay_tile", - "entity": "NYC", - "entity_type": "corporation", - "id": 140, - "hex": "D18", - "tile": "8-1", - "rotation": 4, - "original_id": 145 - }, - { - "type": "run_routes", - "entity": "NYC", - "entity_type": "corporation", - "id": 141, - "routes": [ - { - "train": "2-0", - "connections": [ - [ - "E21", - "E19", - "D20" - ] - ] - } - ], - "original_id": 146 - }, - { - "type": "dividend", - "entity": "NYC", - "entity_type": "corporation", - "id": 142, - "kind": "half", - "original_id": 147 - }, - { - "type": "buy_train", - "entity": "NYC", - "entity_type": "corporation", - "id": 143, - "train": "4-0", - "price": 60, - "variant": "3/5", - "original_id": 148 - }, - { - "id": 144, - "entity_type": "corporation", - "entity": "NYC", - "type": "pass", - "original_id": 0 - }, - { - "type": "sell_shares", - "entity": "Player 2", - "entity_type": "player", - "id": 145, - "shares": [ - "GT_2" - ], - "percent": 10, - "original_id": 149 - }, - { - "type": "buy_shares", - "entity": "Player 2", - "entity_type": "player", - "id": 146, - "shares": [ - "B&O_1" - ], - "original_id": 150 - }, - { - "type": "pass", - "entity": "Player 3", - "entity_type": "player", - "id": 147, - "original_id": 151 - }, - { - "type": "pass", - "entity": "Player 1", - "entity_type": "player", - "id": 148, - "original_id": 152 - }, - { - "type": "pass", - "entity": "Player 2", - "entity_type": "player", - "id": 149, - "original_id": 153 - }, - { - "type": "sell_shares", - "entity": "B&O", - "entity_type": "corporation", - "id": 150, - "shares": [ - "B&O_3", - "B&O_4" - ], - "percent": 20, - "share_price": 50, - "original_id": 154 - }, - { - "type": "lay_tile", - "entity": "B&O", - "entity_type": "corporation", - "id": 151, - "hex": "G19", - "tile": "14-0", - "rotation": 1, - "original_id": 155 - }, - { - "type": "lay_tile", - "entity": "B&O", - "entity_type": "corporation", - "id": 152, - "hex": "F18", - "tile": "7-2", - "rotation": 4, - "original_id": 156 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 153, - "original_id": 157 - }, - { - "type": "run_routes", - "entity": "B&O", - "entity_type": "corporation", - "id": 154, - "routes": [ - { - "train": "4-1", - "connections": [ - [ - "G19", - "F18", - "F20" - ], - [ - "G21", - "G19" - ] - ] - }, - { - "train": "4-2", - "connections": [ - [ - "H20", - "G19" - ] - ] - }, - { - "train": "4-3", - "connections": [ - [ - "C15", - "B16" - ], - [ - "C15", - "C13", - "D14" - ], - [ - "D14", - "D12", - "D10", - "D8", - "C7", - "D6" - ] - ] - } - ], - "original_id": 158 - }, - { - "type": "dividend", - "entity": "B&O", - "entity_type": "corporation", - "id": 155, - "kind": "payout", - "original_id": 159 - }, - { - "type": "buy_company", - "entity": "B&O", - "entity_type": "corporation", - "id": 156, - "company": "C&WI", - "price": 60, - "original_id": 160 - }, - { - "type": "buy_company", - "entity": "B&O", - "entity_type": "corporation", - "id": 157, - "company": "MAIL", - "price": 80, - "original_id": 161 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 158, - "original_id": 162 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 159, - "original_id": 163 - }, - { - "type": "pass", - "entity": "GT", - "entity_type": "corporation", - "id": 160, - "original_id": 165 - }, - { - "type": "run_routes", - "entity": "GT", - "entity_type": "corporation", - "id": 161, - "routes": [ - { - "train": "2-4", - "connections": [ - [ - "C15", - "B16" - ] - ] - } - ], - "original_id": 166 - }, - { - "type": "dividend", - "entity": "GT", - "entity_type": "corporation", - "id": 162, - "kind": "half", - "original_id": 167 - }, - { - "type": "buy_company", - "entity": "GT", - "entity_type": "corporation", - "id": 163, - "company": "O&I", - "price": 1, - "original_id": 168 - }, - { - "id": 164, - "entity_type": "corporation", - "entity": "GT", - "type": "pass", - "original_id": 0 - }, - { - "type": "run_routes", - "entity": "NYC", - "entity_type": "corporation", - "id": 165, - "routes": [ - { - "train": "2-0", - "connections": [ - [ - "E21", - "E19", - "D20" - ] - ] - } - ], - "original_id": 169 - }, - { - "type": "dividend", - "entity": "NYC", - "entity_type": "corporation", - "id": 166, - "kind": "half", - "original_id": 170 - }, - { - "id": 167, - "entity_type": "corporation", - "entity": "NYC", - "type": "pass", - "original_id": 0 - }, - { - "type": "lay_tile", - "entity": "B&O", - "entity_type": "corporation", - "id": 168, - "hex": "D6", - "tile": "298-0", - "rotation": 0, - "original_id": 172 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 169, - "original_id": 173 - }, - { - "type": "run_routes", - "entity": "B&O", - "entity_type": "corporation", - "id": 170, - "routes": [ - { - "train": "4-1", - "connections": [ - [ - "G19", - "F18", - "F20" - ], - [ - "G21", - "G19" - ] - ] - }, - { - "train": "4-2", - "connections": [ - [ - "H20", - "G19" - ] - ] - }, - { - "train": "4-3", - "connections": [ - [ - "C15", - "B16" - ], - [ - "C15", - "C13", - "D14" - ], - [ - "D14", - "D12", - "D10", - "D8", - "C7", - "D6" - ] - ] - } - ], - "original_id": 174 - }, - { - "type": "dividend", - "entity": "B&O", - "entity_type": "corporation", - "id": 171, - "kind": "half", - "original_id": 175 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 172, - "original_id": 176 - }, - { - "type": "buy_shares", - "entity": "GT", - "entity_type": "corporation", - "id": 173, - "shares": [ - "GT_5", - "GT_6" - ], - "share_price": 40, - "original_id": 177 - }, - { - "type": "pass", - "entity": "GT", - "entity_type": "corporation", - "id": 174, - "original_id": 178 - }, - { - "type": "run_routes", - "entity": "GT", - "entity_type": "corporation", - "id": 175, - "routes": [ - { - "train": "2-4", - "connections": [ - [ - "C15", - "B16" - ] - ] - } - ], - "original_id": 179 - }, - { - "type": "dividend", - "entity": "GT", - "entity_type": "corporation", - "id": 176, - "kind": "payout", - "original_id": 180 - }, - { - "type": "pass", - "entity": "GT", - "entity_type": "corporation", - "id": 177, - "original_id": 182 - }, - { - "id": 178, - "entity_type": "corporation", - "entity": "NYC", - "type": "pass", - "original_id": 0 - }, - { - "type": "run_routes", - "entity": "NYC", - "entity_type": "corporation", - "id": 179, - "routes": [ - { - "train": "2-0", - "connections": [ - [ - "E21", - "E19", - "D20" - ] - ] - }, - { - "train": "2-1", - "connections": [ - [ - "C21", - "D20" - ] - ] - } - ], - "original_id": 183 - }, - { - "type": "dividend", - "entity": "NYC", - "entity_type": "corporation", - "id": 180, - "kind": "payout", - "original_id": 184 - }, - { - "id": 181, - "entity_type": "corporation", - "entity": "NYC", - "type": "pass", - "original_id": 0 - }, - { - "type": "sell_shares", - "entity": "Player 3", - "entity_type": "player", - "id": 182, - "shares": [ - "GT_1", - "GT_3" - ], - "percent": 20, - "original_id": 185 - }, - { - "type": "par", - "entity": "Player 3", - "entity_type": "player", - "id": 183, - "corporation": "IC", - "share_price": "70,0,7", - "original_id": 186 - }, - { - "type": "pass", - "entity": "Player 1", - "entity_type": "player", - "id": 184, - "original_id": 187 - }, - { - "type": "par", - "entity": "Player 2", - "entity_type": "player", - "id": 185, - "corporation": "C&O", - "share_price": "70,0,7", - "original_id": 188 - }, - { - "type": "pass", - "entity": "Player 3", - "entity_type": "player", - "id": 186, - "original_id": 189 - }, - { - "type": "pass", - "entity": "Player 1", - "entity_type": "player", - "id": 187, - "original_id": 190 - }, - { - "type": "pass", - "entity": "Player 2", - "entity_type": "player", - "id": 188, - "original_id": 191 - }, - { - "type": "lay_tile", - "entity": "B&O", - "entity_type": "corporation", - "id": 189, - "hex": "C15", - "tile": "294-0", - "rotation": 0, - "original_id": 193 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 190, - "original_id": 194 - }, - { - "type": "run_routes", - "entity": "B&O", - "entity_type": "corporation", - "id": 191, - "routes": [ - { - "train": "4-1", - "connections": [ - [ - "G19", - "F18", - "F20" - ], - [ - "G21", - "G19" - ] - ] - }, - { - "train": "4-2", - "connections": [ - [ - "H20", - "G19" - ] - ] - }, - { - "train": "4-3", - "connections": [ - [ - "C5", - "D6" - ], - [ - "D14", - "D12", - "D10", - "D8", - "C7", - "D6" - ], - [ - "D14", - "C13", - "C15" - ], - [ - "C17", - "C15" - ] - ] - } - ], - "original_id": 195 - }, - { - "type": "dividend", - "entity": "B&O", - "entity_type": "corporation", - "id": 192, - "kind": "payout", - "original_id": 196 - }, - { - "type": "buy_train", - "entity": "B&O", - "entity_type": "corporation", - "id": 193, - "train": "2-3", - "price": 13, - "original_id": 197 - }, - { - "id": 194, - "entity_type": "corporation", - "entity": "IC", - "type": "pass", - "original_id": 196, - "skip": true - }, - { - "id": 195, - "entity_type": "corporation", - "entity": "IC", - "type": "undo", - "original_id": 197, - "skip": true - }, - { - "rotation": 0, - "tile": "8-2", - "hex": "J4", - "id": 196, - "entity_type": "corporation", - "entity": "IC", - "type": "lay_tile", - "original_id": 198, - "skip": true - }, - { - "id": 197, - "entity_type": "corporation", - "entity": "IC", - "type": "undo", - "original_id": 199, - "skip": true - }, - { - "type": "lay_tile", - "entity": "IC", - "entity_type": "corporation", - "id": 198, - "hex": "J4", - "tile": "9-2", - "rotation": 0, - "original_id": 203 - }, - { - "type": "pass", - "entity": "IC", - "entity_type": "corporation", - "id": 199, - "original_id": 204 - }, - { - "type": "buy_train", - "entity": "IC", - "entity_type": "corporation", - "id": 200, - "train": "2-4", - "price": 1, - "original_id": 205 - }, - { - "type": "buy_train", - "entity": "IC", - "entity_type": "corporation", - "id": 201, - "train": "2-5", - "price": 1, - "original_id": 206 - }, - { - "type": "buy_train", - "entity": "IC", - "entity_type": "corporation", - "id": 202, - "train": "4-0", - "price": 1, - "variant": "3/5", - "original_id": 207 - }, - { - "type": "buy_train", - "entity": "IC", - "entity_type": "corporation", - "id": 203, - "train": "2-0", - "price": 1, - "original_id": 208 - }, - { - "type": "lay_tile", - "entity": "C&O", - "entity_type": "corporation", - "id": 204, - "hex": "H14", - "tile": "8-2", - "rotation": 5, - "original_id": 210 - }, - { - "type": "lay_tile", - "entity": "C&O", - "entity_type": "corporation", - "id": 205, - "hex": "H12", - "tile": "292-0", - "rotation": 2, - "original_id": 211 - }, - { - "type": "buy_train", - "entity": "C&O", - "entity_type": "corporation", - "id": 206, - "train": "2-1", - "price": 1, - "original_id": 212 - }, - { - "type": "buy_train", - "entity": "C&O", - "entity_type": "corporation", - "id": 207, - "train": "4-1", - "price": 1, - "variant": "3/5", - "original_id": 213 - }, - { - "type": "buy_train", - "entity": "C&O", - "entity_type": "corporation", - "id": 208, - "train": "4-2", - "price": 1, - "variant": "3/5", - "original_id": 214 - }, - { - "type": "pass", - "entity": "C&O", - "entity_type": "corporation", - "id": 209, - "original_id": 215 - }, - { - "type": "pass", - "entity": "GT", - "entity_type": "corporation", - "id": 210, - "original_id": 217 - }, - { - "type": "run_routes", - "entity": "GT", - "entity_type": "corporation", - "id": 211, - "routes": [ - { - "train": "2-6", - "connections": [ - [ - "B16", - "C15" - ] - ] - } - ], - "original_id": 218 - }, - { - "type": "dividend", - "entity": "GT", - "entity_type": "corporation", - "id": 212, - "kind": "payout", - "original_id": 219 - }, - { - "type": "pass", - "entity": "GT", - "entity_type": "corporation", - "id": 213, - "original_id": 220 - }, - { - "id": 214, - "entity_type": "corporation", - "entity": "GT", - "type": "pass", - "original_id": 0 - }, - { - "type": "pass", - "entity": "NYC", - "entity_type": "corporation", - "id": 215, - "original_id": 222 - }, - { - "type": "run_routes", - "entity": "NYC", - "entity_type": "corporation", - "id": 216, - "routes": [ - { - "train": "2-2", - "connections": [ - [ - "E21", - "E19", - "D20" - ] - ] - } - ], - "original_id": 223 - }, - { - "kind": "half", - "id": 217, - "entity_type": "corporation", - "entity": "NYC", - "type": "dividend", - "original_id": 220, - "skip": true - }, - { - "id": 218, - "entity_type": "corporation", - "entity": "NYC", - "type": "undo", - "original_id": 221, - "skip": true - }, - { - "type": "dividend", - "entity": "NYC", - "entity_type": "corporation", - "id": 219, - "kind": "payout", - "original_id": 226 - }, - { - "type": "pass", - "entity": "NYC", - "entity_type": "corporation", - "id": 220, - "original_id": 227 - }, - { - "id": 221, - "entity_type": "corporation", - "entity": "NYC", - "type": "pass", - "original_id": 0 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 222, - "original_id": 229 - }, - { - "type": "run_routes", - "entity": "B&O", - "entity_type": "corporation", - "id": 223, - "routes": [ - { - "train": "4-3", - "connections": [ - [ - "C5", - "D6" - ], - [ - "D14", - "D12", - "D10", - "D8", - "C7", - "D6" - ], - [ - "D14", - "C13", - "C15" - ], - [ - "C17", - "C15" - ] - ] - }, - { - "train": "2-3", - "connections": [ - [ - "B16", - "C15" - ] - ] - } - ], - "original_id": 230 - }, - { - "type": "dividend", - "entity": "B&O", - "entity_type": "corporation", - "id": 224, - "kind": "payout", - "original_id": 231 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 225, - "original_id": 232 - }, - { - "id": 226, - "entity_type": "corporation", - "entity": "IC", - "type": "pass", - "original_id": 230, - "skip": true - }, - { - "id": 227, - "entity_type": "corporation", - "entity": "IC", - "type": "undo", - "original_id": 231, - "skip": true - }, - { - "type": "lay_tile", - "entity": "IC", - "entity_type": "corporation", - "id": 228, - "hex": "I3", - "tile": "9-3", - "rotation": 1, - "original_id": 236 - }, - { - "type": "place_token", - "entity": "IC", - "entity_type": "corporation", - "id": 229, - "city": "I5-0-0", - "slot": 0, - "original_id": 237 - }, - { - "type": "pass", - "entity": "IC", - "entity_type": "corporation", - "id": 230, - "original_id": 238 - }, - { - "type": "run_routes", - "entity": "IC", - "entity_type": "corporation", - "id": 231, - "routes": [ - { - "train": "2-4", - "connections": [ - [ - "I5", - "I3", - "I1" - ] - ] - }, - { - "train": "2-0", - "connections": [ - [ - "I5", - "J4", - "K3" - ] - ] - } - ], - "original_id": 239 - }, - { - "type": "dividend", - "entity": "IC", - "entity_type": "corporation", - "id": 232, - "kind": "payout", - "original_id": 240 - }, - { - "type": "lay_tile", - "entity": "C&O", - "entity_type": "corporation", - "id": 233, - "hex": "G11", - "tile": "8-3", - "rotation": 5, - "original_id": 242 - }, - { - "type": "lay_tile", - "entity": "C&O", - "entity_type": "corporation", - "id": 234, - "hex": "G9", - "tile": "6-1", - "rotation": 2, - "original_id": 243 - }, - { - "type": "run_routes", - "entity": "C&O", - "entity_type": "corporation", - "id": 235, - "routes": [ - { - "train": "2-1", - "connections": [ - [ - "I15", - "I17" - ] - ] - }, - { - "train": "4-1", - "connections": [ - [ - "I15", - "H14", - "H12" - ], - [ - "H12", - "G11", - "G9" - ] - ] - } - ], - "original_id": 244 - }, - { - "type": "dividend", - "entity": "C&O", - "entity_type": "corporation", - "id": 236, - "kind": "payout", - "original_id": 245 - }, - { - "type": "pass", - "entity": "C&O", - "entity_type": "corporation", - "id": 237, - "original_id": 246 - }, - { - "type": "pass", - "entity": "GT", - "entity_type": "corporation", - "id": 238, - "original_id": 248 - }, - { - "type": "run_routes", - "entity": "GT", - "entity_type": "corporation", - "id": 239, - "routes": [ - { - "train": "2-6", - "connections": [ - [ - "B16", - "C15" - ] - ] - } - ], - "original_id": 249 - }, - { - "type": "dividend", - "entity": "GT", - "entity_type": "corporation", - "id": 240, - "kind": "payout", - "original_id": 250 - }, - { - "type": "pass", - "entity": "GT", - "entity_type": "corporation", - "id": 241, - "original_id": 251 - }, - { - "id": 242, - "entity_type": "corporation", - "entity": "GT", - "type": "pass", - "original_id": 0 - }, - { - "type": "pass", - "entity": "NYC", - "entity_type": "corporation", - "id": 243, - "original_id": 253 - }, - { - "type": "run_routes", - "entity": "NYC", - "entity_type": "corporation", - "id": 244, - "routes": [ - { - "train": "2-2", - "connections": [ - [ - "E21", - "E19", - "D20" - ] - ] - } - ], - "original_id": 254 - }, - { - "type": "dividend", - "entity": "NYC", - "entity_type": "corporation", - "id": 245, - "kind": "payout", - "original_id": 255 - }, - { - "type": "pass", - "entity": "NYC", - "entity_type": "corporation", - "id": 246, - "original_id": 256 - }, - { - "id": 247, - "entity_type": "corporation", - "entity": "NYC", - "type": "pass", - "original_id": 0 - }, - { - "type": "pass", - "entity": "Player 3", - "entity_type": "player", - "id": 248, - "original_id": 257 - }, - { - "type": "pass", - "entity": "Player 1", - "entity_type": "player", - "id": 249, - "original_id": 258 - }, - { - "type": "pass", - "entity": "Player 2", - "entity_type": "player", - "id": 250, - "original_id": 259 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 251, - "original_id": 261 - }, - { - "type": "run_routes", - "entity": "B&O", - "entity_type": "corporation", - "id": 252, - "routes": [ - { - "train": "4-3", - "connections": [ - [ - "C5", - "D6" - ], - [ - "D14", - "D12", - "D10", - "D8", - "C7", - "D6" - ], - [ - "D14", - "C13", - "C15" - ], - [ - "C17", - "C15" - ] - ] - }, - { - "train": "2-3", - "connections": [ - [ - "B16", - "C15" - ] - ] - } - ], - "original_id": 262 - }, - { - "type": "dividend", - "entity": "B&O", - "entity_type": "corporation", - "id": 253, - "kind": "payout", - "original_id": 263 - }, - { - "id": 254, - "entity_type": "corporation", - "entity": "B&O", - "type": "pass", - "original_id": 259, - "skip": true - }, - { - "id": 255, - "entity_type": "corporation", - "entity": "C&O", - "type": "pass", - "original_id": 260, - "skip": true - }, - { - "id": 256, - "entity_type": "corporation", - "entity": "C&O", - "type": "pass", - "original_id": 261, - "skip": true - }, - { - "routes": [ - { - "connections": [ - [ - "I15", - "I17" - ] - ], - "train": "2-1" - }, - { - "connections": [ - [ - "I15", - "H14", - "H12" - ], - [ - "H12", - "G11", - "G9" - ] - ], - "train": "4-1" - } - ], - "id": 257, - "entity_type": "corporation", - "entity": "C&O", - "type": "run_routes", - "original_id": 262, - "skip": true - }, - { - "kind": "payout", - "id": 258, - "entity_type": "corporation", - "entity": "C&O", - "type": "dividend", - "original_id": 263, - "skip": true - }, - { - "id": 259, - "entity_type": "corporation", - "entity": "C&O", - "type": "pass", - "original_id": 264, - "skip": true - }, - { - "id": 260, - "entity_type": "corporation", - "entity": "IC", - "type": "pass", - "original_id": 265, - "skip": true - }, - { - "id": 261, - "entity_type": "corporation", - "entity": "IC", - "type": "undo", - "original_id": 266, - "skip": true - }, - { - "id": 262, - "entity_type": "corporation", - "entity": "IC", - "type": "undo", - "original_id": 267, - "skip": true - }, - { - "id": 263, - "entity_type": "corporation", - "entity": "C&O", - "type": "undo", - "original_id": 268, - "skip": true - }, - { - "id": 264, - "entity_type": "corporation", - "entity": "C&O", - "type": "undo", - "original_id": 269, - "skip": true - }, - { - "id": 265, - "entity_type": "corporation", - "entity": "C&O", - "type": "undo", - "original_id": 270, - "skip": true - }, - { - "id": 266, - "entity_type": "corporation", - "entity": "C&O", - "type": "undo", - "original_id": 271, - "skip": true - }, - { - "id": 267, - "entity_type": "corporation", - "entity": "C&O", - "type": "undo", - "original_id": 272, - "skip": true - }, - { - "price": 1, - "train": "2-6", - "id": 268, - "entity_type": "corporation", - "entity": "B&O", - "type": "buy_train", - "original_id": 273, - "skip": true - }, - { - "price": 1, - "train": "2-2", - "id": 269, - "entity_type": "corporation", - "entity": "B&O", - "type": "buy_train", - "original_id": 274, - "skip": true - }, - { - "id": 270, - "entity_type": "corporation", - "entity": "C&O", - "type": "undo", - "original_id": 275, - "skip": true - }, - { - "id": 271, - "entity_type": "corporation", - "entity": "B&O", - "type": "undo", - "original_id": 276, - "skip": true - }, - { - "type": "buy_train", - "entity": "B&O", - "entity_type": "corporation", - "id": 272, - "train": "2-6", - "price": 38, - "original_id": 282 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 273, - "original_id": 283 - }, - { - "type": "pass", - "entity": "C&O", - "entity_type": "corporation", - "id": 274, - "original_id": 285 - }, - { - "type": "run_routes", - "entity": "C&O", - "entity_type": "corporation", - "id": 275, - "routes": [ - { - "train": "2-1", - "connections": [ - [ - "I15", - "I17" - ] - ] - }, - { - "train": "4-1", - "connections": [ - [ - "I15", - "H14", - "H12" - ], - [ - "H12", - "G11", - "G9" - ] - ] - } - ], - "original_id": 286 - }, - { - "type": "dividend", - "entity": "C&O", - "entity_type": "corporation", - "id": 276, - "kind": "payout", - "original_id": 287 - }, - { - "type": "pass", - "entity": "C&O", - "entity_type": "corporation", - "id": 277, - "original_id": 288 - }, - { - "type": "pass", - "entity": "IC", - "entity_type": "corporation", - "id": 278, - "original_id": 290 - }, - { - "type": "run_routes", - "entity": "IC", - "entity_type": "corporation", - "id": 279, - "routes": [ - { - "train": "2-4", - "connections": [ - [ - "I5", - "I3", - "I1" - ] - ] - }, - { - "train": "2-0", - "connections": [ - [ - "I5", - "J4", - "K3" - ] - ] - } - ], - "original_id": 291 - }, - { - "type": "dividend", - "entity": "IC", - "entity_type": "corporation", - "id": 280, - "kind": "payout", - "original_id": 292 - }, - { - "type": "pass", - "entity": "GT", - "entity_type": "corporation", - "id": 281, - "original_id": 294 - }, - { - "type": "bankrupt", - "entity": "GT", - "entity_type": "corporation", - "id": 282, - "original_id": 295 - }, - { - "type": "pass", - "entity": "NYC", - "entity_type": "corporation", - "id": 283, - "original_id": 297 - }, - { - "type": "run_routes", - "entity": "NYC", - "entity_type": "corporation", - "id": 284, - "routes": [ - { - "train": "2-2", - "connections": [ - [ - "E21", - "E19", - "D20" - ] - ] - } - ], - "original_id": 298 - }, - { - "type": "dividend", - "entity": "NYC", - "entity_type": "corporation", - "id": 285, - "kind": "payout", - "original_id": 299 - }, - { - "type": "pass", - "entity": "NYC", - "entity_type": "corporation", - "id": 286, - "original_id": 300 - }, - { - "id": 287, - "entity_type": "corporation", - "entity": "NYC", - "type": "pass", - "original_id": 0 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 288, - "original_id": 302 - }, - { - "type": "run_routes", - "entity": "B&O", - "entity_type": "corporation", - "id": 289, - "routes": [ - { - "train": "4-3", - "connections": [ - [ - "C5", - "D6" - ], - [ - "D14", - "D12", - "D10", - "D8", - "C7", - "D6" - ], - [ - "D14", - "C13", - "C15" - ], - [ - "C17", - "C15" - ] - ] - }, - { - "train": "2-3", - "connections": [ - [ - "B16", - "C15" - ] - ] - } - ], - "original_id": 303 - }, - { - "type": "dividend", - "entity": "B&O", - "entity_type": "corporation", - "id": 290, - "kind": "payout", - "original_id": 304 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 291, - "original_id": 305 - }, - { - "type": "pass", - "entity": "C&O", - "entity_type": "corporation", - "id": 292, - "original_id": 307 - }, - { - "type": "run_routes", - "entity": "C&O", - "entity_type": "corporation", - "id": 293, - "routes": [ - { - "train": "2-1", - "connections": [ - [ - "I15", - "I17" - ] - ] - }, - { - "train": "4-1", - "connections": [ - [ - "I15", - "H14", - "H12" - ], - [ - "H12", - "G11", - "G9" - ] - ] - } - ], - "original_id": 308 - }, - { - "type": "dividend", - "entity": "C&O", - "entity_type": "corporation", - "id": 294, - "kind": "payout", - "original_id": 309 - }, - { - "type": "pass", - "entity": "C&O", - "entity_type": "corporation", - "id": 295, - "original_id": 310 - }, - { - "type": "pass", - "entity": "IC", - "entity_type": "corporation", - "id": 296, - "original_id": 312 - }, - { - "type": "run_routes", - "entity": "IC", - "entity_type": "corporation", - "id": 297, - "routes": [ - { - "train": "2-4", - "connections": [ - [ - "I5", - "I3", - "I1" - ] - ] - }, - { - "train": "2-0", - "connections": [ - [ - "I5", - "J4", - "K3" - ] - ] - } - ], - "original_id": 313 - }, - { - "type": "dividend", - "entity": "IC", - "entity_type": "corporation", - "id": 298, - "kind": "payout", - "original_id": 314 - }, - { - "type": "lay_tile", - "entity": "NYC", - "entity_type": "corporation", - "id": 299, - "hex": "E17", - "tile": "293-0", - "rotation": 3, - "original_id": 316 - }, - { - "type": "lay_tile", - "entity": "NYC", - "entity_type": "corporation", - "id": 300, - "hex": "E17", - "tile": "294-1", - "rotation": 0, - "original_id": 317 - }, - { - "type": "run_routes", - "entity": "NYC", - "entity_type": "corporation", - "id": 301, - "routes": [ - { - "train": "2-2", - "connections": [ - [ - "D20", - "D18", - "E17" - ] - ] - } - ], - "original_id": 318 - }, - { - "type": "dividend", - "entity": "NYC", - "entity_type": "corporation", - "id": 302, - "kind": "payout", - "original_id": 319 - }, - { - "type": "buy_train", - "entity": "NYC", - "entity_type": "corporation", - "id": 303, - "train": "4-1", - "price": 1, - "variant": "3/5", - "original_id": 320 - }, - { - "type": "pass", - "entity": "NYC", - "entity_type": "corporation", - "id": 304, - "original_id": 321 - }, - { - "type": "buy_shares", - "entity": "Player 3", - "entity_type": "player", - "id": 305, - "shares": [ - "GT_7" - ], - "original_id": 322 - }, - { - "type": "buy_shares", - "entity": "Player 2", - "entity_type": "player", - "id": 306, - "shares": [ - "GT_8" - ], - "original_id": 323 - }, - { - "type": "buy_shares", - "entity": "Player 3", - "entity_type": "player", - "id": 307, - "shares": [ - "GT_2" - ], - "original_id": 324 - }, - { - "type": "buy_shares", - "entity": "Player 2", - "entity_type": "player", - "id": 308, - "shares": [ - "GT_1" - ], - "original_id": 325 - }, - { - "type": "buy_shares", - "entity": "Player 3", - "entity_type": "player", - "id": 309, - "shares": [ - "GT_3" - ], - "original_id": 326 - }, - { - "type": "buy_shares", - "entity": "Player 2", - "entity_type": "player", - "id": 310, - "shares": [ - "GT_4" - ], - "original_id": 327 - }, - { - "type": "buy_shares", - "entity": "Player 3", - "entity_type": "player", - "id": 311, - "shares": [ - "GT_7" - ], - "original_id": 328 - }, - { - "type": "buy_shares", - "entity": "Player 2", - "entity_type": "player", - "id": 312, - "shares": [ - "GT_2" - ], - "original_id": 329 - }, - { - "type": "sell_shares", - "entity": "Player 3", - "entity_type": "player", - "id": 313, - "shares": [ - "GT_3", - "GT_7", - "GT_0" - ], - "percent": 40, - "original_id": 330 - }, - { - "type": "pass", - "entity": "Player 3", - "entity_type": "player", - "id": 314, - "original_id": 331 - }, - { - "type": "pass", - "entity": "Player 2", - "entity_type": "player", - "id": 315, - "original_id": 332 - }, - { - "type": "pass", - "entity": "Player 3", - "entity_type": "player", - "id": 316, - "original_id": 333 - }, - { - "type": "pass", - "entity": "B&O", - "entity_type": "corporation", - "id": 317, - "original_id": 335 - }, - { - "type": "run_routes", - "entity": "B&O", - "entity_type": "corporation", - "id": 318, - "routes": [ - { - "train": "4-3", - "connections": [ - [ - "C5", - "D6" - ], - [ - "D14", - "D12", - "D10", - "D8", - "C7", - "D6" - ], - [ - "D14", - "C13", - "C15" - ], - [ - "C17", - "C15" - ] - ] - }, - { - "train": "2-3", - "connections": [ - [ - "B16", - "C15" - ] - ] - } - ], - "original_id": 336 - }, - { - "type": "dividend", - "entity": "B&O", - "entity_type": "corporation", - "id": 319, - "kind": "payout", - "original_id": 337 - }, - { - "type": "buy_train", - "entity": "B&O", - "entity_type": "corporation", - "id": 320, - "train": "4-1", - "price": 1, - "variant": "3/5", - "original_id": 338 - }, - { - "type": "buy_train", - "entity": "B&O", - "entity_type": "corporation", - "id": 321, - "train": "4-0", - "price": 1, - "variant": "3/5", - "original_id": 339 - }, - { - "type": "pass", - "entity": "C&O", - "entity_type": "corporation", - "id": 322, - "original_id": 341 - }, - { - "type": "run_routes", - "entity": "C&O", - "entity_type": "corporation", - "id": 323, - "routes": [ - { - "train": "2-1", - "connections": [ - [ - "I15", - "I17" - ] - ] - } - ], - "original_id": 342 - }, - { - "type": "dividend", - "entity": "C&O", - "entity_type": "corporation", - "id": 324, - "kind": "payout", - "original_id": 343 - }, - { - "type": "pass", - "entity": "C&O", - "entity_type": "corporation", - "id": 325, - "original_id": 344 - }, - { - "id": 326, - "entity_type": "corporation", - "entity": "IC", - "type": "pass", - "original_id": 345, - "skip": true - }, - { - "id": 327, - "entity_type": "corporation", - "entity": "IC", - "type": "undo", - "original_id": 346, - "skip": true - }, - { - "type": "lay_tile", - "entity": "IC", - "entity_type": "corporation", - "id": 328, - "hex": "H6", - "tile": "9-4", - "rotation": 0, - "original_id": 348 - }, - { - "type": "lay_tile", - "entity": "IC", - "entity_type": "corporation", - "id": 329, - "hex": "G7", - "tile": "6-2", - "rotation": 0, - "original_id": 349 - }, - { - "type": "place_token", - "entity": "IC", - "entity_type": "corporation", - "id": 330, - "city": "6-2-0", - "slot": 0, - "original_id": 350 - }, - { - "type": "run_routes", - "entity": "IC", - "entity_type": "corporation", - "id": 331, - "routes": [ - { - "train": "2-4", - "connections": [ - [ - "I5", - "I3", - "I1" - ] - ] - }, - { - "train": "2-0", - "connections": [ - [ - "I5", - "J4", - "K3" - ] - ] - }, - { - "train": "2-5", - "connections": [ - [ - "I5", - "H6", - "G7" - ] - ] - } - ], - "original_id": 351 - }, - { - "type": "dividend", - "entity": "IC", - "entity_type": "corporation", - "id": 332, - "kind": "payout", - "original_id": 352 - }, - { - "type": "sell_shares", - "entity": "IC", - "entity_type": "corporation", - "id": 333, - "shares": [ - "IC_1", - "IC_2" - ], - "percent": 20, - "share_price": 70, - "original_id": 353 - }, - { - "type": "buy_train", - "entity": "IC", - "entity_type": "corporation", - "id": 334, - "train": "5-1", - "price": 500, - "variant": "5", - "original_id": 354 - }, - { - "type": "pass", - "entity": "IC", - "entity_type": "corporation", - "id": 335, - "original_id": 355 - }, - { - "type": "pass", - "entity": "NYC", - "entity_type": "corporation", - "id": 336, - "original_id": 356 - }, - { - "type": "bankrupt", - "entity": "NYC", - "entity_type": "corporation", - "id": 337, - "original_id": 357 - } - ], - "id": "hs_vhfqskhy_1595777670", - "players": [ - { - "name": "Player 1" - }, - { - "name": "Player 2" - }, - { - "name": "Player 3" - } - ], - "title": "1846", - "description": "Cloned from game hs_msecwkaf_1595777670", - "max_players": "3", - "result": { - "Player 2": 1360, - "Player 1": 0, - "Player 3": 0 - }, - "loaded": true, - "created_at": "2020-08-28", - "user": { - "id": 0, - "name": "You" - }, - "mode": "hotseat", - "settings": { - "optional_rules": [ - "first_ed" - ] - } -} \ No newline at end of file diff --git a/spec/game_state_spec.rb b/spec/game_state_spec.rb index af5604fa75..15cee6aba6 100644 --- a/spec/game_state_spec.rb +++ b/spec/game_state_spec.rb @@ -83,7 +83,7 @@ module Engine describe 19_962 do it 'removes the reservation when a token is placed' do - game = game_at_action(game_file, 154) + game = game_at_action(game_file, 114) city = game.hex_by_id('D20').tile.cities.first corp = game.corporation_by_id('ERIE') expect(city.reserved_by?(corp)).to be(false) @@ -104,26 +104,26 @@ module Engine end it 'has a cert limit of 10 after a corporation closes' do - game = game_at_action(game_file, 162) + game = game_at_action(game_file, 122) expect(game.cert_limit).to be(10) end it 'has a cert limit of 10 after a corporation closes and then a player is bankrupt' do - game = game_at_action(game_file, 405) + game = game_at_action(game_file, 300) expect(game.cert_limit).to be(10) end it 'has a cert limit of 8 after a corporation closes, then a player is '\ 'bankrupt, and then another corporation closes' do - game = game_at_action(game_file, 443) + game = game_at_action(game_file, 328) expect(game.cert_limit).to be(8) end it 'IC to lay a tile on J4 for free' do - game = game_at_action(game_file, 84) + game = game_at_action(game_file, 64) expect(game.illinois_central.cash).to be(280) - game = game_at_action(game_file, 85) + game = game_at_action(game_file, 65) expect(game.illinois_central.cash).to be(280) end end diff --git a/spec/lib/engine/round/operating_spec.rb b/spec/lib/engine/round/operating_spec.rb index 230be045a8..a1518710fd 100644 --- a/spec/lib/engine/round/operating_spec.rb +++ b/spec/lib/engine/round/operating_spec.rb @@ -753,7 +753,7 @@ def remove_trains_until!(train) ) ) - expect(city.reservations).to eq([]) + expect(city.reservations.compact).to eq([]) end it 'is removed when a corporation buys in the C&WI' do @@ -765,7 +765,7 @@ def remove_trains_until!(train) ) ) - expect(city.reservations).to eq([]) + expect(city.reservations.compact).to eq([]) end end 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') diff --git a/validate.rb b/validate.rb index 71cf87ef04..0ba31ac95b 100644 --- a/validate.rb +++ b/validate.rb @@ -21,7 +21,7 @@ def run_game(game, actions = nil, strict: false) time = Time.now engine = Engine::Game.load(game, strict: strict) begin - engine.maybe_raise! + engine.maybe_raise! time = Time.now - time $total_time += time @@ -40,14 +40,14 @@ def run_game(game, actions = nil, strict: false) data end -def validate_all(*titles, game_ids: nil, strict: false) +def validate_all(*titles, game_ids: nil, strict: false, status: %w[active finished]) $count = 0 $total = 0 $total_time = 0 page = [] data = {} - where_args = {Sequel.pg_jsonb_op(:settings).has_key?('pin') => false, status: %w[active finished]} + where_args = {Sequel.pg_jsonb_op(:settings).has_key?('pin') => false, status: status} where_args[:title] = titles if titles.any? where_args[:id] = game_ids if game_ids