Considerando o milestone de implementar o movimento circular, me parece que o melhor é usar o novo conceito de "Transition".
Hoje, o movimento e o movimento circular tem alguns problemas. Os atributos locationAt e startsInLocation são difíceis de entender (acho que startsInLocation nem deveria mais existir); na formulação do sign model 2.0 o RoundSegment possui o atributo initialMovementVector, que além de difícil de usar, invalida o atributo direction herdado de Segment (modelo desnormalizado).
Então a ideia é acabar com o conceito de movimento. Mais simples pensar que temos Poses (o que hoje seriam os símbolos), e que nos movemos entre essas Poses por meio de Transições. A transição padrão é a transição linear, que não precisa ser configurada. Mas a transição pode ser também circular.
Assim, teríamos a classe Transition, com os atributos speed e interpolationType, e a classe RoundTransition, herdando de Transition, apenas com o atributo roundPlane, para especificar se a circunferência é feita no plano vertical ou horizontal. Teoricamente isso é limitante, pois poder-se-ia fazer circunferências em outros planos do espaço. Mas vamos começar simples assim, porque talvez isso já dê conta na prática dos sinais com movimento circular.
Minha ideia é primeiro inserir a transição no modelo e fazer ela funcionar para o movimento circular. Posteriormente refatoro os sinais que hoje usam movimentos para usarem apenas transições. Em seguida, acabo com o conceito de movimento.
Como essas alterações são possivelmente críticas, devo fazer em branches novas.