freedome_protocol 1.0.0
freedome_protocol: ^1.0.0 copied to clipboard
Freedome protocol models generated from freedome_contract (pure Dart, no I/O).
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.
.dome1.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 viatypedEvent), the topic table (TopicTable,EventKinds,DomeTopicsbuilders).
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).