Princípios de orientação

Para preservar a visão original da GTFS, foram estabelecidos vários princípios de orientação que devem ser levados em consideração ao se estender a especificação:

Deve ser fácil criar e editar os feeds.

Escolhemos CSV como base para a especificação, porque esse formato é fácil de visualizar e editar usando programas de planilhas e editores de texto, o que é útil para agências menores. Também é simples de gerar na maioria das linguagens de programação e bancos de dados, o que é bom para editores de feeds maiores.

Deve ser fácil analisar os feeds.

Os leitores de feeds devem poder extrair as informações que estão procurando com o mínimo de trabalho possível. Alterações e adições ao feed devem ser as mais úteis possíveis para minimizar o número de caminhos de código que os leitores de feed precisam implementar. (No entanto, a prioridade deve ser facilitar o processo de criação, já que haverá mais editores do que leitores de feed.)

As alterações feitas na especificação devem ser compatíveis com versões anteriores.

Quando recursos são adicionados à especificação, devemos evitar alterações que possam tornar inválidos feeds existentes. Não queremos dar mais trabalho para os editores até que eles queiram adicionar recursos aos seus feeds. Além disso, sempre que possível, queremos que os analisadores existentes continuem a ler as partes mais antigas dos feeds mais recentes.

Não é recomendável adicionar recursos especulativos.

Cada novo recurso aumenta a complexidade de criação e leitura de feeds. Portanto, queremos adicionar apenas recursos reconhecidamente úteis. O ideal é que qualquer proposta tenha sido testada por meio da geração de dados usando um sistema de transporte público real que utilize os novos recursos e da criação de um software que leia e exiba o novo recurso. A GTFS permite criar extensões imediatamente por meio da adição de colunas e arquivos extras que são ignorados pelos analisadores e validadores oficiais. Dessa maneira, é fácil criar protótipos e testar as propostas em feeds existentes.