freedome_protocol

Pure-Dart models of the Freedome public API v1 and the .dome content format, generated from freedome_contract (L4). No I/O, no Flutter: depends only on meta and collection.

  • .dome 1.1 manifest models (DomeManifest, Display, Calibration, AudioLayout, Asset, Show, …);
  • API v1 bodies (ServerInfo, Venue, DisplayInfo, PlayerState, AssetResource, CalibrationJob, Problem, …);
  • the operation table Operations (operationId → method, path, scope), scopes and role bundles (Scopes);
  • realtime: the message envelope (WsMessage), events (FreedomeEvent, typed views via typedEvent), the topic table (TopicTable, EventKinds, DomeTopics builders).

Unknown JSON members (incl. x-*) are kept in extra and written back unchanged; unknown enum values are kept (isUnknown) instead of failing — newer servers and files stay readable.

The network client is freedome_client.

final event = FreedomeEvent.fromJson(json);
if (typedEvent(event) case PlaybackChanged(:final state?)) {
  print('${state.status.value} at ${state.position}');
}

Generated code lives in lib/src/generated/ (do not edit; dart run tool/gen_protocol.dart in the workspace root).

Licence

NativeMindNONC (see LICENSE). Commercial use → NativeMind sales (https://nativemind.net).

Libraries

freedome_protocol
Freedome protocol models generated from freedome_contract (pure Dart, no I/O; 02f §5).