---@meta _

-- extra fields not listed in the json docs...

---@class BlueprintEntity
---@field orientation? number
---@field recipe? string
---@field inventory? {bar?:number, filters?:InventoryFilter[] }
---@field bar? number
---@field filters? InventoryFilter[]
---@field type? "input"|"output"
---@field input_priority? "left"|"right"
---@field output_priority? "left"|"right"
---@field filter? string
---@field filter_mode? "whitelist"|"blacklist"
---@field override_stack_size? number
---@field request_filters? LogisticFilter[]
---@field request_from_buffers? boolean
---@field parameters? ProgrammableSpeakerParameters
---@field alert_parameters? ProgrammableSpeakerAlertParameters
---@field color? Color
---@field station? string

---@class BlueprintCircuitConnection

---@class BlueprintControlBehavior
---@field condition? CircuitCondition
---@field circuit_condition? CircuitCondition
---@field filters? Signal[]
---@field is_on? boolean
---@field arithmetic_conditions? ArithmeticCombinatorParameters
---@field decider_conditions? DeciderCombinatorParameters
---@field circuit_enable_disable? boolean
---@field circuit_read_resources? boolean
---@field circuit_resource_read_mode? defines.control_behavior.mining_drill.resource_read_mode
---@field read_stopped_train? boolean
---@field train_stopped_signal? SignalID
---@field read_from_train? boolean
---@field send_to_train? boolean
---@field circuit_mode_of_operation? integer This should be the per-type defines but that's hard
---@field circuit_read_hand_contents? boolean
---@field circuit_hand_read_mode? defines.control_behavior.inserter
---@field circuit_set_stack_size? boolean
---@field stack_control_input_signal? SignalID
---@field use_colors? boolean
---@field read_robot_stats? boolean
---@field read_logistics? boolean
---@field available_logistic_output_signal? SignalID
---@field total_logistic_output_signal? SignalID
---@field available_construction_output_signal? SignalID
---@field total_construction_output_signal? SignalID
---@field circuit_contents_read_mode? defines.control_behavior.transport_belt
---@field output_signal? SignalID
---@field circuit_close_signal? SignalID
---@field circuit_read_signal? SignalID
---@field red_output_signal? SignalID
---@field orange_output_signal? SignalID
---@field green_output_signal? SignalID
---@field blue_output_signal? SignalID
---@field circuit_open_gate? boolean
---@field circuit_read_sensor? boolean
---@field circuit_parameters? ProgrammableSpeakerCircuitParameters
