20 [[
nodiscard]]
constexpr std::array<ButtonSpec, 2>
44 std::array<std::shared_ptr<const sequence::SequenceProgram>, 2>
programs{};
50 return std::unexpected(
loaded.error().detail);
54 std::vector<sequence::SequenceCommand> commands;
65 spec.idle, spec.priority, 0, 0));
74 spec.out, spec.priority, 0, 0));
83 return std::unexpected(
84 "sequence command queue cannot fit Trade action-button transition");
87 for (
auto& command : commands)
89 const auto queued = std::visit(
96 return std::unexpected(
97 "validated Trade action-button command rejected");
static constexpr std::size_t Capacity
static std::expected< std::shared_ptr< const SequenceProgram >, RuntimeError > load(const data::DataSource &source, data::DataId id, std::size_t offset=0, DescriptionLimits limits={})
MoveSequenceCommand makeMoveXY(data::DataId dataId, std::uint16_t priority, std::int32_t x, std::int32_t y) noexcept
constexpr std::uint16_t TradeProposePriority
constexpr data::DataId tradeActionSequence(data::DataTag tag) noexcept
constexpr data::DataTag TradeCancelOutTag
constexpr data::DataTag TradeProposeOutTag
constexpr data::DataTag TradeCancelIdleTag
constexpr std::uint8_t TradeActionEndingStop
constexpr std::uint16_t TradeCancelPriority
constexpr data::DataTag TradeProposeIdleTag