propresenter-php/generated/GPBMetadata
Thorsten Bus 9e3e719806 feat(library): add readers + writers for all ProPresenter global libraries and theme bundles
Add full IO support for every global ProPresenter library file plus
theme folders, and extend the existing Labels/Macros readers with
exporters and editable accessors so every supported document is now a
round-trippable, mutable object.

New library readers/writers (each: FileReader, FileWriter, Library
wrapper, element wrapper where applicable, CLI tool, tests, doc/api/*.md):

- Groups          (ProGroupsDocument)        + GroupDefinition
- ClearGroups     (ClearGroupsDocument)      + ClearGroupDefinition
- CCLI            (CCLIDocument)
- Messages        (MessageDocument)          + Message
- Timers          (TimersDocument + Clock)   + Timer
- Stage           (Stage.Document)           + StageLayout
- Workspace       (ProPresenterWorkspace)    + Screen
- Props           (PropDocument)             + Prop
- TestPatterns    (TestPatternDocument)
- Calendar        (new CalendarDocument)     + CalendarEvent
- KeyMappings     (new KeyMappingsDocument)  + KeyMapping
- CommunicationDevices (JSON file)           + CommunicationDevice
- Theme bundles   (Template.Document folder + Assets/) + ThemeBundle/Slide/Asset

Extensions to existing modules:

- LabelsFileWriter; Label and LabelLibrary gain setters, addLabel,
  removeLabel, setColor / setColorHex helpers
- MacrosFileWriter; Macro/MacroCollection/MacroLibrary gain UUID, name,
  color, image_type, image_data, trigger_on_startup setters plus
  add/remove for macros and collections

Two new minimal proto schemas were defined for documents that lacked
upstream definitions:

- proto/calendar.proto   - CalendarDocument with Event entries, raw
  bytes for the action/macro sub-messages so the schema can evolve
- proto/keyMappings.proto - KeyMappingsDocument with ApplicationInfo
  and a forward-looking Mapping message (sample only carries the info)

The Theme file turned out to be a regular Rv\Data\Template\Document, so
no new proto was required for theme content; ThemeBundle layers folder
+ Assets/ handling on top in the same spirit as PresentationBundle.

GroupDefinition is intentionally distinct from the existing Group class
(which wraps song-level CueGroup) to avoid breaking song APIs.

Verified with the full PHPUnit suite: 370 tests, 9200 assertions, all
green; LSP diagnostics clean across src/. The unmodified reference
samples for Labels, Groups, ClearGroups, TestPatterns, Calendar and
KeyMappings round-trip byte-for-byte; the others round-trip with the
same byte length (PHP protobuf is not canonically deterministic but
re-write-after-write stabilises).

doc/INDEX.md, doc/keywords.md and AGENTS.md updated so every new module
is discoverable from the top level.
2026-05-03 21:40:09 +02:00
..
Action.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
AlignmentGuide.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
AlphaType.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
AnalyticsApi.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
AnalyticsCapture.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
AnalyticsCreate.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
AnalyticsEvent.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
AnalyticsImport.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
AnalyticsMultiTracks.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
AnalyticsPlaybackMarker.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
AnalyticsProContent.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
AnalyticsStartup.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
AnalyticsSync.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
AnalyticsTimecode.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
AnalyticsTimeline.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
AnalyticsTrigger.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
AnalyticsTriggerMedia.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
AnalyticsUI.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
AnalyticsUpdate.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
AnalyticsWHMStore.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ApplicationInfo.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Audio.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Background.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Calendar.php feat(library): add readers + writers for all ProPresenter global libraries and theme bundles 2026-05-03 21:40:09 +02:00
Ccli.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ClearGroups.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
CollectionElementType.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Color.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Cue.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
DigitalAudio.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Effects.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
FileProperties.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Font.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
GraphicsData.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Groups.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
HotKey.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Input.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
IntRange.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
KeyMappings.php feat(library): add readers + writers for all ProPresenter global libraries and theme bundles 2026-05-03 21:40:09 +02:00
Labels.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Layers.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Macros.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Messages.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
MusicKeyScale.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
PlanningCenter.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Playlist.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Preferences.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Presentation.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
PresentationSlide.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApi.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1Announcement.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1Audio.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1Capture.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1Clear.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1Color.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1ContentType.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1ErrorResponse.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1Groups.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1Identifier.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1LayerType.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1Library.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1Link.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1Looks.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1Macro.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1Masks.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1Media.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1MediaPlaylistItem.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1Message.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1Miscellaneous.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1Playlist.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1Preroll.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1Presentation.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1PresentationPlaylistItem.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1Prop.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1Size.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1Stage.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1Status.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1Theme.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1TimelineOperation.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1Timer.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1Transport.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1Trigger.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProApiV1VideoInputs.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProAudienceLook.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProClockSource.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProCore.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProCoreTestPatterns.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
ProMask.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
PropDocument.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Propresenter.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
PropSlide.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Proscreen.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Proworkspace.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Recording.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Registration.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Rv2D.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Rvtimestamp.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Screens.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Slide.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Stage.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Template.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
TemplateIdentification.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
TestPattern.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
TimedPlayback.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Timers.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Url.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Uuid.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00
Version.php refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples 2026-03-30 13:26:29 +02:00