namespace AcDream.Core.Physics;
///
/// Reconstructs a full 32-bit retail MotionCommand from the 16-bit wire
/// value broadcast in InterpretedMotionState.Commands[] (the server
/// truncates the class byte — see for
/// why that byte must be restored before routing).
///
///
/// Two implementations exist because the wire-numbering used by ACE / the
/// local DATs and the wire-numbering used by the Sept 2013 EoR retail
/// decomp diverge for ~130 command names (a contiguous low-word "+3" shift
/// starting at SnowAngelState). See
/// (runtime default) and
/// (conformance/reference), and
/// docs/research/2026-06-26-ace-vs-2013-motion-command-gap.md for the
/// full divergence analysis.
///
///
public interface IMotionCommandCatalog
{
///
/// Reconstruct the full 32-bit MotionCommand from a 16-bit wire value.
/// Returns 0 if no entry matches.
///
uint ReconstructFullCommand(ushort wireCommand);
}