Respostas:
Você pode seguir o layout de projeto padrão do maven . Você não precisa realmente usar o maven, mas isso tornaria a transição mais fácil no futuro (se necessário). Além disso, outros desenvolvedores estarão acostumados a ver esse layout, uma vez que muitos projetos de código aberto são dispostos desta forma,
Existem alguns recursos existentes que você pode verificar:
Pelo que vale a pena, minhas próprias diretrizes pessoais que costumo usar são as seguintes:
Alguns outros pontos:
Eu sugeriria criar sua estrutura de pacote por recurso, e não pela camada de implementação. Uma boa descrição disso são as práticas Java: pacote por recurso, não por camada
Normalmente gosto de ter o seguinte:
Podem ser considerados não convencionais, mas acho que é uma maneira muito boa de organizar as coisas.