1. All attributes are snake_case / underscored. V2.0 was mostly camelCase, but there were inconsistencies that made this confusing. We switched back to snake_case for consistency and since it’s an easier upgrade path for V1 clients.
  2. Tournament URL was the ID / primary key for tournaments, but this was a bad idea since it can change. We reverted to using integer IDs, but URL is still supported.
  3. Response formats now closely resemble response body formats. For example, if you fetch a tournament, its group stage options will be nested under “group_stage_options”, just as they are when doing a POST to create a tournament. In V2.0, these nested attributes were top level attributes, sometimes with different names.
  4. Added tournament attributes for “group_stage_enabled” and “group_stage_options” (several nested attributes available for the group stage).
  5. Added tournament state transitions for “start_group_stage”, “finalize_group_stage”, and “reset_group_stage”. Preexisting transitions were updated to handle two-stage tournaments.
  6. Renamed Match “winners” attribute to “winner_id” since the value is a single participant ID.
  7. Added tournament attributes for “station_options” (documentation coming soon for station management API endpoints)
  8. Updated matches PUT / score reporting to accommodate group stage matches. Aside from having a group_id, you can now interact with these matches just like you do with regular / final stage matches.
  9. Match ties can now be reported for round robin and swiss tournament formats using a “tie” boolean attribute on match. The “advancing” attribute should be absent or false for all participant score reports when reporting a tie.